Travaillez plus efficacement avec les workspace de VSCode
Je vous présente les workspaces qui vont vous permettre de travailler plus efficacement même si vous n’avez qu’un seul projet.
Je vais prendre pour exemple mes dossiers de formation par langage. J’enseigne le HTML/CSS, PHP, Python, Javascript et donc au moins 3 dossiers. J’aimerais lorsque je montre un exemple avoir accès à ces 3 dossiers.
Avant :
Soit j’ouvrais plusieurs fois le dossier pour trouver mon exemple de code, soit j’ouvrais plusieurs fenêtres (car j’ai tellement de codes que je ne me souviens plus)
Après :
Avec les workspaces, j’ai sous la main tous ces dossiers et je peux chercher facilement sans ouvrir de VSCode supplémentaires. Vous pouvez sauver votre configuration dans un fichier workspace et réouvrir exactement comme c’était la prochaine fois.
Les autres avantages des workspaces :
Des paramètres par workspace
Connaissez vous le setting.json dans .vscode (le fichier que vous aimez ignorer dans git), il contient par exemple alversion de l’interpréteur, le ty pe d’indentationi, le linting, thème de l’éditeur.
Extensions par workspace
je peux activer ou désactiver des extensions par workspaces !
Configuration de debug par workspace
On peut avoir un fichier launch.json pour lancer et déboguer avec les bon paramètres, NodeJs dans un projet, ou React dans un autre.
Multiroot workspace
On peut avoir plusieurs dossiers indépendants dans un même workspace, utile quand vous faites un monorepo par exemple : un back end en nodeJS, un front reactJS, avec un Golive qui ne réagit qu’au changement de fichier que dans le dossier front end.
Task spécifique au workspace
Le fichier tasks.json (build, test, script etc) permet de définir des tâches automatisées, qu’on peut voir dans le menu Terminal > Run Task
Les shells
Dans le terminal, vous pouvez ouvrir plusieurs shells, mais en l’absence de workspace, ce n’est pas mémorisé, saviez vous que vous pouvez changer la couleur du label du shell? Grâce au workspace, ce setting sera mémorisé.
Utilisation d’un task pour automatiser l’ouverture de terminaux
Voici le script
{
"version": "2.0.0",
"tasks": [
{
"label": "Task A",
"type": "shell",
"command": "echo Running Task A",
"presentation": {
"group": "startup-group1",
"panel": "dedicated",
"reveal": "silent",
"clear": true
}
},
{
"label": "Task B",
"type": "shell",
"command": "echo Running Task B",
"presentation": {
"group": "startup-group2",
"panel": "dedicated",
"reveal": "silent",
"clear": true
}
},
{
"label": "Startup",
"dependsOn": [
"Task A",
"Task B"
],
"dependsOrder": "sequence", // <--- important: runs sequentially, not in parallel
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
Version Linux
{
"version": "2.0.0",
"tasks": [
{
"label": "Task A",
"type": "shell",
"command": "echo Running Task A",
"presentation": {
"group": "startup-groupA",
"panel": "dedicated",
"reveal": "silent",
"clear": true
}
},
{
"label": "Task B",
"type": "shell",
"command": "echo Running Task B",
"presentation": {
"group": "startup-groupB",
"panel": "dedicated",
"reveal": "silent",
"clear": true
}
},
{
"label": "Task C (Bash)",
"type": "shell",
"command": "echo Running Task C with Bash",
"options": {
"shell": {
"executable": "/bin/bash"
}
},
"presentation": {
"group": "startup-groupC",
"panel": "dedicated",
"reveal": "silent",
"clear": true
}
},
{
"label": "Startup",
"dependsOn": [
"Task A",
"Task B",
"Task C (Bash)"
],
"dependsOrder": "sequence",
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
Pas besoin de trouver gitbash, car sous Linux bash est par défaut.
