Désactiver la mise en forme du code Visual Studio dans Razor


118

Cela a déjà été demandé: pourquoi la mise en forme du code Visual Studio ne fonctionne-t-elle pas correctement pour le balisage Razor?

Mais cette question remonte à quelques années. Et le formatage de Razor est toujours totalement inacceptable. J'ai renoncé à le réparer.

Puis-je désactiver TOUT le formatage de Visual Studio pour les fichiers CSHTML? Sinon, puis-je désactiver entièrement la mise en forme de Visual Studio? Des hacks tiers que je peux utiliser? Il doit y avoir quelque chose!

J'ai mis à niveau vers 2013 et le formatage est tout aussi mauvais.

[EDIT]: 2015 est aussi horrible. Je souhaite VRAIMENT qu'ils régleraient ce problème.

[EDIT]: 2017 est aussi horrible. Je souhaite VRAIMENT qu'ils régleraient ce problème.

[EDIT]: 2019 est aussi horrible. Je souhaite VRAIMENT qu'ils régleraient ce problème.


15
Son pire en 2013.
TombMedia

3
Sérieusement. Il doit y avoir quelque chose qui peut être fait à ce sujet ...
JustMaier

7
C'est pire en 2015 aussi!
Paul le

4
Non corrigé dans vs 2017 rtm
avril

5
Non fixé en 2018.
Dirk Boer

Réponses:


53

Vous ne pouvez pas. Ceci est intégré dans la "fonctionnalité" de VS depuis la première version .net (Visual Studio 2002/2003).

Il existe des tonnes de rapports de connexion sur les bogues de formatage, mais Microsoft les ignore complètement, ou pousse le correctif vers la «version suivante». Vous pouvez voir un exemple de réponse Microsoft ici .

Vous pouvez publier vos propres commentaires sur Microsoft Team ici


1
Je cherchais à nouveau cela avec exaspération, je ne sais pas s'ils ont changé quelque chose, mais le correctif de Metroid Hunter fonctionne pour moi dans Razor stackoverflow.com/a/28053865/62829
mattmanser

4
Comment le HTML dans Visual Studio peut-il encore être si nul en 2015?
schmoopy

1
En fait, c'est pire en 2015 que la version 2013 (il en va de même pour C # où il indentera des choses sans rapport à chaque fois que vous ouvrez une accolade). J'aimais le studio visuel, mais cela le tue lentement.
Youen

1
Remarque: les liens de connexion sont tous morts maintenant
jrh

64

Sous Outils -> Options -> Éditeur de texte -> HTML -> Avancé

il y a un élément de valeur clé Coller qui dit "Formater sur coller" et a une valeur booléenne à côté. Changer ce paramètre en false a désactivé le formatage lors du collage pour moi dans la syntaxe de rasoir.

J'utilise VS Professional 2013, version 12.0.30110.00 Update 1


Je vous remercie! Le formatage automatique sur pâte me rendait fou. Cela semble l'avoir éliminé.
Torrents

Génial, c'est exactement ce qu'il faut pour chasser ça! THX!
Martin S Ek

Je vous voterais plus d'une fois, c'est une réponse correcte pour vs version 2013 up1 et plus récent.
Erik Simonic

2
Ne fonctionne pas dans Visual 2015? J'ai décoché "format sur coller" dans HTML / avancé, mais je reçois toujours un formatage génial / un retrait fou lors du collage. J'envisage d'utiliser un autre éditeur pour les fichiers cshtml, mais je perdrais l'auto-complétion C #. Cette situation est folle.
Youen

5
A travaillé pour moi dans VS2017.
Dave

36

Les endroits à regarder:

Tools -> Options -> Web Essentials -> HTML -> Auto-format HTML on Enter

(Nécessite l'installation de l'extension Web Essentials)

Définir sur False

Tools -> Options -> Text Editor -> HTML -> Advanced -> Format on Paste

Définir sur False

Avec ces paramètres, je n'ai aucun problème dans Visual Studio 2013.

J'avais l'habitude d'appuyer trop souvent sur Ctrl-Z, et si vous oubliez de démêler le désordre une fois que votre code a été écrit et testé, c'était une énorme douleur. Je pense que Microsoft pourrait faire beaucoup pour aider les utilisateurs à configurer cela et à le rendre plus accessible.


