Les makefiles sont des fichiers texte contenant des instructions pour make, un outil d'automatisation de construction initialement écrit par Stuart Feldman chez Bell Labs en 1976, mais réécrit plusieurs fois depuis.
Les makefiles font partie de la magie derrière les trois commandes que tout bricoleur Linux connaît - ./configure, make, make install - et encore largement utilisées dans les projets open source.
Cela étant, Microsoft a créé une nouvelle extension VSCode pour la prise en charge de makefile, qui est désormais disponible en préversion. L'extension donne aux développeurs des raccourcis pour les commandes make et la possibilité de définir un script pour préconfigurer les opérations du terminal avant d'exécuter make. Microsoft a fourni des configurations pour environ 70 projets, notamment ffmpeg, git, Mono, Node, PHP, PostgresSQL et aussi pour make lui-même.
Une fois l'extension installée, elle s'activera lorsqu'elle trouvera un Makefile dans le dossier racine de votre projet. Si le Makefile de votre projet ne se trouve pas dans le dossier racine, vous pouvez utiliser le paramètre Makefile Path pour indiquer à l'extension où le trouver. Mettez à jour Makefile Path en allant dans Fichier> Préférences> Paramètres, puis en sélectionnant makefile sous Extensions.
Après avoir mis à jour Makefile Path, tapez «makefile» dans la palette de commandes et exécutez une commande Makefile Tools pour activer l'extension.
Par défaut, l'extension tentera d'utiliser un programme make qui réside dans votre $ PATH pour configurer le projet. Si votre make.exe n'est pas dans votre $ PATH, mettez à jour le paramètre Make Path en allant dans Fichier> Préférences> Paramètres, puis en sélectionnant makefile sous Extensions. Le paramètre Make Path indique à l'extension où trouver votre make exécutable.
Une fois que votre chemin de création est correctement défini, acceptez l'invite pour autoriser Makefile Tools à configurer IntelliSense.
Si vous ne voyez pas cette notification ou si vous l'avez ignorée par inadvertance, vous pouvez autoriser Makefile Tools à configurer IntelliSense en exécutant «C / C ++: Change Configuration Provider» dans la palette de commandes et en sélectionnant Makefile Tools.
Vous êtes maintenant prêt à configurer votre projet! Si vous exécutez normalement make à partir de la ligne de commande sans lui transmettre d’arguments supplémentaires, vous ne devriez rien faire d’autre à ce stade.
Si vous passez régulièrement des arguments supplémentaires à make, utilisez le paramètre Configurations des outils Makefile (makefile.configurations dans settings.json) pour spécifier ces arguments. Makefile.configurations est un tableau d'objets de configuration, chacun avec un nom et une propriété makeArgs qui contient les arguments à transmettre à make. Pour vous aider, Microsoft a documenté les configurations correctes pour plus de 70 référentiels open source populaires. Par exemple, pour créer une configuration pour littlekernel, où vous devez passer «PROJECT = armemu-test» pour faire, votre settings.json ressemblerait à ceci:
Code C++ : | Sélectionner tout |
1 2 3 4 5 6 | "makefile.configurations": [ { "name": "littlekernel", "makeArgs": ["PROJECT=armemu-test"] } ] |
Make n'est pas difficile à utiliser depuis le terminal VS Code, avec ou sans cette extension, mais le fait que Microsoft ait choisi de le faire montre l'importance continue de cet utilitaire vieux de 40 ans.
Certains pourraient imaginer que VS Code est une alternative bienvenue à vi, un éditeur de ligne de commande pour Unix qui a à peu près le même âge que make, écrit pour la première fois par Bill Joy en « probablement 1976 » selon une interview. Vim, ou Vi IMproved, date des années 90 et le fait de taper vi dans un système d'exploitation de type Unix le fera normalement apparaître. L'ubiquité est un atout, tout comme la puissance de son interface modale.
« Soudain, vous réalisez que vous voulez copier la ligne actuelle et la coller directement sous la première. Comment est-ce que vous faites ça? Dites-moi votre processus étape par étape et comptons les frappes nécessaires pour y parvenir », écrivait le développeur Luke Maciak en 2012 à propos de vim et de la commande yyp. Maciak a également noté que « ce n'est pas ce que vous appelleriez un logiciel convivial », mais une fois que ses frappes sont familières, il est très efficace. La modalité, qui fait la distinction entre les commandes et la saisie de texte, est un moyen judicieux de contrôler un éditeur.
Il y a donc beaucoup de développeurs qui aimeraient que VS Code ressemble plus à vim, dont l'un a ouvert cette demande de fonctionnalité pour le « mode VIM comme Sublime » (Sublime étant un autre éditeur de code populaire). Il a rapidement remporté plus de 800 votes positifs et a été automatiquement ajouté au backlog de code de Visual Studio. Cela ne garantit pas qu'il sera implémenté. « Si et quand un élément Backlog est programmé pour une itération concrète dépend de la façon dont le problème s'aligne avec notre feuille de route », a écrit l'équipe dans son guide sur le tri des problèmes.
Il y a aussi des objections : les extensions VIM existent déjà, et « je préfère avoir un VSCode moins usine à gaz que je peux étendre si nécessaire plutôt qu'un monolithique qui a des tonnes de fonctionnalités que je n'utiliserai jamais », a déclaré un autre développeur.
Cependant l'implémentation de vim en tant qu'extension présente des problèmes de performances qui peuvent avoir un impact sur VS Code et ses autres extensions. « Si j'active le plugin vim (tous les autres plugins désactivés), vscode commence à ralentir », a écrit un développeur. Il y a un problème d'architecture, en ce que VS Code est soigneusement conçu pour garder les extensions quelque peu isolées. « Nous avons décidé d'exécuter des extensions dans un processus séparé afin que le cœur de VS Code soit moins affecté par les extensions », a récemment déclaré l'inventeur de VS Code, Erich Gamma. C'est généralement une bonne chose, mais il peut arriver des conditions où cela est sous-optimal pour une extension, en particulier si elle est en concurrence avec d'autres extensions. Il ne semble pas y avoir de solution facile.
Tout dans le monde de VS Code n'est pas rétro. Le responsable de programme Microsoft, Jeffrey Mew, a publié des billets sur les améliorations de Python dans la mise à jour de février, notamment l'intégration avec TensorBoard pour la visualisation des modèles d'apprentissage automatique, une meilleure lisibilité des docstrings (documentation intégrée dans le code Python) et une navigation simplifiée dans le code pour « aller à la définition » et « aller à la déclaration ».
VS Code a un grand nombre de problèmes ouverts, plus de 4400. Chaque développeur souhaite ajouter une fonctionnalité préférée, mais aucun d'entre eux ne souhaite un éditeur usine à gaz ou lent. Les problèmes du mode vim illustrent à quel point cela peut être difficile.
Télécharger Makefile Tools
Sources : Microsoft, demande de fonctionnalité VS Code, guide Microsoft VS Code, Microsoft program Manager Jeffrey Mew
Et vous ?
Que pensez-vous de Makefile ?
Que pensez-vous de l'ajout de cette extension ?
Allez-vous l'utiliser ?