Utiliser Lua dans Visual Studio Code

Faites vos premiers pas dans la programmation avec Lua, un langage clair et facile à apprendre.

Aurélien Dos Santos

Lua est un langage de programmation intéressant pour débuter et écrire ses premières lignes de code, en raison de son style neutre et très lisible. Lua est d’ailleurs souvent utilisé dans le jeu vidéo (World of Warcraft, Roblox…) en tant que langage de script, car il est simple d’utilisation et pensé pour être intégré facilement à un programme.

La lune symbolise Lua (qui veut dire « lune » en portugais) car il est pensé pour être le langage satellite d’un programme.

Dans cet article, je vais vous expliquer comment installer Lua sur votre ordinateur et l’utiliser pour écrire vos propres scripts !

Installer Lua

Comme pour beaucoup d’outils informatiques, l’installation de Lua est un peu plus longue sur Windows que sur Mac ou Linux ; mais n’ayez crainte ! je vais vous guider pas à pas.

Désolé, votre navigateur ne peut pas afficher ces onglets. Merci d'essayer avec un autre navigateur.

Télécharger Lua

  1. Créez un dossier facilement accessible dans lequel vous pourrez placer tous vos programmes à utiliser dans le terminal, par exemple à l’emplacement C:\bin.

  2. Téléchargez Lua sur luabinaries.sourceforge.net. Choisissez la version la plus récente pour Windows x64, qui devrait s’appeller lua-x.x.x_Win64_bin.zip. Déplacez les fichiers à l’intérieur du zip dans votre dossier C:\bin.

Vous devriez obtenir ce résultat. Comme j’ai téléchargé la version 5.4, Lua s’appelle lua54.exe, mais peut-être que le nombre sera différent pour vous.

Ajouter Lua au Path

Pour que le terminal puisse accéder à Lua, nous devons ajouter le dossier bin au Path :

  1. Ouvrez les Paramètres système avancés, puis cliquez sur Variables d’environnement.

  2. Dans l’espace Variables système, sélectionnez la ligne Path et cliquez sur Modifier.

  3. Dans une nouvelle ligne, renseignez le dossier dans lequel vous avez placé Lua.

  4. Lua est maintenant disponible dans le terminal ! Recherchez cmd pour y accéder rapidement.

Installer Homebrew

Nous allons installer le gestionnaire de paquets Homebrew : c’est un programme qui vous permettra d’installer facilement Lua et la plupart des outils de développement informatique, donc ça vous sera sûrement très utile à l’avenir. Ouvrez le Terminal, copiez la commande suivante et appuyez sur Entrée :

Terminal window
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Cela téléchargera automatiquement les “Command Line Tools for XCode”, des composants officiels d’Apple permettant d’utiliser des outils dans le terminal. Cela peut prendre un moment si votre connection est lente, donc si vous préférez, vous pouvez aussi télécharger les Command Line Tools par vous-même sur developer.apple.com avant d’installer Homebrew.

Installer Lua

Quand l’installation d’Homebrew est terminée, écrivez la commande brew install lua. Et voilà, c’est terminé !

Sur Debian/Ubuntu : sudo apt-get install lua5.4

Sur Arch Linux et Fedora, le paquet s’appelle simplement lua.

Vous pouvez ensuite vérifier l’installation avec :

Terminal window
lua -v

Utiliser Lua dans le terminal

Sur Mac et Linux, écrivez simplement lua et faites Entrée. Sur Windows, si votre fichier s’appelait lua54.exe, écrivez la commande lua54.

Vous êtes désormais dans Lua et pouvez écrire des commandes dans le langage ! Pour sortir de Lua, vous pouvez faire Ctrl+C, ou bien taper la commande os.exit(), ou bien tout simplement fermer la fenêtre.

Lua dans le terminal de Windows

Lire des fichiers de script

Plutôt que de taper les commandes une à une dans le terminal, vous pouvez créer un fichier de script pour enregistrer votre création et la réutiliser plus tard. En utilisant un éditeur de texte tel que le Bloc-notes ou Visual Studio Code, créez un fichier hello.lua et écrivez un petit programme à l’intérieur :

hello.lua
io.write("Quel est votre nom ? ")
nom = io.read()
io.write("Ravi de vous rencontrer ", nom, " !")

Nous devons ensuite ouvrir ce dossier dans le terminal pour lire le fichier. Deux méthodes s’offrent à vous :

  • Dans le terminal, naviguez manuellement dans le bon dossier :
    • Utilisez ls (Mac et Linux) ou dir (Windows) pour voir le contenu du dossier actuel ;
    • cd Documents pour entrer dans le dossier Documents ;
    • cd .. pour remonter d’un dossier.
  • Activez l’option pour faire Clic droit dans un dossier > Ouvrir dans le terminal :
    • Sur Windows 10, ouvrez le Microsoft Store et installez Windows Terminal. Vous pouvez maintenant faire un clic droit dans un dossier.
    • Sur Mac, allez dans Préférences système > Clavier > Raccourcis clavier > Services et cochez Nouveau terminal dans un dossier.

Vous pouvez maintenant lancer votre programme avec lua54 hello.lua ou lua hello.lua :

Vous savez maintenant comment écrire un petit programme et l’exécuter dans le terminal. Ce qui serait encore plus pratique, c’est de tout avoir au même endroit : pouvoir écrire son script et le lancer avec un simple raccourci, dans la même fenêtre. C’est ce que nous allons mettre en place avec Visual Studio Code.

Utiliser Lua dans Visual Studio Code

