IDE
IDE est un acronyme pour Integrated Development Environment. Il s’agit d’un outil qui combine tout le nécessaire pour le développement dans un seul logiciel. Vous avez déjà utilisé d’autres IDEs dans d’autres cours, comme Code::Blocks, Eclipse ou Visual Studio.
VSCodium¶
Pourquoi VSCodium ?
Dans ce cours, nous allons utiliser VSCodium, car il offre un environnement de développement léger et personnalisable. Contrairement aux IDEs dédiés à certains langages ou logiciels, VSCodium est un outil gratuit, open source, et permet d’ajouter uniquement les fonctionnalités nécessaires grâce aux extensions que nous pouvons installer.
Ouvrez VSCodium.
Dans la suite, nous allons voir quelques fonctionnalités utiles de VSCodium et de ses extensions.
Ouvrir un projet¶
Cliquez sur File > Open Folder et ouvrez votre dépôt Git. Vous pouvez faire confiance aux auteurs de ce dépôt.
Vous devez voir votre dépôt avec les différents TPs affichés dans l’onglet Explorer, en haut de la barre latérale à gauche.
Si VSCodium vous demande si vous souhaitez effectuer régulièrement un
git fetch, vous pouvez répondre oui. Si vous avez répondu non, ce n’est pas grave : il faudra penser à le faire manuellement de temps en temps.
Couleurs¶
Vous pouvez choisir le thème de couleur qui vous convient pour l’éditeur et votre code en allant dans File > Preferences > Themes > Color Theme.
Explorer && Editor¶
Vous pouvez créer des fichiers et des répertoires avec les icônes qui apparaissent lorsque vous passez la souris sur le nom du projet en haut de l’onglet Explorer.
Créez un répertoire
TP10/dans votre projet.Créez un fichier dans ce nouveau répertoire avec le contenu que vous souhaitez.
Observez que vous avez une minimap à droite de votre écran qui permet une navigation rapide dans votre code. Elle affichera aussi les erreurs et les nouvelles modifications apportées au code. Si vous ne la voyez pas, vous pouvez la faire apparaître en cliquant sur View > Appearance > Minimap.
Vous pouvez aussi diviser votre écran en deux pour voir plusieurs fichiers en même temps avec le bouton Split Editor Right (carré séparé en deux rectangles en haut de la minimap).
Diviser l’écran sous Linux
Une façon simple de partager l’écran sous Linux (en dehors de VSCodium) est d’utiliser le raccourci clavier Win + une flèche.
Si vous avez plusieurs écrans, vous pouvez aussi rapidement les organiser avec Win + Shift + une flèche.
Si vous avez des lignes de code longues qui ne tiennent pas sur une seule ligne à l’écran, vous pouvez utiliser l’option View > Word Wrap (ou Alt + Z).
LSP¶
Language Server Protocol
Un LSP (Language Server Protocol) permet à un éditeur de code (comme VSCodium) d’envoyer des requêtes (auto-complétion, erreurs, etc.) à un serveur de langage local qui analyse le code et renvoie les réponses.
En bas de votre barre latérale à gauche, vous trouverez l’onglet Extensions.
Si vous voyez l’erreur Error while fetching extensions. XHR failed sous Debian à l’IUT, consultez le soutien technique sur VSCodium pour configurer le proxy.
Installez l’extension clangd de llvm-vs-code-extensions.
clangd
clangd est un LSP pour C++. Il analyse vos fichiers en arrière-plan et fournit des fonctionnalités comme l’auto-complétion, la détection d’erreurs et la navigation dans le code.
Pour fonctionner correctement, clangd doit connaître la manière dont votre projet est compilé. Pour cela, vous devez lui fournir un fichier compile_flags.txt.
Ajoutez le fichier
compile_flags.txtsuivant dansTP7/, au même niveau que lemakefile.
-xc++
-std=c++17
-IincludeAjoutez le fichier
compile_flags.txtsuivant dansTP8/etTP9/, au même niveau que lemakefile.
-xc++
-std=c++17
-Iinclude
-Itests/includecompile_flags.txt
compile_flags.txtCe fichier sert uniquement à fournir les paramètres de compilation à l’extension clangd afin qu’elle puisse comprendre que :
il s’agit d’un projet C++ (
-xc++),la version utilisée est C++17 (
-std=c++17),les headers se trouvent dans
include/(-Iinclude) outests/include/(-Itests/include).
Ce fichier n’interagit pas avec le makefile.
Regardez le contenu des TPs précédents (TP7, TP8 et TP9). Si vous voyez des erreurs (soulignées en rouge), rechargez l’extension clangd en allant dans Extensions > Installed > clangd, puis cliquez sur Disable, ensuite Restart Extensions, puis Enable.
Navigation dans le code¶
Ouvrez le fichier
TP8/source/fizz-buzz.cppdans l’éditeur de VSCodium.Survolez les headers soulignés : vous devez voir où se trouve le header correspondant ainsi que ses méthodes utilisées/implémentées dans le
.cpp.Survolez le nom de la classe
FizzBuzz: vous devez voir dans quel header elle est déclarée ainsi que sa documentation.Survolez le nom de la fonction
fizzBuzzet observez la documentation.
Documentation
Nous allons apprendre à écrire de la documentation dans un prochain TP, mais vous pouvez déjà constater l’utilité d’une documentation bien rédigée dans votre environnement de travail.
Ouvrez le fichier
TP8/include/fizz-buzz.h, double-cliquez surfizzBuzz, puis faites un clic droit et choisissez Go to Definition (ou F12) : vous serez redirigé vers sa définition dansTP8/source/fizz-buzz.cpp.Vous pouvez faire le chemin inverse depuis
fizzBuzz.cppavec Go to Declaration.Ouvrez
TP7/source/main.cppet observez que les objets et fonctions avec arguments affichent maintenant le nom de l’argument avant sa valeur (par exempletitle:).
Cela montre aussi l’importance de bien nommer ses variables.
Ajoutez une ligne dans
int main()commençant parlibrary.et observez l’auto-complétion proposée.Si vous ne terminez pas la ligne par
;, une erreur apparaît (soulignée en rouge). Survolez-la pour voir le message.Si vous n’enregistrez pas la modification, un point blanc apparaît à côté du nom du fichier. Il disparaît après sauvegarde (Ctrl + S).
Terminal¶
Ouvrez un terminal intégré via Terminal > New Terminal.
Vous verrez une barre apparaître en bas. Les onglets utiles pour l’instant sont Terminal et Problems.
Si une erreur est présente, vous pouvez la voir dans l’onglet Problems.
Le terminal intégré fonctionne comme un terminal classique, et vous pouvez en ouvrir plusieurs simultanément.
Search && Replace¶
Une fonctionnalité utile est la recherche et le remplacement de texte.
Dans l’onglet Search (loupe dans la barre latérale), vous pouvez effectuer une recherche avec remplacement.
Recherchez
fizzBuzz.Cliquez sur une occurrence pour voir le code correspondant.
Activez Match Case (
Aa) pour distinguerfizzBuzzdeFizzBuzz.Si vous remplissez le champ Replace, vous verrez un aperçu du remplacement avant de l’appliquer.
Build, Run && Clean¶
Dans les IDEs que vous avez utilisés jusqu’ici, vous pouviez compiler, exécuter et nettoyer votre code à l’aide de boutons quelque peu “mystérieux”.
Nous allons maintenant lever le voile et construire nous-mêmes ces boutons dans VSCodium, qui exécuteront les commandes make, make run et make clean.
Vous pouvez bien sûr toujours utiliser ces commandes directement dans le terminal.
En général, un projet possède une seule racine avec un fichier de compilation. Cependant, comme notre dépôt contient plusieurs mini-projets, nous allons créer des tâches génériques capables de prendre des arguments.
Créez le répertoire
.vscode/à la racine du dépôt (au même niveau que les répertoiresTPX/) s’il n’existe pas déjà.Ajoutez
.vscode/à votre fichier.gitignore.Créez le fichier
tasks.jsondans le répertoire.vscode/avec le contenu suivant :
{
"version": "2.0.0",
"tasks": [
{
"label": "Build",
"type": "shell",
"command": "make",
"options": {
"cwd": "${workspaceFolder}/${input:tp}"
}
},
{
"label": "Run",
"type": "shell",
"command": "make run",
"options": {
"cwd": "${workspaceFolder}/${input:tp}"
}
},
{
"label": "Clean",
"type": "shell",
"command": "make clean",
"options": {
"cwd": "${workspaceFolder}/${input:tp}"
}
}
],
"inputs": [
{
"id": "tp",
"type": "pickString",
"description": "Select the TP",
"options": ["TP7", "TP8", "TP9"]
}
]
}tasks.json
tasks.jsonCe fichier fait partie de la configuration de notre IDE. Ces tâches correspondent à des raccourcis que nous pouvons exécuter directement depuis l’IDE, sans avoir besoin de taper les commandes dans le terminal.
La syntaxe est la suivante :
version: correspond au format du fichier.jsonutilisé pour définir les tâches.tasks: liste des tâches que nous allons créer.label: le libellé de la tâche.type: le type de la tâche ; ici, il s’agit d’une commandeshellexécutée dans le terminal.command: la commande à exécuter.options: les options passées à la commande. Ici, par exemple, nous exécutonsmakedans le répertoire${workspaceFolder}/${input:tp}, qui correspond àqualite-dev-s2-prenom-nom/TPX/.
inputs: les entrées utilisées dans la définition des tâches.id: l’identifiant de l’entrée.type: le type de l’entrée. Ici,pickStringpermet de choisir parmi une liste de chaînes de caractères.description: description affichée dans l’interface.options: liste des valeurs possibles. Ici,["TP7", "TP8", "TP9"]correspondent aux trois TP réalisés jusqu’à présent avec un makefile.
Installez l’extension Task Buttons de spencerwmiles. Cette extension permet d’ajouter des boutons liés aux tâches dans la barre de statut en bas de l’écran.
Créez un fichier
settings.jsondans.vscode/avec le contenu suivant :
{
"VsCodeTaskButtons.tasks": [
{
"label": "🔨 Build",
"task": "Build"
},
{
"label": "▶️ Run",
"task": "Run"
},
{
"label": "🧹 Clean",
"task": "Clean"
}
]
}Vous devez voir les boutons apparaître en bas à gauche de votre écran. Cliquez dessus pour les tester et observez leur fonctionnement.
Maintenant que vous avez compris ce qui se cache derrière les boutons “magiques” de vos IDEs, nous allons créer un nouveau bouton “🧪 Tests” qui exécutera make tests dans le bon répertoire.
Ajoutez une tâche “Tests” dans
tasks.jsonavec les bons paramètres et un nouvel inputtpWithTests.Ajoutez un input avec l’identifiant
tpWithTestset définissez comme options uniquement les TPs qui contiennent des tests (TP8etTP9).Dans
settings.json, ajoutez un nouveau bouton avec le label “🧪 Tests” dans"VsCodeTaskButtons.tasks".Testez votre nouveau bouton “🧪 Tests”.
Bonus : autres extensions utiles¶
Project Manager
Project Manager (par alefragnani) vous permet de sauvegarder vos projets dans VSCodium afin de pouvoir les ouvrir directement depuis un onglet dans la barre latérale gauche. Vous pouvez également les organiser en ajoutant des tags.
Code Spell Checker
Code Spell Checker et French - Code Spell Checker (par Street Side Software) permettent de corriger les fautes d’orthographe en anglais et en français, respectivement.
Vous pouvez ajouter la ligne suivante à votre settings.json après l’installation de ces extensions (si vous utilisez les deux simultanément):
"cSpell.language": "en,fr",Si vous utilisez régulièrement des mots qui ne figurent pas dans les dictionnaires, vous pouvez les ajouter en cliquant sur 💡 à côté d’un mot souligné (ou en appuyant sur Ctrl + .), puis en choisissant une option comme Add: “...” to workspace settings pour l’ajouter à l’espace de travail courant.
Si vous êtes en avance, vous pouvez commencer le TP suivant sur l’intégration de Git dans VSCodium, ainsi que sur les bases du débogage et l’utilisation des outils de débogage intégrés aux IDEs.