Disattiva la formattazione automatica in Visual Studio


134

Sono un purista di codice, preferendo il mio stile di formattazione del codice rispetto alle impostazioni predefinite di Visual Studio. Ho disattivato le opzioni di formattazione automatica in Strumenti / opzioni. Nella maggior parte dei casi funziona.

Dopo aver utilizzato uno qualsiasi dei refactoring integrati, Visual Studio modifica le mie impostazioni con quelle predefinite. Come posso impedire a VS di farlo?


9
@ user1142958 ogni pochi mesi in un progetto open source e ogni pochi anni nel mondo degli affari, mi imbatto in qualche hotshot che insiste sul fatto che il suo stile è migliore dello standard. Attraverso anni di ricerca, è stato determinato che gli standard di stile migliorano la leggibilità e la manutenibilità del codice. Quando gli sviluppatori escogitano il loro approccio "migliore", generalmente hanno la tendenza a respingere altri sviluppatori nel team. Leggi questo come esempio - woldlab.caltech.edu/~king/swc/www/readstyle.html
senfo

29
@senfo Sono tutte informazioni fantastiche, ma il formatter incorporato di Visual Studio è innegabilmente interrotto in alcuni casi (ad esempio stackoverflow.com/questions/6459861/… ). In quei casi, preferirei usare la mia intelligenza umana per conformarmi agli standard che ritengo appropriati piuttosto che fare affidamento sul triste tentativo di VS di "stile".
Dan Bechard,

5
@senfo - La formattazione automatica VS .cshtml, specialmente in termini di rasoio, è interrotta. D'accordo con te in altre parti, ma questa non è una caratteristica - è un bug
Ross,

5
Quando "lo standard" sembra che due gatti abbiano combattuto sulla tastiera, la coerenza non è una virtù. Chiamami un hotshot ma ne vale la pena il tempo extra per rendere leggibile il codice. La mia esperienza è perfettamente coerente: le persone più appassionate di coerenza (sic) hanno promosso il codice più illeggibile che possono inventare.
Chris Fox,

5
Un purista di codice è una persona che inserisce il testo nella formattazione corretta, quindi non è necessaria la formattazione automatica (possibilmente interrotta).
Anders Lindén,

Risposte:


106

Ho avuto questo problema durante la scrittura di VB in una aspxpagina.

La soluzione era andare su 'Strumenti> Opzioni> Editor di testo> Base> Specifico VB' e disattivare 'Pretty Listing'.


Nota: in Visual Studio 2015 è disponibile all'indirizzo:

Strumenti> Opzioni> Editor di testo> Base> Avanzate


Vorrei poter associare facilmente queste caselle a qualsiasi tasto di scelta rapida.
Mike de Klerk,

1
Grazie, ha funzionato per me. Il "prettying" è incredibilmente male, con i parametri di funzione "nascosti sotto" il nome della funzione, una scelta inspiegabile quando l'allineamento verticale tabellare è ciò che chiunque lavori nelle comunicazioni può dirti è più facile da capire.
Chris Fox,

54
mi limiterò a fare una pausa per ammirare la bellezza di avere una gerarchia di alberi delle opzioni che va text editor -> basic -> advanced.. 'oh sì, vuoi la sezione avanzata'? Questo è alla base
Fostandy il

12
@fostandy, mi rendo conto che probabilmente lo sai, ma basicè il nome della lingua, non la sezione delle opzioni, poiché anche C # è elencato lì.
Lightfire228

32

Disabilita la bella inserzione. È l'opzione che riformatta ciò che stai facendo. Ho avuto lo stesso disagio con esso e dopo averlo fatto, il mio codice rimane come voglio e non torna alle impostazioni precedenti.

inserisci qui la descrizione dell'immagine


Non ho questa opzione nel mio VS2010 Premium
Maciej

2
Risolto il problema con VS2017
Doug Null,

Non ho risolto il mio problema C ++ in VS 2013. E sono sicuro che non è stato rotto prima di cambiare macchina
CashCow,

6

Nel mio caso, è stato ReSharper.

Prova se ReSharper

StackOverflow: come posso disabilitare ReSharper in Visual Studio e riattivarlo?

Impedisci a ReSharper di riformattare il codice

StackOverflow: c'è un modo per contrassegnare il codice per dire a ReSharper di non formattarlo?

Aggiornare

