Comment exclure des fichiers du «format lors de l'enregistrement» dans VSCode?

109

Actuellement, dans les paramètres VSCode, vous pouvez configurer le format lors de l'enregistrement comme suit:

"editor.formatOnSave": true

Je souhaite exclure certaines extensions de fichier, par exemple, formater uniquement JavaScript mais pas les fichiers HTML.

gabrielAnzaldo
la source
Sur Mac, utilisez Ctrl + K Shift + SSous Linux, utilisezCtrl + K S
Joost van der Laan

Réponses:

190

Vous pouvez utiliser des paramètres spécifiques à une langue pour l' activer pour une langue spécifique uniquement, par exemple JavaScript:

"[javascript]": {
    "editor.formatOnSave": true
}

Pour le désactiver pour une langue spécifique, vous pouvez changer la valeur par défaut globale trueet la combiner avec une langue spécifique false:

"editor.formatOnSave": true
"[javascript]": {
    "editor.formatOnSave": false
}

Notez que les paramètres spécifiques à la langue sont basés sur les identificateurs de langue plutôt que directement sur les extensions de fichier. Il existe une demande de fonctionnalité ouverte pour permettre également les paramètres spécifiques à l'extension de fichier .

Dans les cas où l'ID de langue n'est pas assez spécifique, il "files.associations"peut être utilisé pour remapper des fichiers avec une extension spécifique et / ou dans un répertoire spécifique vers un autre ID, mais cela affectera également la coloration syntaxique, l'achèvement du code, etc. Par exemple, cela fonctionnerait pour désactiver le formatage des fichiers JavaScript dans les outrépertoires, mais ils seront traités comme du texte brut:

"[javascript]": {
    "editor.formatOnSave": true
},
"files.associations": {
    "**/out/**/*.js": "plaintext"
}
Gama11
la source
très bonne réponse. cependant est-il possible d'appliquer le format lors de l'enregistrement sur un module ou un dossier python spécifique ?? ... la solution de contournement J'ai ouvert ce module dans ses propres fenêtres vscode.
kerbrose
Un inconvénient de la définition, par exemple, des *.infichiers en texte brut ( "files.associations": { "*.in": "plaintext" }est-ce que cela désactive la mise en évidence du code. Existe-t-il un moyen de désactiver le formatage des *.infichiers, mais lui demander de surligner dans une certaine langue?
Cole Johnson
40

Si vous êtes tombé sur cette question comme je l'ai fait parce que vous avez été redirigé à cause de cette question VSCode: désactivez le formatage d'un fichier (ou d'une extension) spécifique qui dit, c'est un doublon (je ne le pense pas, car je le voulais pour un fichier spécifique) et vous recherchez une solution "ponctuelle":

VS Code a un raccourci "maintenant" (je ne sais pas depuis quand) pour enregistrer un fichier sans formatage répertorié sous la commande workbench.action.files.saveWithoutFormatting- La liaison par défaut doit être

CTRL + K CTRL + SHIFT + S 

(maintenez simplement CTRL enfoncée, puis tapez K + SHIFT + S).

Sous OS X, le raccourci clavier par défaut est

CMD + k puis appuyez s

Александр Фишер
la source
2
Je ne savais pas à ce sujet. Merci! Donc, je peux avoir 'FormatOnSave' activé, mais si je veux toujours enregistrer un fichier sans qu'il soit formaté, je maintiens Ctrl enfoncé, puis appuyez sur K + Shift + S Je l'ai essayé. Impressionnant!
abhijit le
2
sur linux en janvier 2020 it's Ctrl + kand then justs
ryanrain
0

Sur Mac et Linux, utilisez Ctrl + K S

Sous Windows, utilisez Ctrl + K Ctrl + Shift + S

Pour vérifier les raccourcis clavier VS Code: Ctrl + K, Ctrl + S(oui, presque le même que ci-dessus) et recherchez "enregistrer sans formatage"

Joost van der Laan
la source