3
Il n'y a pas de zone «Web essentiels».
Paul

Très bonne réponse! Cela me dérange depuis des années, mais pas plus!
David Kirkland

2
@Paul Web Essentials est une extension VS qui améliore beaucoup de choses liées aux éditeurs HTML, CSS, JS. L'installation et la désactivation du formatage automatique aident beaucoup .
SandRock

3
Cela devrait être marqué comme la réponse. Surtout la ligne sur Web Essentials. Merci @dazbradbury!
Aggromonster

1
La deuxième option ne résout pas le problème dans VS2017 et la première n'existe même pas.
ygoe

24

Ce qui a fonctionné pour moi, c'est d'appuyer sur CTRL + Z après le collage, puis le formatage est supprimé.


3
travaillé ici ... je collais un morceau comprenant un <select> avec une série d'attributs knockout de liaison de données répartis sur ~ 8 lignes et il tuait le boîtier du chameau et supprimait les deux points ... était sur le point de lancer et de retaper il ... puis j'ai fait ce Ctrl + Z et à peu près crié que cela fonctionnait ... @ Miros
beauXjames

J'ai voté pour. Cela fonctionne dans VS 2015 :) Aucune autre solution (divers paramètres sous Outils> Options) n'a fonctionné pour moi, du moins pas lors du collage de contenu censé changer d'une manière ou d'une autre entre code / html, c'est-à-dire coller des lignes contenant du code C # suivi de html balises ou coller le balisage html directement après les lignes avec du code C #.
savehansson

Cela fonctionne toujours, partout dans VS. C'est la seule façon d'annuler le désordre causé par le formatage. (Ou l'avez-vous vraiment nettoyé manuellement ??) Je m'y suis déjà habitué, mais c'est très ennuyeux.
ygoe du

10

Dans mon cas, R # a fini par être le coupable, peut être désactivé ici:

ReSharper> Options> Édition de code> Razor> Éditeur et formatage

https://www.jetbrains.com/help/resharper/2016.1/Reference__Options__Languages__Razor__Editor.html


Ceci n'est pas inclus avec Visual Studio, vous auriez donc dû l'installer séparément.
Paul

2
La raison pour laquelle je le mentionne ici est que quelqu'un pense peut-être que Visual Studio faisait le reformatage (comme je l'ai fait) alors qu'il pourrait en fait être R # (ce que beaucoup de développeurs utilisent). Donc, si quelqu'un ne peut pas le désactiver et qu'il a installé R #, il voudra s'assurer qu'il est désactivé dans les deux.
hcoverlambda

5
Dans R # 2017.3, ces paramètres sont sur ReSharper | Options | Environnement | Rédacteur | Editor Behavior
Dark Daskin

1
Dans R # 2018.3, j'ai dû également définir le comportement de l'éditeur, le formatage automatique lors du
collage

7

Malheureusement, le seul moyen d'empêcher le formatage automatique lors du collage est de commenter l'emplacement où vous allez coller du nouveau code et, après l'opération de collage, de supprimer les instructions de commentaire.

Search & Replace ne semble pas déclencher le formatage automatique. Mais coller reformate tout le bloc de code.

C'est terrible au-delà des mots. Cela rend Visual Studio IDE pratiquement inutilisable pour l'édition Razor. Il faut utiliser un éditeur externe pour les fichiers Razor.

Pire encore, même la dernière mise à jour 1 de Visual Studio 2013 se bloque lors de la modification permanente des vues Razor.


6

La partie amusante est que vous pouvez désactiver le formatage C # et le formatage HTML, mais pas le formatage Razor.

J'ai décoché "Outils> Options> Editeur de texte> C #> Formatage> Formater automatiquement lors du collage" et de même pour HTML.

Ce qui se traduit par l'expérience amusante suivante dans les fichiers cshtml:

  • Coller le code HTML: pas de format
  • Coller le code C #: pas de format
  • Coller le code Razor: formater tout faux

Et comme il n'y a pas d'option pour changer les options du rasoir, vous devez vivre avec cela, je suppose.

Ma "solution": coller et ctrl-z pour annuler le formatage automatique


1
Moi aussi ... mais ça me rend fou!
Matt Kocaj du

Votre solution est un travail autour et prend quelques minutes lors de la modification de fichiers volumineux.
Arturo Torres Sánchez

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.