2010-11-17 6 views
8

Parfois (mais pas toujours !?) lorsque je colle ou termine une ligne avec un point-virgule, Visual Studio ajoutera un espace après l'instruction if! Par exemple, lors du collage, ceVisual Studio ajoutant de l'espace après les instructions if

if() 

se transformeront en ceci:

if (condition) 

et, au moment de remplir une ligne, ce

if(condition) 
    DoSomething() 

se transformeront en ceci:

if (condition) 
    DoSomething(); 

Devoir de supprimer constamment cet espace (parfois deux fois!) me conduit absolument Bonkers! Il semble arriver avec if et while mais pas for.

Je ne trouve rien à ce sujet dans les options VS. J'ai ReSharper installé, mais il est configuré pour ne pas ajouter l'espace automatiquement: (image of my resharper settings)

Pourquoi Visual Studio me punir?

+2

Vos préférences de mise en forme me semblent assez étranges, mais +1 de toute façon pour "Pourquoi Visual Studio me punit-il?" –

Répondre

15

Dans les options Visual Studio, sous l'éditeur de texte/C#/Mise en forme/espacement, dans la partie « Définissez les autres options d'espacement », il y a une option pour "Insérer un espace après les mots clés dans les instructions de flux de contrôle".

I suspect vous constaterez que vous avez vérifié que, et vous ne le voulez pas. (Je l'ai vérifié délibérément :)

+0

+1 Ce qu'il a dit, aussi –

+3

bon vieux Jon Skeet <3 –

4

Désactiver le formatage automatique comme bon vous semble.

Outils-> Options-> Texte Éditeur-> C# -> Formatage-> Général.

Tous sont cochées par défaut dans mon C# Express 2010 config:

  • forme automatique de déclaration terminée sur;
  • forme automatique de bloc terminé sur}
  • formatera automatiquement sur la pâte
0

Une autre bonne astuce quitte le codage est et appuyez sur CTRL + K + D il sera automatiquement au format de votre code et fixer les espaces

+1

Ou il va gâcher les espaces, si vous n'avez pas les paramètres corrects. –

0

comportement Visual Studio semble être un peu inconsistant ici.Je l'ai testé tout ici avec les paramètres « Format automatiquement » tous vérifiés dans les options, comme le montre l'image suivante:

enter image description here

J'ai utilisé le code suivant:

if(true) 
{ 
    int m = 3; 
} 

Si je copie/collez le code ci-dessus dans Visual Studio, Visual Studio appliquera automatiquement la mise en forme - résultant en un espace après if. Si je tape le code manuellement, Visual Studio n'ajoutera pas automatiquement un espace après if, même après avoir complété la ligne if avec une parenthèse de fermeture, et même après avoir complété le bloc if avec un crochet de fermeture.

Comme mentionné dans une autre réponse, si je CTRL + K + D pour formater le document entier, Visual Studio insère un espace après if.

C'est un peu frustrant parce que si j'écris manuellement du code, je n'ai pas d'espace après (si c'est par habitude) mais si je colle du code ou formate mon document, j'obtiens des espaces.

Questions connexes