2010-11-17 12 views
8

A volte (ma non sempre !?) quando si incolla o termina una riga con un punto e virgola, Visual Studio aggiungerà uno spazio dopo l'istruzione if! Ad esempio, quando si incolla, questoVisual Studio che aggiunge spazio dopo le istruzioni if ​​

if() 

si trasformerà in questo:

if (condition) 

e, al momento di compilare una linea, questa

if(condition) 
    DoSomething() 

si trasformerà in questo:

if (condition) 
    DoSomething(); 

Dovendo eliminare costantemente questo spazio (a volte due volte!) mi sta guidando assolutamente Bonkers! Sembra che succeda con if e while ma non con for.

Non riesco a trovare nulla in merito a questo nelle opzioni VS. Io ho installato ReSharper, ma è impostato per non aggiungere lo spazio automaticamente: (image of my resharper settings)

Perché Visual Studio punirmi?

+2

Le tue preferenze di formattazione mi sembrano piuttosto strane, ma +1 in ogni caso per "Perché Visual Studio mi sta punendo?" –

risposta

15

Nelle opzioni di Visual Studio, sotto Editor di testo/C#/formattazione/spaziatura, nella parte "Impostare le altre opzioni di spaziatura", c'è un opzione per "Inserisci spazio dopo le parole chiave nelle istruzioni di flusso di controllo".

I sospetto troverai che hai controllato e che non vuoi che sia. (Ho controllato che deliberatamente :)

+0

+1 Quello che ha detto, anche –

+3

good ol 'Jon Skeet <3 –

4

Disabilita la formattazione automatica come meglio credi.

Strumenti-> Opzioni-> Testo Editor-> C# -> Formattazione-> Generale.

Tutti sono selezionate per impostazione predefinita nel mio C# Express 2010 config:

  • formattare automaticamente dichiarazione completato in;
  • formattare automaticamente blocco completato il}
  • formattare automaticamente sulla pasta
0

Un altro buon trucco lascia il codice come è e premere CTRL + K + D che si auto-formato il codice e fissare gli spazi

+1

Oppure rovinerà gli spazi, se le impostazioni non sono corrette. –

0

visivo comportamento Studio sembra essere un poco incoerente qui.Ho provato tutto qui con i "formattazione automatica" Impostazioni tutti controllato nelle Opzioni, come mostrato nell'immagine seguente:

enter image description here

ho usato il seguente codice:

if(true) 
{ 
    int m = 3; 
} 

Se copio/incollare il codice sopra in Visual Studio, Visual Studio applicherà automaticamente la formattazione, risultando in uno spazio dopo lo if.

Se si digita il codice manualmente, Visual Studio non aggiungerà automaticamente uno spazio dopo lo if, anche dopo aver completato la riga if con una parentesi di chiusura e anche dopo aver completato il blocco if con una parentesi di chiusura.

Come indicato in un'altra risposta, se CTRL + K + D per formattare l'intero documento, Visual Studio inserisce uno spazio dopo se.

Questo è un po 'frustrante perché se sto scrivendo manualmente il codice non ottengo spazio dopo se (per abitudine) ma se incollo il codice o formatto il mio documento ottengo degli spazi.

Problemi correlati