Désactiver la mise en forme automatique dans Visual Studio


134

Je suis un puriste du code, préférant mon propre style de mise en forme du code par opposition aux paramètres par défaut de Visual Studio. J'ai désactivé les options de mise en forme automatique dans les outils / options. Dans la plupart des cas, cela fonctionne.

Après avoir utilisé l'une des refactorisations intégrées, Visual Studio supprime mes paramètres avec ses paramètres par défaut. Comment empêcher VS de faire ça?


9
@ user1142958 tous les quelques mois dans un projet open source et toutes les quelques années dans les affaires, je tombe sur un hotshot qui insiste sur le fait que son style est meilleur que la norme. Au cours d'années de recherche, il a été déterminé que les normes de style améliorent la lisibilité et la maintenabilité du code. Lorsque les développeurs proposent leur propre approche «meilleure», cela a généralement tendance à rejeter les autres développeurs de l'équipe. Lisez ceci comme un exemple - woldlab.caltech.edu/~king/swc/www/readstyle.html
senfo

29
@senfo Ce sont toutes de bonnes informations, mais le formateur intégré de Visual Studio est indéniablement cassé dans certains cas (par exemple, stackoverflow.com/questions/6459861/… ). Dans ces cas, je préfère utiliser mon esprit humain pour me conformer aux normes que je juge appropriées plutôt que de me fier à la triste tentative de VS de «style».
Dan Bechard

5
@senfo - Le formatage automatique VS .cshtml, en particulier en termes de rasoir, est cassé. D'accord avec vous dans d'autres parties, mais ce n'est pas une fonctionnalité - c'est un bug
Ross

5
Quand "le standard" ressemble à deux chats qui se sont battus sur le clavier, la cohérence n'est pas une vertu. Appelez-moi un hotshot mais le temps supplémentaire pour rendre le code lisible en vaut la peine. Mon expérience est parfaitement cohérente: les personnes les plus passionnées par la cohérence (sic) ont promu le code le plus illisible possible.
Chris Fox

5
Un puriste du code est une personne qui saisit le texte dans le bon formatage, de sorte qu'il n'y a pas besoin d'un formatage automatique (éventuellement cassé).
Anders Lindén

Réponses:


106

J'ai eu ce problème en écrivant VB dans une aspxpage.

La solution était d'aller dans «Outils> Options> Éditeur de texte> De base> Spécifique à VB» et de désactiver «Jolie liste».


Remarque - dans Visual Studio 2015, cela peut être trouvé à l'adresse:

Outils> Options> Editeur de texte> De base> Avancé


Je souhaite pouvoir lier ces cases à cocher facilement à n'importe quelle touche courte.
Mike de Klerk

1
Merci, cela a fonctionné pour moi. Le "joli" est incroyablement mauvais, avec des paramètres de fonction "cachés sous" le nom de la fonction, un choix inexplicable quand l'alignement vertical tabulaire est ce que quiconque travaille dans les communications peut vous dire est le plus facile à appréhender.
Chris Fox

54
Je vais juste faire une pause pour admirer la beauté d'avoir une hiérarchie d'arbre d'options qui va text editor -> basic -> advanced... 'oh ouais vous voulez la section avancée'? C'est sous basique
fostandy

12
@fostandy, je réalise que vous le savez probablement, mais basicc'est le nom du langage, pas la section d'options, car C # y est également répertorié.
Lightfire228

32

Désactivez la jolie liste. C'est l'option qui reformate ce que vous faites. J'ai eu le même inconfort avec cela et après l'avoir fait, mon code reste comme je le souhaite et il ne revient pas aux paramètres précédents.

entrez la description de l'image ici


Je n'ai pas cette option dans mon VS2010 Premium
Maciej

2
Corrige le problème dans VS2017
Doug Null

N'a pas résolu mon problème C ++ dans VS 2013. Et je suis sûr qu'il n'était pas cassé avant de changer de machine
CashCow

6

Dans mon cas, c'était ReSharper.

Tester si ReSharper

StackOverflow: Comment puis-je désactiver ReSharper dans Visual Studio et le réactiver ?

Empêcher ReSharper de reformater le code

StackOverflow: existe-t-il un moyen de baliser le code pour dire à ReSharper de ne pas le formater?