VS Code est un éditeur de code gratuit et très populaire, ayant l’avantage d’être facile à comprendre et très modulable. Il existe bien sûr d’autres éditeurs gratuits, mais la marche à suivre serait un peu différente pour chacun d’entre eux.

  1. Téléchargez Visual Studio Code.

  2. Dans vos Documents, créez un dossier que vous appellerez par exemple scripts-lua. Ouvrez le dossier dans Visual Studio Code par le moyen de votre choix :

    • Clic droit sur le dossier > Ouvrir avec Code
    • Depuis VS Code : Fichier > Ouvrir un dossier
    • Avec le terminal : code scripts-lua
  3. Dans le panneau de gauche, créez un fichier appelé hello.lua. A vrai dire, appelez-le comme vous voulez tant qu’il se finit en .lua.

Maintenant, nous allons configurer VS Code pour que quand on appuie sur un bouton, notre script s’exécute et le résultat s’affiche dans la fenêtre.

Ouvrez le menu Terminal > Exécuter la tâche de build. Comme nous n’avons pas encore créé de tâche, il va nous proposer de le faire.

Cliquez sur Configurer la tâche de génération…

Cliquez sur Créer le fichier tasks.json.

Ici, cliquez sur Others.

VS Code a créé un dossier caché .vscode et un fichier tasks.json qui contiendra la configuration de notre tâche. Effacez tout ce qu’il contient pour le remplacer par ceci :

Désolé, votre navigateur ne peut pas afficher ces onglets. Merci d'essayer avec un autre navigateur.
.vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Lancer Lua",
"type": "shell",
"command": "lua54",
"args": ["${file}"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
.vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Lancer Lua",
"type": "shell",
"command": "lua",
"args": ["${file}"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

Explications : La tâche s’appelle Lancer Lua et utilise une fenêtre de terminal (shell). Elle lance la commande lua (ou lua54) avec comme argument le nom du fichier actuellement ouvert dans l’éditeur (${file}). Dans group, on dit que c’est la tâche de build qui se lance par défaut quand on utilise le raccourci.

Sauvegardez et retournez à votre script Lua. Vous pouvez maintenant cliquer sur Terminal > Exécuter la tâche de build… ou encore mieux : utiliser le raccourci Ctrl + Shift + B !

Vous pouvez maintenant créer plusieurs fichiers Lua dans votre dossier et jongler facilement entre eux !

Bonus : quelques astuces pour débuter

Tant que vous êtes là, je vais vous donner une liste de commandes pratiques pour écrire vos tous premiers programmes, comme ça, vous n’aurez pas besoin de tout chercher sur Internet.

Types de variables

Les types de variables les plus communs en Lua sont :

  • les textes, ou strings en anglais, toujours entre guillemets ;
  • les nombres ;
  • les booléens, qui valent “vrai” ou “faux”, true ou false ;
  • les tableaux, ou arrays en anglais, qui contiennent une liste de données.
nom = "Aurélien"
annee = 2021 + 10
booleen = true
tableau = {25, "citrouille", 9, false}
print(annee) --> 2031
print(tableau[1]) --> 25
print(tableau[2]) --> citrouille

Les opérations arithmétiques disponibles sont +, -, * et /.

Commentaires

Tout ce qui est à droite de deux tirets -- est un commentaire qui n’est pas interprété par Lua. Très pratique pour expliquer ce que fait le code.

pommes = 5 -- il y a 5 pommes

Afficher du texte

print() est pratique pour afficher rapidement des valeurs, car il les espace et revient à la ligne automatiquement. Par contre, il ne permet pas d’avoir un contrôle précis sur l’affichage du contenu. Pour cela, il faut utiliser io.write() :

Terminal window
> print("bon", "jour")
bon jour
> io.write("bon", "jour")
bonjour

io.write() ne revient pas automatiquement à la ligne ! Pour cela, il faut ajouter \n au sein du texte.

Terminal window
> io.write("bon") io.write("jour\ntout le monde !")
bonjour
tout le monde !

Les conditions

Les conditions sont très simples à utiliser puisque vous pouvez simplement traduire leurs mots-clés pour former une phrase en français :

TermeTraduction
ifsi
thenalors
elsesinon
elseifsinon, si
endfin

Voici quelques exemples :

if a < 0 then
print("a est inférieur à 0")
end
if a <= b then
print("a est plus petit ou égal à b")
else
print("a est plus grand que b")
end
operateur = io.read()
if operateur == "+" then
resultat = a + b
elseif operateur == "-" then
resultat = a - b
elseif operateur == "*" then
resultat = a * b
elseif operateur == "/" then
resultat = a / b
else
error("Opérateur invalide")
end

Les opérations relationnelles disponibles sont <, >, <=, >=, == et ~= (non égal).

Les boucles

Une boucle while s’exécute jusqu’à ce que la condition soit fausse. Cet exemple utilise une boucle pour afficher tous les éléments d’un tableau :

prenoms = {"Jean", "Miléna", "Erika"}
i = 1
while prenoms[i] do
print(prenoms[i])
i = i + 1
end

Une condition fonctionne tant que son résultat est autre chose que false ou nil. Ici, prenoms[i] renvoie un texte, donc la condition continue jusqu’à ce que i vale 4 : prenoms[4] renverra nil (qui représente l’absence de valeur).

Il existe deux autres types de boucle : repeat et for, que vous trouverez dans le manuel.


Et voilà, cela devrait vous suffire pour écrire des petits programmes ! Pour plus de précisions, je vous conseille le manuel de Lua, dans lequel vous devriez vous retrouver assez facilement grâce au sommaire. Sinon, comme toujours, faites des recherches Google en anglais pour obtenir davantage de résultats. Bonne continuation !