Alla fine è stato ReSharper:

inserisci qui la descrizione dell'immagine


2
Grazie, questo mi stava facendo impazzire.
Simon Arnold,

1
D'accordo, le parentesi graffe erano sempre nel posto sbagliato, e letteralmente calpestava il codice con un pesante stivale calzato ogni volta che colpivi un punto e virgola. Non fico.
Contango

5

Potresti aver installato Power Tool .

In questo caso è possibile disattivarlo da "Strumenti> Opzioni> Produttività Elettroutensili> PowerCommands> Generale"

inserisci qui la descrizione dell'immagine


4

Come suggerito da @TheMatrixRecoder ci è voluto un po 'di ricerca, quindi forse questo aiuterà qualcun altro. L'opzione VS 2017 è disponibile qui

Unitick queste opzioni per evitare fastidiose formattazioni automatiche quando si inserisce un punto e virgola o si preme il ritorno alla fine di una riga.


3

In VS2017 è possibile modificarlo dopo aver selezionato la lingua di codifica nel menu delle impostazioni. C'è un'opzione chiamata "nuove linee" nel sottomenu "Formattazione".


2

Dubito che sia possibile disabilitare la riformattazione dopo il refactoring. Il refactoring modifica il codice e dal momento che è solo testo dubito che ciò che vorresti fosse che scarica semplicemente testo non formattato nella tua fonte. Non sarebbe un po 'più semplice impostare lo stile di codice VS aderisce allo stile che ti piace e segui?


1
A volte lo stile di codifica non è algoritmizzabile. A volte è intenzionalmente incoerente perché si contribuisce a un progetto con uno stile di codifica incoerente e si vuole aderire allo stile di codifica dello specifico pezzo di codice che si sta modificando.
Palec,

2

Il riformattazione al punto e virgola o parentesi graffa di chiusura non può essere disattivato. Trovo esasperante che Microsoft avrebbe la temerarietà di dire a chiunque come formattare il codice; il codice più illeggibile che abbia mai visto era mentre lavoravo lì.

Voglio che le assegnazioni adiacenti siano allineate verticalmente; VS li riformatta in uno spazio su entrambi i lati del segno uguale indipendentemente dalla lunghezza della variabile a sinistra. Questo è intollerabile. E disattivarlo sulle opzioni dell'editor viene ignorato; dato commenti come l'apri sopra sono sicuro che questo è intenzionale.

La coerenza è solo una virtù quando porta a risultati desiderabili. Questo non è uno.


2

Impostazioni VS2015 che mi hanno aiutato a prevenire la formattazione automatica:

(e Strumenti> Opzioni> Editor di testo> Base> Avanzate, proprio come suggerito da Tango91 )

inserisci qui la descrizione dell'immagine


1

Segui STRUMENTI-> OPZIONI-> Editor di testo-> CSS-> Formattazione Scegli "Regole compatte" e deseleziona "Rientro Hiearerchical"


Editor di testo -> CSS o HTML -> Schede -> Rientro -> (o) Nessuno
Bob Stein

1

Può essere il caso del formato Clang. In precedenza, l'intero file veniva formattato automaticamente al salvataggio del file e mi faceva impazzire (per i repository in cui il formato Clang non è abilitato).

Tale comportamento scompare dopo aver impostato "Strumenti -> Opzione -> LLVM / Clang -> ClangFormat -> Formato su Salva -> Abilita" su Falso.

Formato ClangFormat al salvataggio


0

È possibile modificare le impostazioni della formattazione del codice. Disattivo sempre tutte le interruzioni di riga aggiuntive e quindi funziona correttamente per come formattare il codice.

Se modifichi le impostazioni il più vicino possibile alle tue preferenze, ciò dovrebbe lasciare un lavoro minimo ogni volta che usi il refactoring.


0

Oltre alla risposta di Tango per la soluzione effettiva, potrebbero esserci persone che vogliono realmente rimanere aggiornate con i formati automatici, ma non aver rovinato le modifiche rilevanti. Suggerirei di modificare il file in modo da attivare la formattazione automatica, verificare tali modifiche, quindi procedere con le modifiche effettive che si desidera apportare.

In questo modo il tuo codice può rimanere aggiornato, ma il tuo check-in sarà pertinente.


0

Prova a disabilitare l'estensione Bundler & Minifier

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.