Disabilitare la formattazione del codice di Visual Studio in Razor


118

Questo è stato chiesto in precedenza: perché la formattazione del codice di Visual Studio non funziona correttamente per il markup Razor?

Ma quella domanda è vecchia di un paio d'anni. E la formattazione Razor è ancora completamente inaccettabile. Ho rinunciato a risolverlo.

Posso disabilitare TUTTA la formattazione di Visual Studio per i file CSHTML? In caso contrario, posso disabilitare completamente tutta la formattazione di Visual Studio? Eventuali hack di terze parti che posso usare? Deve esserci qualcosa!

Sono passato al 2013 e la formattazione è altrettanto pessima.

[EDIT]: anche il 2015 è terribile. Vorrei VERAMENTE che risolvessero questo problema.

[EDIT]: anche il 2017 è terribile. Vorrei VERAMENTE che risolvessero questo problema.

[EDIT]: anche il 2019 è terribile. Vorrei VERAMENTE che risolvessero questo problema.


15
È
PEGGIORE

3
Sul serio. Deve esserci qualcosa che può essere fatto al riguardo ...
JustMaier

7
È PEGGIORE ANCHE nel 2015!
Paul

4
Non risolto in vs 2017 rtm
aprile

5
Non fisso nell'anno 2018.
Dirk Boer

Risposte:


53

Non puoi. Questa è una "funzionalità" incorporata di VS sin dalla prima versione .net (visual studio 2002/2003).

Ci sono tonnellate di rapporti di connessione sui bug di formattazione, ma Microsoft li ignora completamente, o spinge la correzione alla "prossima versione". Puoi vedere un esempio di risposta di Microsoft qui .

Puoi inviare il tuo feedback al team Microsoft qui


1
Stavo cercando questo esasperato ancora una volta, non so se hanno cambiato qualcosa, ma correzione di Metroid Hunter funziona per me in Razor stackoverflow.com/a/28053865/62829
mattmanser

4
Come può l'HTML in Visual Studio ancora succhiare così tanto nel 2015?
schmoopy

1
In realtà è peggiore nel 2015 rispetto alla versione 2013 (lo stesso vale per C # dove farà rientrare le cose non correlate ogni volta che apri una parentesi graffa). Amavo lo studio visivo, ma questo lo sta lentamente uccidendo.
Youen

1
Nota: i collegamenti di connessione sono tutti morti ora
jrh

64

In Strumenti -> Opzioni -> Editor di testo -> HTML -> Avanzate

c'è un elemento valore chiave Incolla che dice "Formato su incolla" e ha un valore booleano accanto ad esso. La modifica in false ha disabilitato la formattazione su incolla per me nella sintassi del rasoio.

Sto usando VS Professional 2013, versione 12.0.30110.00 aggiornamento 1


Grazie! La formattazione automatica (mal) su paste mi stava facendo impazzire. Questo sembra averlo eliminato.
Torrent

Fantastico, questo è esattamente ciò di cui hai bisogno per scacciarlo! Grazie!
Martin S Ek

Ti voterei più di una volta, questa è una risposta corretta per la versione vs 2013 up1 e successive.
Erik Simonic

2
Non funziona in visual 2015? Ho deselezionato "formato su incolla" in HTML / avanzato, ma ottengo ancora una formattazione originale / un rientro folle quando incollo. Sto considerando di utilizzare un altro editor per i file cshtml, ma poi perderei il completamento automatico C #. Questa situazione è folle.
Youen

5
Ha funzionato per me in VS2017.
Dave

36

I posti da guardare:

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

(Richiede l'installazione dell'estensione Web Essentials)

Impostato su False

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

Impostato su False

Con queste impostazioni non ho problemi in Visual Studio 2013.

Di solito dovevo premere Ctrl-Z troppo spesso, e se ti dimenticavi di districare il caos una volta che il tuo codice è stato scritto e testato è stato un enorme dolore. Ritengo che Microsoft potrebbe fare molto per aiutare gli utenti a configurarlo e renderlo più accessibile.


3
Non esiste un'area "elementi essenziali per il web".
Paul,

Bella risposta! Questo mi infastidisce da anni, ma non di più!
David Kirkland

2
@Paul Web Essentials è un'estensione VS che migliora molte cose relative agli editor HTML, CSS, JS. Installarlo e disabilitare la formattazione automatica aiuta molto .
SandRock

3
Questo dovrebbe essere contrassegnato come risposta. Soprattutto la linea su Web Essentials. Grazie @dazbradbury!
Aggromonster

1
La seconda opzione non lo risolve in VS2017 e la prima non esiste nemmeno.
ygoe

24

Quello che ha fatto il trucco per me è stato premere CTRL + Z dopo aver incollato, quindi la formattazione viene rimossa.


3
lavorato qui ... stavo incollando un pezzo che includeva un <select> con una serie di attributi knockout di data-bind distribuiti su ~ 8 righe e stava uccidendo l'involucro del cammello e rimuovendo i due punti ... stava per puntare e ridigitare esso ... poi ho fatto questo Ctrl + Z e ho detto che funzionava ... @
Miros

Upvoted. Funziona in VS 2015 :) Nessun'altra soluzione (varie impostazioni in Strumenti> Opzioni) ha funzionato per me, almeno non quando si incolla il contenuto che dovrebbe cambiare in qualche modo tra codice / html, ad esempio incollando righe contenenti codice C # seguito da html tag o incollando markup html direttamente dopo le righe con codice C #.
savehansson

