Plusieurs commandes/tâches avec le Code de Visual Studio
J'ai un dossier local que j'utilise comme un bloc-notes pour plusieurs petit échantillon et jouets de morceaux de code. - Je stocker une multitude de python, C++, shell scripts etc. dans ce répertoire.
Je suis en utilisant le Code de Visual Studio (sous OS X) et suis à la recherche dans ses tâches courir/compiler les extraits de code sans avoir à basculer vers un terminal.
Par exemple, j'ai trouvé cette tâche suivante va lancer python sur le fichier actuellement ouvert.
// A task runner that runs a python program
{
"version": "0.1.0",
"command": "/usr/bin/python",
"args": ["${file}"]
}
Cette tâche s'utiliser python comme le groupe de coureur quel que soit le type de fichier que je suis en train d'éditer.
Comment puis-je mettre en œuvre une tâche à exécuter une commande basée sur le type de fichier (ou de choisir entre plusieurs commandes)? I. e. si je suis en train de modifier un fichier C++, il sera exécuté clang++.
- Si je ne peux pas le faire, basé sur le type de fichier; existe-il des alternatives?
- Une alternative serait; plusieurs commandes prises en charge?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez toujours utiliser bash est votre tâche de coureur et puis assigner des commandes du terminal comme vos tâches.
Quelques notes sur ce qui se passe ici:
-c
pour toutes les tâches en les mettant dans desargs
liste de la commande afin que nous puissions exécuter des commandes arbitraires. Leecho
énoncés ne sont que des exemples, mais pourrait être n'importe quoi exécutable à partir de votre terminal bash.args
tableau contient une chaîne unique d'être passé àbash -c
(éléments distincts seraient traités comme plusieurs arguments à la commande bash et pas la commande associée à la-c
arg).suppressTaskName
est utilisé pour garder lataskName
le mix~/.bash_profile
si vous besoin de quelque chose qu'il offre, tels que des alias, des variables d'environnement, quelle que soitCe ne sera pas vous donner toute sorte d'extension de fichier de détection, mais vous pouvez au moins utiliser cmd+p tapez "tâche" pour obtenir une liste de vos tâches. Vous pouvez toujours marquer votre 2 la plupart des commandes les plus courantes avec
isBuildCommand
etisTestCommand
de les exécuter à l'aide de cmd+maj+b ou cmd+maj+t, respectivement.Cette réponse a quelques informations utiles qui pourraient être utiles à vous aussi bien.
bash -c
que la commande de coureur. Cela me convient tout à fait bien.Cette réponse a été à l'origine destiné à un plus complexe solution, mais la coquille simple coureur tâche format tel que présenté dans l'acceptation de réponse s'est avérée plus utile. Voir ci-dessous de ce à quoi ça ressemble maintenant.
La limitation ici est que VS Code est limitée à un seul niveau élevé de construire de travail/commande pour un espace de travail. Plusieurs sous-tâches sont autorisés, mais ils sont limités à l'utilisation de la haut niveau "commande", mais peut fournir différents "arguments". Ce serait bien adapté à un environnement qui utilise un système de construction, semblable à de faire, ant ou msbuild. E. g.;
Deux alternatives sont disponibles;
Avoir un script personnalisé, essayez d'exécuter la compilation/exécution uniquement donné les arguments de la tâche.json.
Obtenir l'exécutable à exécuter (
./a.out
) a été plus d'efforts. Simplement ajouter, comme un argument ne fonctionne pas, le script shell a été requis pour l'exécuter si elle était là.Un Shell sur la commutation et de l'exécution de la sortie d'un script personnalisé, compte tenu de l'extension de fichier et le nom de fichier. Cela s'est avéré plus facile à mettre en œuvre et a offert plus de contrôle dans le script shell.
Et le script shell, compileme.sh;
Étant donné les options énumérées ci-dessus, la seconde option est préférable. Cette application fonctionne sur OS X, mais il pourrait facilement être porté sous Linux et Windows en tant que de besoin. Je vais garder un œil sur ce sujet et essayer de suivre les modifications apportées à la VS Code de construire des tâches, de fichier de base de construction ou de soutien pour des commandes multiples pourrait être une addition bienvenue.
Mes tâches.json prend en charge quelques coureurs, et un défaut de construction qui imprime un message de rappel. Il utilise le shell comme le coureur et ressemble maintenant...
J'ai fait ce script.
Il requiert l'installation de python IDLE dans votre environnement.
Cela permettra d'ouvrir le régime de RALENTI et d'exécuter votre fichier python chaque fois que vous exécutez vos tâches (CTRL+Maj+B).
Vous pouvez écrire et exécuter un script personnalisé fichier au lieu de
python
etc. directement. Dans le fichier de script vous permet d'extraire l'extension de fichier afin de l'appelerpython
,clang
ou quel que soit le compilateur/traducteur neededmay être.Donc, votre tâche fichier devrait ressembler à ceci;