Utilisation de Visual Studio Code
Visual Studio Code (VS Code) est un environnement de développement intégré développé par Microsoft pour Windows, Linux, macOS et les navigateurs web. Veuillez trouver ci-dessous des recommandations d’utilisation dans l’écosystème du CC-IN2P3.
Bien démarrer
Note
Ceci s’applique également aux dérivés/alternatives de VSCode/VSCodium, notamment Antigravity, Cursor, Positron, Zed, etc.
connectez-vous aux serveurs interactifs à l’aide d’un client SSH (pas VS Code, mais PuTTY, OpenSSH, etc.),
récupérez le nom d’hôte du serveur auquel vous vous êtes connecté :
% hostname cca042
lancez VS Code sur ce serveur (en suivant l’exemple précédent, sur
cca042.in2p3.frau lieu decca.in2p3.fr) ;lancez votre session interactive à partir d’une connexion SSH (et non depuis un terminal VS Code) afin que votre
srunait plus de chances de persister même si VS Code plante ou se déconnecte ;attendez que VS Code ait terminé son initialisation, en particulier si vous n’avez pas suivi les recommandations de dépannage ci-dessous concernant le répertoire de travail.
Dépannage
Répertoire de travail
Lorsque VS Code démarre, il lance la commande git status -z -uall dans son répertoire de travail. Cette commande n’est pas optimisée pour un répertoire contenant beaucoup de fichiers et/ou des fichiers de taille importante : veuillez lancer VS Code à partir d’un répertoire contenant un faible nombre de fichiers.
En règle générale, veuillez privilégier un sous-répertoire de votre répertoire personnel (HOME) plutôt qu’un de votre répertoire GROUP.
Serveur Jupyter Notebook
VS Code permet de lancer un serveur Notebook Jupyter intégré. Si le serveur Jupyter intégré est lancé lors d’une connexion à un serveur interactif cca, son utilisation peut provoquer le dépassement des limites acceptés et son exécution sera interrompue.
Pour exécuter vos notebooks Jupyter, nous vous conseillons de privilégier l’utilisation de la Plateforme de Notebooks Jupyter proposée par le CC-IN2P3.
Perte de connexion
Si la connexion internet de votre poste de travail peut être interrompue par la mise en veille de votre écran (cas des utilisateurs Mac avec une connexion Thunderbolt, c’est-à-dire une connexion au réseau Ethernet filaire dans l’écran), vos fenêtres VS Code seront fermées par le manque de connexion. Voici ci-dessous la description de ce qu’il se passe :
VS Code crée une connexion SSH vers un serveur
ccaet lance (sur cet interactif)Node.js;l’utilisateur interrompt temporairement de son activité ;
le poste de travail détecte le manque d’activité et met l’écran en veille: la connexion réseau est coupée et
la connexion SSH disparaît ;
mais le
Node.jsde VS Code persiste ;le VS Code fantôme est détecté par le monitoring des interactifs (et tué).
Optimiser la performance
Pour résoudre certains problèmes de performance avec VScode depuis un serveur interactif, vous pouvez ajouter les lignes ci-dessous dans votre fichier de configuration ~/.vscode-server/data/Machine/settings.json.
{ "files.watcherExclude": { "**/.git/objects/**": true, "**/.git/subtree-cache/**": true, "**/node_modules/*/**": true, "**/.cache/**": true, "**/.conda/**": true, "**/.local/**": true, "**/.nextflow/**": true } }
Bien évidemment, vous pouvez modifier ou ajouter des répertoires à la liste.
Sur-exploitation des ressources
Par défaut lors de son démarrage, VS Code recherche les noms des symboles du code source pour ses fonctions d’auto-complétion. Pour se faire, il utilise ripgrep qui utilise tous les cœurs de la machine pour faire un scan rapide.
Attention
Il est recommandé, si possible, de désactiver cette collecte avec ripgrep (ou de la configurer pour être moins agressive) pour éviter la charge trop importante sur le serveur interactif.
Pour désactiver ripgrep, ajoutez la ligne suivante au fichier de configuration de VS Code :
"search.useRipgrep": false
Localisation du fichier de configuration :
sur Linux :
$HOME/.config/Code/User/settings.jsonsur macOS :
$HOME/Library/Application Support/Code/User/settings.json