Visual Studio Code (VSCode)
Visual Studio Code est un éditeur de code extensible développé par Microsoft pour Windows, Linux et macOS.
C’est un éditeur de code multi-plateforme, open source et gratuit, supportant une dizaine de langages (C/C++,
Java, PHP, Python, Javascript, …).
Liens : Visual Studio Code
Installation
Liens :
Download Visual Studio Code
Installing Visual Studio Code on Linux
Installer Visual Studio Code :
$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
$ sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
$ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /
etc/apt/sources.list.d/vscode.list'
$ sudo apt-get install apt-transport-https
$ sudo apt-get update
$ sudo apt-get install code
Remarque : comme avec tout éditeur, il est impératif de jeter un coup d’oeil aux raccourcis clavier proposés, lire
https://code.visualstudio.com/docs/getstarted/keybindings et https://code.visualstudio.com/docs/getstarted/tips-
and-tricks.
C/C++
La prise en charge des langages C/C ++ pour Visual Studio Code est fournie par une extension Microsoft C/C
++ qui permet le développement multi-plateformes sous Windows, Linux et macOS.
Démarrer Visual Studio Code : aller dans File → Preferences → Extensions ( Ctrl+Shift+X ).
Rechercher : c++ et cliquer sur Install .
Le paramétrage de l’indentation est la première chose à faire :
Aller dans File → Preferences → Settings :
Premier pas
Créer un répertoire de travail :
$ mkdir src
Dans Visual Studio Code : aller dans File → Add Folder to Workspace... : sélectionner le
répertoire src et cliquer sur Add
Il est possible d’exécuter des commandes du shell directement dans le panneau Terminal :
Cliquer sur le fichier main.cpp et l’éditer :
On édite un premier programme :
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world !" << endl;
return 0;
}
VS Code permet de définir des “tâches” que l’on va utiliser pour fabriquer l’exécutable puis le lancer.
Dans Terminal → Configure Tasks... ou Configure Default Build Task... puis choisir
Create tasks.json file from template .
Le fichier tasks.json définit l’ensemble des tâches :
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build release",
"type": "shell",
"command": "g++",
"args": [
"main.cpp",
"-o",
"main"
],
"problemMatcher": [
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "build debug",
"type": "shell",
"command": "g++",
"args": [
"-g",
"main.cpp",
"-o",
"main"
],
"problemMatcher": [
]
},
{
"label": "run",
"type": "shell",
"command": "./main",
"dependsOn": [
"build release"
],
"problemMatcher": [
]
}
]
}
Explications :
on nomme les tâches avec la clé label
on leur attribue un type , ici shell
on leur associe une command , les arguments seront définis un par un dans la clé args
on ajoute une dépendance à la tâche run qui entraînera l’exécution de la tâche Build
on marque la tâche build release comme la tâche par défaut pour la commande
Run Build Task... ( Ctrl+Maj+B )
Dans Terminal → Run Task... puis choisir run (ou build ).
au final, l’arborescence du répertoire src :
À partir du Terminal , il est possible d’ouvrir un fichier ou de voir les différences entre deux fichiers :
$ code src/main.cpp
$ code --diff src/main.cpp src/main2.cpp
Debug
VS Code propose une interface de débogage vers gdb .
On commence par ajouter une configuration :
Le fichier launch.json définit la session de débogage. Il faut au moins renseigner le chemin complet du
programme dans la clé program :
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "debug g++",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/main",
"args": [],
"stopAtEntry": true,
"cwd": "${fileDirname}/",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"preLaunchTask": "build debug",
}
]
}
Ensuite, aller dans Debug → Start Debugging ( F5 ) :
Configuration
Il est possible de modifier la configuration spécifiquement à un répertoire de travail.
Aller dans View → Command Palette ( Ctrl+Maj+P ou F1 ) :
Il est possible d’utiliser :
soit l’interface graphique :
soit directement le fichier c_cpp_properties.json :
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
Extensions
Extensions C++
Il existe d’autres extensions pour le C/C++.
Aller dans File → Preferences → Extensions ( Ctrl+Shift+X ), puis rechercher : c++ .
À partir du Terminal , il est possible de gérer ses extensions :
$ code --help
$ code --list-extensions
En voici quelques unes qui peuvent être utiles :
Thèmes (Light et Dark) :
svn (Subversion) :
Doxygen :
Cette extension fournit la génération des tags à la volée en démarrant un bloc de commentaires Doxygen (/**) et
en appuyant sur Entrée.
/**
* @brief ...
*
* @return int
*/
int main()
{
return 0;
}
AStyle :
Cliquer le bouton droit de la souris et choisir Format Document ou Format Document With... :
Makefile :
Se placer sur un répertoire, puis aller dans View → Command Palette ( Ctrl+Maj+P ou F1 ) :
C/C++ Projects Generator :
Aller dans View → Command Palette ( Ctrl+Maj+P ) :
L’extension va créer une arborescence de répertoires pour le projet ainsi que sonMakefile :
Easy C++ projects :
Aller dans View → Command Palette ( Ctrl+Maj+P ) :
L’extension va créer une arborescence de répertoires pour le projet ainsi que sonMakefile :
Elle permet aussi de générer le squelette d’une classe.
Autres extensions
PlatformIO IDE : http://tvaira.free.fr/dev/tutoriel/platformio.html
Markdown All in One : http://tvaira.free.fr/projets/activites/markdown-vscode.pdf
Node-RED : http://tvaira.free.fr/node-red/node-red.html