VS Code
Compétence portable pour configurer et utiliser les IDE de la famille VS Code (VS Code, VS Code Insiders, Cursor, VSCodium, Trae, Qoder, CodeBuddy) via la CLI produit et des fichiers de configuration JSON structurés. Les paramètres par défaut utilisent uniquement les emplacements standard ; les chemins explicites sont pris à partir des variables d'environnement et d'un fichier de configuration, permettant à la compétence de s'exécuter sur n'importe quelle machine sans édition.
Note sur les plateformes : Multiplateforme via la passerelle Python
scripts/vscode_skill.py. Sous Windows, elle redirige vers le pilote PowerShellvscode-cli.ps1(l'implémentation d'origine, 11/11 tests réussis). Sous macOS et Linux, elle implémente nativement en Python les commandesinfo,ext list,settings path/get/set/smokeetpython set-interpreter; tout le reste est délégué à votre binairecodelocal.
Démarrage rapide
Multiplateforme (recommandé)
# Affiche le produit détecté, le chemin CLI et les emplacements clés
python scripts/vscode_skill.py info
# Liste les extensions installées
python scripts/vscode_skill.py ext list
# Affiche le chemin du fichier user settings.json et les paramètres principaux actuels
python scripts/vscode_skill.py settings path
python scripts/vscode_skill.py settings get
# Modifie la taille de la police dans les paramètres utilisateur (écrit seulement avec --Apply)
python scripts/vscode_skill.py settings set \
--FontSize 16 --FontFamily "JetBrains Mono, Consolas, monospace" --Apply
# Paramètres au niveau du projet
python scripts/vscode_skill.py settings set \
--Scope project --ProjectPath /chemin/vers/projet \
--FormatOnSave true --Apply
# Interpréteur Python pour un projet
python scripts/vscode_skill.py python set-interpreter \
--ProjectPath /chemin/vers/projet --VenvName .venv
Windows uniquement (PowerShell)
Les mêmes commandes fonctionnent directement via vscode-cli.ps1 si vous préférez PowerShell :
pwsh -File $PSScriptRoot\scripts\vscode-cli.ps1 info
pwsh -File $PSScriptRoot\scripts\vscode-cli.ps1 ssh open `
--HostName devbox --LinuxPath /home/user/project
Valeurs --Product :
auto(par défaut) : probe VS Code, puis VS Code Insiders.vscode: utilisecode/code.cmd.vscode-insiders: utilisecode-insiders/code-insiders.cmd.- Tout slug de produit configuré tel que
cursor,vscodium,trae-cn,qoderoucodebuddy-cn: utiliseproducts.<slug>.cliPath,userDataPathetextensionsPathdu fichier de configuration.
Définissez le produit par défaut explicitement avec VSCODE_SKILL_PRODUCT ou via le fichier de configuration (voir Configuration).
Produits compatibles VS Code
La détection automatique intégrée est la plus robuste pour VS Code et VS Code Insiders. Cursor, VSCodium, Trae, Qoder et CodeBuddy sont gérés via le chemin de configuration générique du produit, sauf si leur CLI est déjà détectable via un wrapper spécifique à l'environnement.
Cette compétence ne revendique que la surface de configuration compatible VS Code pour les produits dérivés :
- Paramètres utilisateur et projet, y compris
.vscode/settings.json. .vscode/tasks.json,.vscode/launch.jsonet.vscode/extensions.jsondu projet.- Raccourcis clavier, snippets, profils, extensions, modèles, sélection de l'interpréteur Python et flux d'ouverture de type Remote lorsque la CLI du produit local les prend en charge.
N'utilisez pas cette compétence pour prendre en charge les chats AI propriétaires, les comptes, les paramètres de modèle, les magasins d'agents, les marketplaces spécifiques aux produits, les états SQLite cachés, les jetons ou les fichiers runtime internes. Pour Qoder et CodeBuddy en particulier, limitez-vous au niveau de l'éditeur/configuration compatible VS Code, sauf si l'utilisateur fournit une documentation officielle spécifique au produit et demande un adaptateur séparé.
Configuration
Les chemins et les préférences par machine sont résolus dans cet ordre :
- Variable d'environnement (priorité la plus élevée).
- Fichier de configuration à
$VSCODE_SKILL_CONFIGs'il est défini, sinon le défaut de la plateforme :- Windows :
%APPDATA%\vscode-skill\config.json - macOS / Linux :
$XDG_CONFIG_HOME/vscode-skill/config.jsonou~/.config/vscode-skill/config.json
- Windows :
- Valeurs par défaut intégrées (priorité la plus basse).
Variables d'environnement
| Variable | Objectif | Défaut |
|---|---|---|
VSCODE_SKILL_HOME | Emplacement d'installation de la compétence | parent du script en cours d'exécution |
VSCODE_SKILL_CONFIG | Surcharge du chemin du fichier de configuration | défaut de la plateforme ci-dessus |
VSCODE_SKILL_TEMP | Surcharge du réperoire temporaire pour les tests | $TEMP/vscode-skill |
VSCODE_SKILL_PRODUCT | Valeur --Product par défaut | auto |
VSCODE_CODE_CLI | Chemin explicite vers la CLI VS Code | détection automatique |
VSCODE_INSIDERS_CLI | Chemin explicite vers la CLI VS Code Insiders | détection automatique |
VSCODE_EXTENSIONS_DIR | Surcharge du répertoire d'installation des extensions pour tout produit | défaut du produit ou configuration |
VSCODE_USER_DATA | Surcharge du répertoire de données utilisateur (rare) | défaut de la plateforme |
Schéma du fichier de configuration
Copiez config.example.json depuis la racine de la compétence vers votre emplacement de configuration et éditez-le. Toutes les clés sont optionnelles.
{
"product": "auto",
"tempDir": null,
"products": {
"vscode": {
"cliPath": "C:\\Users\\vous\\scoop\\apps\\vscode\\current\\bin\\code.cmd"
},
"vscode-insiders": {
"cliPath": "C:\\Users\\vous\\scoop\\apps\\vscode-insiders\\current\\bin\\code-insiders.cmd"
},
"cursor": {
"cliPath": "C:\\Users\\vous\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin\\cursor.cmd",
"userDataPath": "C:\\Users\\vous\\AppData\\Roaming\\Cursor\\User",
"extensionsPath": "C:\\Users\\vous\\.cursor\\extensions"
},
"vscodium": {
"cliPath": "C:\\Users\\vous\\scoop\\apps\\vscodium\\current\\bin\\codium.cmd",
"userDataPath": "C:\\Users\\vous\\AppData\\Roaming\\VSCodium\\User",
"extensionsPath": "C:\\Users\\vous\\.vscode-oss\\extensions"
},
"trae-cn": {
"cliPath": "C:\\Users\\vous\\AppData\\Local\\Programs\\Trae CN\\bin\\trae-cn.cmd",
"userDataPath": "C:\\Users\\vous\\AppData\\Roaming\\Trae CN\\User",
"extensionsPath": "C:\\Users\\vous\\.trae-cn\\extensions"
},
"qoder": {
"cliPath": "C:\\Users\\vous\\AppData\\Local\\Programs\\Qoder\\bin\\qoder.cmd",
"userDataPath": "C:\\Users\\vous\\AppData\\Roaming\\Qoder\\User",
"extensionsPath": "C:\\Users\\vous\\.qoder\\extensions"
},
"codebuddy-cn": {
"cliPath": "C:\\Users\\vous\\AppData\\Local\\Programs\\CodeBuddy CN\\bin\\codebuddy.cmd",
"userDataPath": "C:\\Users\\vous\\AppData\\Roaming\\CodeBuddy CN\\User",
"extensionsPath": "C:\\Users\\vous\\.codebuddycn\\extensions"
}
},
"ssh": {
"defaultHost": "localhost",
"defaultUser": "vous"
},
"wsl": {
"defaultDistro": "Ubuntu-24.04"
}
}
Exécutez pwsh -File scripts/init-config.ps1 pour écrire un fichier de configuration de démarrage à l'emplacement par défaut.
Discipline des portées
Avant d'écrire un état IDE, classez-le dans l'une des trois portées et confirmez avec l'utilisateur en cas d'ambiguïté :
- Inspection en lecture seule :
info,ext list/locate,settings get/path. Toujours sûr. - Configuration du projet :
.vscode\settings.json,tasks.json,launch.json,extensions.json, snippets du projet. Digne d'être commité ; n'incluez pas de thèmes personnels, polices, informations de compte ou chemins absolus locaux à la machine. - Configuration utilisateur / globale :
settings.jsonutilisateur,keybindings.json, snippets utilisateur, paramètres de profil, extensions installées. Indiquez toujours le produit cible, le fichier, la clé, l'ancienne valeur (lorsqu'elle est lisible), la nouvelle valeur et le chemin de restauration avant d'appliquer.
Règles :
settings setnécessite--Applyexplicite ; sans cela, la commande valide uniquement les entrées.ext installappelle--install-extensionde la CLI produit. Si la galerie échoue, le script ne réessaye pas silencieusement avec Open VSX ; un avertissement clair est affiché et l'appelant décide.- Les paramètres de projet écrits via cette compétence ne doivent jamais inclure
python.defaultInterpreterPathpointant vers un venv local à la machine, sauf si le projet est destiné à être reproductible sur cette machine spécifique.
Référence des paramètres
Chemins courants des paramètres utilisateur :
- VS Code :
%APPDATA%\Code\User\settings.json - VS Code Insiders :
%APPDATA%\Code - Insiders\User\settings.json
Clés courantes (toutes définissables via settings set) :
| Clé | Drapeau | Type |
|---|---|---|
editor.fontFamily | --FontFamily | string |
editor.fontSize | --FontSize | int |
editor.lineHeight | --LineHeight | number |
workbench.colorTheme | --ColorTheme | string |
workbench.iconTheme | --IconTheme | string |
workbench.productIconTheme | --ProductIconTheme | string |
editor.wordWrap | --WordWrap | string |
editor.tabSize | --TabSize | int |
editor.formatOnSave | --FormatOnSave | bool |
files.autoSave | --AutoSave | string |
editor.minimap.enabled | --Minimap | bool |
python.defaultInterpreterPath | (défini via python set-interpreter) | string |
Pour les clés arbitraires, passez --SettingKey <clé> --SettingValue <valeur>. Les valeurs sont converties : true/false → bool, entier/flottant → number, {...} / [...] → JSON, sinon string.
Les fichiers JSON peuvent utiliser le style JSON-avec-Commentaires de VS Code ; l'analyseur JSON standard du script ne gère que le JSON pur. Les fichiers contenant des commentaires doivent être édités via l'éditeur ou un outil compatible JSONC.
Commandes
pwsh -File scripts/vscode-cli.ps1 info
pwsh -File scripts/vscode-cli.ps1 ext list
pwsh -File scripts/vscode-cli.ps1 ext locate --Id ms-python.python
pwsh -File scripts/vscode-cli.ps1 ext install --Id ms-python.python
pwsh -File scripts/vscode-cli.ps1 ext install --Path D:\downloads\some-extension.vsix
pwsh -File scripts/vscode-cli.ps1 settings path
pwsh -File scripts/vscode-cli.ps1 settings get
pwsh -File scripts/vscode-cli.ps1 settings set --FontSize 16 --Apply
pwsh -File scripts/vscode-cli.ps1 settings set --Scope project --ProjectPath D:\projects\demo --FormatOnSave true --Apply
pwsh -File scripts/vscode-cli.ps1 settings smoke
pwsh -File scripts/vscode-cli.ps1 python make-venvs --ProjectPath D:\projects\demo
pwsh -File scripts/vscode-cli.ps1 python set-interpreter --ProjectPath D:\projects\demo --VenvName .venv
pwsh -File scripts/vscode-cli.ps1 python verify --ProjectPath D:\projects\demo --ExpectedVenvName .venv
pwsh -File scripts/vscode-cli.ps1 ssh smoke --HostName localhost
pwsh -File scripts/vscode-cli.ps1 ssh open --HostName devbox --LinuxPath /home/user/project
pwsh -File scripts/vscode-cli.ps1 wsl list
pwsh -File scripts/vscode-cli.ps1 wsl open --Distro Ubuntu-24.04 --LinuxPath /home/user/project
Ordre de résolution CLI : env explicite (VSCODE_CODE_CLI / VSCODE_INSIDERS_CLI) → config.products.<product>.cliPath → Get-Command code.cmd (PATH) → Get-Command code (PATH) → %LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.cmd (défaut Windows). Les produits génériques échouent clairement lorsque products.<product>.cliPath est absent ; ils ne sont jamais mappés silencieusement à VS Code.
Modèles et contenu groupé
La compétence est livrée avec du contenu organisé sous references/ :
settings-index.md— 80 paramètres les plus utilisés avec type, défaut, portée.settings-precedence.md— Modèle de précédence à 11 couches + comportement des espaces de travail multi-racines.tasks-templates.md+templates/tasks/*.json— 10tasks.jsonprêts à l'emploi pour Node, TypeScript, Python, Go, Rust, Docker, Make.launch-templates.md+templates/launch/*.json— 9launch.jsonprêts à l'emploi pour les mêmes langages plus Chrome.extension-packs.md— 8 piles organisées (frontend-web, backend-python, backend-node, data-science, systems, devops, polyglot-baseline, ai-coding).keybindings-cheatsheet.md— 50 raccourcis les plus remappés.
# Liste les modèles de tâches disponibles
python scripts/vscode_skill.py tasks list
# Génère .vscode/tasks.json à partir d'un modèle (refuse d'écraser sans --Force)
python scripts/vscode_skill.py tasks init --Template python-pytest --ProjectPath /chemin/vers/projet --Apply
# Même structure pour les modèles de lancement
python scripts/vscode_skill.py launch init --Template python-current-file --ProjectPath /chemin/vers/projet --Apply
# Piles d'extensions organisées
python scripts/vscode_skill.py extensions stacks
python scripts/vscode_skill.py extensions recommend --Stack frontend-web
python scripts/vscode_skill.py extensions install --Stack backend-python
python scripts/vscode_skill.py extensions pin --Stack polyglot-baseline --ProjectPath /chemin/vers/projet
Profils, synchronisation des paramètres, espaces de travail multi-racines
# Inspecte les profils (lecture seule)
python scripts/vscode_skill.py profile list
python scripts/vscode_skill.py profile show --Profile <nom>
# Vérifie si le stockage de la synchronisation des paramètres existe localement (ne lit pas les charges utiles)
python scripts/vscode_skill.py settings-sync status
# Aide pour les espaces de travail multi-racines
python scripts/vscode_skill.py workspace info --ProjectPath /chemin/vers/projet
python scripts/vscode_skill.py workspace folder-settings-get --ProjectPath /chemin --Dossier frontend
python scripts/vscode_skill.py workspace folder-settings-set --ProjectPath /chemin --Dossier frontend --SettingKey editor.defaultFormatter --SettingValue dbaeumer.vscode-eslint --Apply
La synchronisation des paramètres n'est jamais activée ou désactivée programmatiquement — la compétence signale uniquement si le dossier de stockage de synchronisation existe. Activez/désactivez-la via l'interface utilisateur des comptes VS Code pour éviter les fuites de données accidentelles.
Développement distant
ssh openconstruit une URIvscode-remote://ssh-remote+<hôte><chemin>et lance la CLI résolue avec--folder-uri.wsl openconstruit une URIvscode-remote://wsl+<distro><chemin>de la même manière.ssh smokeexécutessh -V,ssh -G <hôte>etTest-NetConnectionpour confirmer la couche inférieure ; il ne garantit pas que l'extension Remote-SSH soit installée ou que le serveur VS Code ait démarré.
Pour un dépannage distant plus approfondi, consultez Aide → Développeur → Outils de développement, le canal de sortie de l'extension Remote-SSH, ou l'entrée workspaceStorage du produit concerné.
Tests
Le run_vscode_skill_tests.py inclus exécute des vérifications sécurisées sans écriture par défaut :
python -X utf8 scripts/run_vscode_skill_tests.py --basic
Groupes optionnels (nécessitent l'environnement correspondant) :
python -X utf8 scripts/run_vscode_skill_tests.py --include-python-venv
python -X utf8 scripts/run_vscode_skil
…
[ tronqué pour la traduction ]