Fondamentaux¶
Comprendre ce qu'est un IDE, pourquoi il est au cœur du workflow de développement, et comment VS Code a impose un nouveau modèle.
Éditeur de texte, éditeur de code, IDE¶
Trois catégories d'outils existent pour écrire du code :
| Catégorie | Définition | Exemples |
|---|---|---|
| Éditeur de texte | Manipulation de texte brut, pas de notion de langage | Notepad, nano, vi |
| Éditeur de code | Coloration syntaxique, indentation, extensions possibles | VS Code, Sublime Text, Atom |
| IDE complet | Éditeur + compilateur + debugger + refactoring intégrés | IntelliJ, Visual Studio, Eclipse |
La frontiere entre éditeur de code et IDE s'est estompee. VS Code est techniquement un éditeur de code, mais avec les bonnes extensions, il rivalise avec un IDE complet.
Pourquoi l'IDE est central¶
L'IDE est le point de convergence de presque toutes les activités de développement :
graph TD
IDE["IDE / Editeur"]
IDE --> A["Ecrire du code"]
IDE --> B["Naviguer dans le projet"]
IDE --> C["Debugger"]
IDE --> D["Terminal integre"]
IDE --> E["Git integre"]
IDE --> F["Tests"]
IDE --> G["IA assistee"] Un IDE bien configure reduit les changements de contexte : le développeur reste dans un seul outil au lieu de jongler entre terminal, navigateur et éditeur.
La philosophie extensible de VS Code¶
VS Code repose sur un noyau minimal et un système d'extensions :
| Composant | Rôle |
|---|---|
| Electron | Moteur de rendu (Chromium + Node.js) |
| Monaco Editor | Éditeur de texte performant (même moteur que GitHub.dev) |
| Extension Host | Processus separe pour les extensions (isolation) |
| Language Server Protocol (LSP) | Protocole standard pour l'intelligence de langage |
| Debug Adapter Protocol (DAP) | Protocole standard pour le debugging |
LSP : un standard ouvert
Le Language Server Protocol a ete cree par Microsoft pour VS Code, puis ouvert a la communauté. Un serveur LSP écrit pour VS Code fonctionne aussi dans Neovim, Emacs ou Zed. C'est un investissement mutualisable.
Workspace vs User Settings¶
VS Code distingue deux niveaux de configuration :
| Niveau | Fichier | Portee | Partage |
|---|---|---|---|
| User Settings | ~/.config/Code/User/settings.json | Tout l'éditeur | Personnel |
| Workspace Settings | .vscode/settings.json | Le projet courant | Commite dans Git |
Les Workspace Settings ecrasent les User Settings. C'est le mécanisme qui permet à une équipe de partager des conventions sans imposer de configuration personnelle.
// .vscode/settings.json — partage avec l'equipe
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.tabSize": 2,
"files.trimTrailingWhitespace": true
}
Concepts cles¶
| Concept | Définition |
|---|---|
| Extension | Plugin qui ajoute une fonctionnalité (langage, theme, outil) |
| Palette de commandes | Interface de recherche unifiee (Ctrl+Shift+P) |
| Multi-root workspace | Un seul éditeur, plusieurs dossiers racine |
| Settings Sync | Synchronisation de la config entre machines (via GitHub/Microsoft) |
| Profile | Jeu de settings + extensions nomme et commutable |
| Task | Commande externe (build, lint, test) exécutée depuis l'IDE |