Si plusieurs extensions sont installées, comment déterminez-vous le formateur qui s'exécute sur votre document?
Par exemple, j'ai quelques extensions HTML qui peuvent formater HTML, mais je ne sais pas laquelle est en train de formater, ou si plusieurs le sont. Je ne sais même pas quelles extensions peuvent contribuer honnêtement au formatage. Récemment, la mise en forme automatique en HTML et CSS a changé la façon dont ils sont mis en forme d'une manière qui ne m'intéresse pas, et je voudrais savoir quelle extension fait cela afin que je puisse modifier la configuration ou désactiver l'extension. Actuellement, j'ai quelque chose comme 80-90 extensions, donc passer un par un est un processus ridiculement opportun que je voudrais éviter s'il existe un moyen programmatique de le déterminer. Il semble que les extensions doivent s'enregistrer auprès du service de formatage pour pouvoir effectuer leur formatage automatique, mais je ne sais pas s'il existe un moyen de les déboguer, de les accrocher ou de les afficher.
à partir de la version 1.33 (mars 2019) , en essayant de formater un fichier pour lequel il existe plusieurs formateurs, les résultats enregistrés dans une fenêtre contextuelle comme celle-ci:
Notez que la notification est "silencieuse" si le formatage s'est produit implicitement via "format lors de l'enregistrement" ou "format lors du collage", ce qui signifie que vous devez cliquer sur la cloche en bas à droite pour qu'elle s'affiche:
Le Configure...
menu répertorie ensuite tous les formateurs disponibles pour la langue actuelle. L'un d'eux peut être sélectionné comme formateur par défaut pour Format Document
ou Format Selection
:
Par exemple, choisir "Prettier" ici l'ajoute au fichier global settings.json
:
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
Il existe également deux nouvelles commandes pour formater un fichier avec un formateur spécifique, Format Document With...
et Format Selection With...
. Cela peut être utile pour formater un fichier spécifique avec un formateur qui n'est pas défini comme formateur par défaut. Le premier est également disponible dans le menu contextuel: