Cette extension pour Visual Studio Code transforme votre éditeur en un puissant serveur d'automatisation. Elle expose une interface WebSocket sécurisée qui permet à des outils externes ou des scripts d'interagir avec votre espace de travail pour exécuter des commandes shell et manipuler le système de fichiers de manière programmatique.
Idéal pour l'intégration continue, le scripting de tâches complexes ou la gestion de projets à distance, cet outil offre un contrôle total sur votre environnement de développement via un simple protocole JSON.
- Serveur WebSocket pour Commandes à Distance : Démarre un serveur WebSocket qui écoute les instructions JSON, permettant de piloter VS Code depuis n'importe quel client compatible. (implémenté dans
src/extension.ts) - Exécution de Commandes dans un Shell Persistant : Exécute des commandes shell (
execute-command) dans un unique processus bash persistant. Cela garantit que les variables d'environnement (commePYTHONPATH) et le contexte sont conservés entre les commandes. (implémenté danssrc/task-runner.ts) - Gestion Complète du Système de Fichiers : Offre un ensemble riche de commandes pour manipuler les fichiers et les répertoires : créer, lire, lister, mettre à jour, patcher (texte/JSON), supprimer, copier, déplacer et renommer. (implémenté dans
src/file-writer.tsetsrc/file-reader.ts) - Traitement Séquentiel et Fiable des Requêtes : Utilise une file d'attente pour traiter les messages un par un, assurant ainsi que les opérations, notamment sur les fichiers, s'exécutent de manière ordonnée et sans conflits. (implémenté dans
src/extension.ts)
Le workflow est simple : une fois l'extension activée, un client externe se connecte au serveur WebSocket et envoie des requêtes JSON pour effectuer des actions dans le workspace de VS Code.
- Lancement : L'extension est activée dans VS Code, démarrant le serveur WebSocket sur le port
3000. - Connexion : Un client (par exemple, un script ou l'outil
wscat) se connecte àws://localhost:3000. - Envoi d'une Commande : Le client envoie un message JSON structuré contenant un identifiant unique (
requestId) et la commande à exécuter. - Réception d'une Réponse : Le serveur exécute la tâche et retourne une réponse JSON contenant le même
requestIdet le résultat de l'opération.
Voici un exemple pour la création d'un fichier :
Requête du client :
{
"requestId": "req-12345",
"command": "create-file",
"filePath": "src/nouveau_module.js",
"content": "console.log('Hello, World!');"
}Réponse du serveur :
{
"status": "success",
"message": "Fichier créé: src/nouveau_module.js",
"requestId": "req-12345"
}- Clonez ce dépôt sur votre machine locale.
- Ouvrez le répertoire du projet dans Visual Studio Code.
- Installez les dépendances du projet via le terminal :
npm install
- Appuyez sur
F5(ou allez dans le menuExécuter > Démarrer le débogage). - Une nouvelle fenêtre de VS Code "[Extension Development Host]" s'ouvrira avec l'extension activée et le serveur WebSocket en écoute.
- Node.js : Version 18.x ou supérieure.
- npm : Le gestionnaire de paquets de Node.js.
- Visual Studio Code : Pour lancer et déboguer l'extension.
- (Optionnel) wscat : Un outil en ligne de commande pratique pour tester la communication WebSocket.
npm install -g wscat
Ce projet est sous licence MIT.