Funziona sempre, ovunque in VS. Questo è l' unico modo per annullare il pasticcio causato dalla formattazione. (O l'hai davvero ripulito manualmente ??) Mi ci sono già abituato, ma è molto fastidioso.
ygoe

10

Nel mio caso R # ha finito per essere il colpevole, può essere disabilitato qui:

ReSharper> Opzioni> Modifica codice> Rasoio> Editor e formattazione

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


Tuttavia, questo non è incluso in Visual Studio, quindi sarebbe stato necessario installarlo separatamente.
Paul

2
Il motivo per cui lo menziono qui è che qualcuno potrebbe pensare che Visual Studio stesse eseguendo la riformattazione (come ho fatto io) quando potrebbe effettivamente essere R # (che molti sviluppatori usano). Quindi, se qualcuno non è in grado di disabilitarlo e ha installato R #, vorrebbe assicurarsi che sia disabilitato in entrambi.
hcoverlambda

5
In R # 2017.3 queste impostazioni sono su ReSharper | Opzioni | Ambiente | Editore | Comportamento dell'editor
Dark Daskin

1
In R # 2018.3 ho dovuto impostare anche Comportamento dell'editor, Formattazione automatica
all'incolla

7

Sfortunatamente l'unico modo per impedire la formattazione automatica su incolla è commentare la posizione in cui incollerai del nuovo codice e dopo l'operazione di incollaggio rimuovere le istruzioni per i commenti.

Cerca e sostituisci sembra non attivare la formattazione automatica. Ma incollando si riformatta l'intero blocco di codice.

Questo è terribile oltre le parole. Rende l'IDE di Visual Studio praticamente inutilizzabile per la modifica di Razor. È necessario utilizzare un editor esterno per i file Razor.

Quel che è peggio, anche l'ultimo aggiornamento 1 di Visual Studio 2013 si arresta in modo anomalo durante la modifica delle visualizzazioni Razor tutto il tempo.


6

La parte divertente è che puoi disabilitare la formattazione C # e HTML ma non la formattazione Razor.

Ho deselezionato "Strumenti> Opzioni> Editor di testo> C #> Formattazione> Formatta automaticamente quando incolla" e lo stesso per HTML.

Il che si traduce nella seguente divertente esperienza nei file cshtml:

  • Incolla il codice HTML: nessun formato
  • Incolla il codice C #: nessun formato
  • Incolla il codice Razor: formatta tutto in modo sbagliato

E poiché non è possibile modificare le opzioni Razor, credo che devi convivere con questo.

La mia "soluzione": incolla e ctrl-z per annullare la formattazione automatica


1
Anch'io .. ma mi sta facendo impazzire!
Matt Kocaj

La tua soluzione è un aggiramento e richiede pochi minuti per la modifica di file di grandi dimensioni.
Arturo Torres Sánchez

0

Ho trovato queste impostazioni in Resharper 2019, che hanno migliorato la mia esperienza: inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.