Mettre à jour

C'était ReSharper à la fin:

entrez la description de l'image ici


2
Merci, cela me rendait fou.
Simon Arnold

1
D'accord, les accolades étaient toujours au mauvais endroit, et il piétinait littéralement le code avec un lourd démarrage chaussé chaque fois que vous frappiez un point-virgule. Pas cool.
Contango

5

Vous avez peut-être installé Power Tool .

Dans ce cas, vous pouvez le désactiver à partir de 'Outils> Options> Outils électriques de productivité> PowerCommands> Général'

entrez la description de l'image ici


4

Comme le suggère @TheMatrixRecoder, il a fallu un peu de recherche pour moi, alors peut-être que cela aidera quelqu'un d'autre. L'option VS 2017 peut être trouvée ici

Cliquez sur ces options pour éviter un formatage automatisé ennuyeux lorsque vous placez un point-virgule ou appuyez sur retour à la fin d'une ligne.


3

Dans VS2017, vous pouvez le modifier après avoir sélectionné votre langue de codage dans le menu des paramètres. Il y a une option appelée "nouvelles lignes" dans le sous-menu "Formatage".


2

Je doute que vous puissiez désactiver le reformatage après le refactoring. Le refactoring modifie le code et comme il ne s'agit que de texte, je doute que vous souhaitiez simplement qu'il vide le texte non formaté dans votre source. Ne serait-il pas un peu plus facile de définir simplement le style de code que VS adhère au style que vous aimez et que vous suivez?


1
Parfois, le style de codage n'est pas algorithmisable. Parfois, il est volontairement incohérent parce que l'on contribue à un projet avec un style de codage incohérent et veut adhérer au style de codage du morceau de code spécifique en cours d'édition.
Palec

2

Le reformatage sur le point-virgule ou l'accolade fermante ne peut pas être désactivé. Je trouve exaspérant que Microsoft ait la témérité de dire à n'importe qui comment formater le code; le code le plus illisible que j'aie jamais vu était en travaillant là-bas.

Je veux que les affectations adjacentes soient alignées verticalement; VS les reformate en un espace de chaque côté du signe égal, quelle que soit la longueur de la variable à gauche. C'est intolérable. Et la désactivation des options de l'éditeur est ignorée; étant donné les commentaires comme l'ouverture ci-dessus, je suis certain que c'est délibéré.

La cohérence n'est une vertu que lorsqu'elle conduit à des résultats souhaitables. Ceci n'est pas un.


2

Paramètres VS2015 qui m'ont aidé à empêcher le formatage automatique:

(et Outils> Options> Éditeur de texte> De base> Avancé, tout comme Tango91 suggéré)

entrez la description de l'image ici


1

Suivez TOOLS-> OPTIONS-> Text Editor-> CSS-> Formatting Choisissez "Compact Rules" et décochez "Hiearerchical indentation"


Éditeur de texte -> CSS ou HTML -> Onglets -> Indentation -> (o) Aucun
Bob Stein

1

Cela peut être le cas du format Clang. Auparavant, le fichier entier était automatiquement formaté lors de la sauvegarde du fichier, et cela me rendait fou (pour les référentiels dont le format Clang n'est pas activé).

Un tel comportement a disparu après avoir tourné "Outils -> Option -> LLVM / Clang -> ClangFormat -> Formater lors de l'enregistrement -> Activer" sur False.

Format ClangFormat lors de l'enregistrement


0

Vous pouvez modifier les paramètres de formatage du code. Je désactive toujours tous les sauts de ligne supplémentaires, puis cela fonctionne bien pour la façon dont je formate le code.

Si vous modifiez les paramètres aussi près que possible de vos préférences, cela devrait vous laisser un minimum de travail chaque fois que vous utilisez la refactorisation.


0

En plus de la réponse de Tango pour la solution réelle, il se peut que des gens veuillent réellement se tenir au courant des formats automatiques sans que cela gâche vos changements pertinents. Je vous suggère de modifier le fichier pour activer le formatage automatique, de vérifier ces modifications, puis de procéder aux modifications que vous souhaitez apporter.

De cette façon, votre code peut rester à jour, mais votre enregistrement sera pertinent.


0

Essayez de désactiver l'extension Bundler & Minifier

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.