I. Introduction▲
Une fois installé, Visual Studio Code n’offre que les fonctionnalités d’un simple éditeur. En effet, même si la coloration syntaxique fonctionne, il ne sera pas possible de compiler et lancer le programme résultant. Visual Studio Code supporte un mécanisme d’extension permettant d’étendre les fonctionnalités du logiciel, et notamment, d’offrir les outils que l’on attend d’un environnement de développement intégré pour du C ou du C++.
II. Les extensions pour le C et C++▲
II-A. C/C++▲
Afin d’ajouter le support des langages C et C++, l’autocomplétion et de pouvoir lancer la compilation directement dans Visual Studio Code, il faudra installer l’extension C/C++. Au préalable, un compilateur C++ doit être installé (MSVC, GCC ou Clang). Une fois l’extension en place, celle-ci ajoute un bouton, en haut à droite, pour compiler et lancer le programme. En appuyant sur le bouton, la fenêtre de terminal embarqué va ouvrir deux onglets : un pour la sortie de compilation et un pour la sortie du programme.
Par défaut, deux options d’exécution sont disponibles :
- « Debug C/C++ File » ;
- « Run C/C++ File ».
La première option permet de compiler et lancer le programme dans le débogueur, contrairement à la seconde, qui lance le programme sans débogueur.
Il est possible de personnaliser ces commandes, comme proposé dans le panneau gauche de la section « Run and Debug ». En effet, de nouvelles commandes peuvent être définies grâce au fichier launch.json (à placer dans un sous-dossier .vscode). Voici un exemple pour introduire une commande de débogage :
{
"version"
:
"0.2.0"
,
"configurations"
:
[
{
"name"
:
"C/C++: g++ build and debug active file"
,
"type"
:
"cppdbg"
,
"request"
:
"launch"
,
"program"
:
"
${fileDirname}
/
${fileBasenameNoExtension}
"
,
"args"
:
[],
"stopAtEntry"
:
false,
"cwd"
:
"
${workspaceFolder}
"
,
"environment"
:
[],
"externalConsole"
:
false,
"MIMode"
:
"gdb"
,
"miDebuggerPath"
:
"/usr/bin/gdb"
,
"setupCommands"
:
[
{
"description"
:
"Enable pretty-printing for gdb"
,
"text"
:
"-enable-pretty-printing"
,
"ignoreFailures"
:
true
}
],
"preLaunchTask"
:
"C/C++: g++ build active file"
}
]
}
Cette commande s’exécutera alors en appuyant sur F5, suivant l’option choisie en haut à gauche.
En parallèle, le fichier tasks.json permet de configurer la tâche de compilation du fichier. Voici la tâche de compilation du fichier courant :
{
"tasks"
:
[
{
"type"
:
"cppbuild"
,
"label"
:
"G++ build active file"
,
"command"
:
"/usr/bin/g++"
,
"args"
:
[
"-fdiagnostics-color=always"
,
"-Wall"
,
"-Wextra"
,
"-g"
,
"
${file}
"
,
"-o"
,
"
${fileDirname}
/
${fileBasenameNoExtension}
"
],
"options"
:
{
"cwd"
:
"
${fileDirname}
"
},
"problemMatcher"
:
[
"$gcc"
],
"group"
:
{
"kind"
:
"build"
,
"isDefault"
:
true
},
"detail"
:
"Task generated by Debugger."
}
],
"version"
:
"2.0.0"
}
La commande de lancement dispose d’une dépendance définie avec preLaunchTask et qui référence la tâche définie ci-dessus.
Finalement, la configuration de l’extension repose sur un fichier spécifique : c_cpp_properties.json, aussi accessible depuis la palette de commandes (Ctrl + Maj + P).
Si vous ne trouvez pas certaines extensions, notamment celles de Microsoft, vous utilisez probablement la version open source de Visual Studio Code (Code/Code OSS) ou VSCodium.
La solution pour régler ce problème est expliquée sur StackOverflow ou le Github de Visual Studio Code : éditez le fichier product.json (à trouver dans le répertoire d’installation de Visual Studio Code) et remplacez l’URL de la galerie d’extensions par :
"extensionsGallery"
:
{
"serviceUrl"
:
"https://marketplace.visualstudio.com/_apis/public/gallery"
,
"cacheUrl"
:
"https://vscode.blob.core.windows.net/gallery/index"
,
"itemUrl"
:
"https://marketplace.visualstudio.com/items"
}
Avec cette première extension, vous pouvez programmer en C/C++, éditer du code, bénéficier de l’autocomplétion, compiler, exécuter et déboguer votre code directement dans Visual Studio Code. Toutefois, une telle configuration ne fonctionne que pour un unique fichier source. En effet, les tâches et commandes de lancement ne vont compiler que le fichier courant, cela peut être pratique pour des tests rapides, mais rarement pour un projet.
Si l’autocomplétion et les outils de navigation et de refactoring fournis par l’extension C/C++ de Microsoft (appelée IntelliSense) ne vous conviennent pas, vous pouvez utiliser celle du serveur de langage clangd grâce à l’extension clangd. Sachant que les deux extensions apportent des fonctionnalités similaires, à l’installation de l’extension clangd, un message d’avertissement signalera de possibles conflits et proposera alors de désactiver la fonctionnalité IntelliSense de l’extension C/C++.
II-B. CMake▲
CMake est un logiciel permettant, à partir d’un fichier décrivant le projet, de générer les fichiers nécessaires à la construction du projet. En effet, à partir du fichier CMakeLists.txt, CMake va générer les fichiers de projets adéquats pour compiler le projet (Makefile, fichiers Visual Studio…). Pour en savoir plus, vous pouvez consulter cette introduction à l’outil.
Sachant que la syntaxe d’un fichier CMakeLists.txt est, par défaut, inconnue de Visual Studio Code, il est donc nécessaire d’installer l’extension CMake Tools. Celle-ci apporte notamment la coloration syntaxique et l’autocomplétion facilitant ainsi l’édition de fichiers CMakeLists.txt.
Une fois installée, l’extension propose une liste de kits (ensemble d’outils pour compiler le projet). Aussi, l’extension ajoute deux boutons sur la colonne de gauche. Le premier permet de gérer les tests à travers ctest et le second de configurer CMake (kit, cible à compiler…). Dans la barre en bas de Visual Studio Code, trois boutons sont ajoutés :
Ceux-ci permettent de lancer CMake, de déboguer ou simplement d’exécuter le projet. De plus, l’extension ajoute une multitude de commandes, accessibles dans la palette de commandes (Ctrl + Maj +P) dont :
- « CMake : Configure » (pour lancer CMake). Par défaut, CMake sera aussi lancé chaque fois que vous modifiez le fichier CMakeLists.txt (cette fonctionnalité est désactivable depuis les paramètres de l’extension) ;
- « CMake : Build » : pour compiler le projet. Aussi disponible avec le raccourci clavier ‘F7’ ;
- « CMake : Debug » : pour lancer le projet dans un débogueur. Aussi disponible avec le raccourci clavier ‘Maj + F5’ ;
- « CMake : Run without debugging » : pour lancer le projet. Aussi disponible avec le raccourci clavier ‘Ctrl + F5’.
Encore une fois, l’extension support les commandes de base sans nécessiter un fichier launch.json ou tasks.json. Toutefois, pour personnaliser les actions réalisées lors de la compilation ou lors de l’exécution, vous pouvez créer ces fichiers dans un sous-dossier .vscode de votre projet.
II-C. Clang-Format▲
Pour aller encore plus loin dans votre expérience de développement C ou C++ dans Visual Studio Code, vous pouvez aussi installer l’extension Clang-Format. L’outil clang-format (qui doit donc être installé au préalable) permet de formater automatiquement le code afin de suivre certaines règles d’écriture. Celles-ci se définissent dans un fichier .clang-format.
Voici un exemple d’un tel fichier :
L’extension Visual Studio Code permet alors d’exécuter l’outil de formatage, et notamment, automatiquement à l’enregistrement du fichier (cette option, « Format On Save », est à activer dans les paramètres de Visual Studio Code).
III. Autres extensions▲
III-A. Thèmes Visual Studio▲
Avec l’extension C/C++ Themes vous pouvez obtenir la coloration syntaxique de Visual Studio dans Visual Studio Code. Autrement dit, l’extension ajoute quatre thèmes pour Visual Studio Code :
- Lumineux ;
- Sombre ;
- Lumineux version Visual Studio 2017 ;
- Sombre version Visual Studio 2017.
III-B. GitLens▲
Par défaut, Visual Studio Code offre quelques fonctionnalités en relation avec un logiciel de suivi de version. En effet, l’éditeur permet de voir les changements effectués, de créer des commits et d’obtenir l’historique de la branche. Toutefois, ces fonctionnalités n’apportent pas tous les outils pour travailler sur un projet reposant sur Git. L’extension GitLens complète ce manque.
GitLens propose une version « communautaire » gratuite et une version Pro, payante. Certaines fonctionnalités sont accessibles uniquement avec la version Pro.
À l’installation, celle-ci ajoute deux nouvelles icônes dans la barre verticale à gauche du logiciel :
- GitLens, offrant des fonctionnalités en lien avec la globalité du projet, notamment en permettant de manipuler les pull requests directement dans Visual Studio Code ;
- GitLens Inspect, pour obtenir des informations avancées sur l’évolution du projet.
Par exemple, GitLens ajoute une indication sur l’auteur à l’origine des modifications ou encore, surligne les changements en cours sur le fichier. En laissant le curseur sur les annotations, GitLens affiche une fenêtre popup détaillant le commit à l’origine de la ligne surlignée.
IV. Conclusion▲
Visual Studio Code, grâce aux extensions installées, offre maintenant une expérience de développement satisfaisante pour du C et C++. Il est toujours possible de chercher dans les options pour adapter le logiciel à ses besoins.
V. Documentation▲
Vous pouvez retrouver une documentation complète sur le site officiel de Visual Studio Code.