180 votes

Instruction Visual Studio C # qui s'effondre

Lors de l'édition vraiment long des blocs de code (qui doit certainement être remaniée de toute façon, mais c'est au-delà de la portée de cette question), j'ai souvent long pour la capacité de l'effondrement des blocs comme on peut l'effondrement des blocs de fonction. C'est-à-dire, il serait grand si l'icône "moins" est apparu sur le code de contour pour tout entourés d'accolades. Il semble apparaître pour les fonctions, les classes, les régions, les espaces de noms, de l'usage, mais pas pour les conditionnelle ou itérative des blocs. Ça serait génial si je pouvais l'effondrement des choses comme les ifs, les commutateurs, les foreaches, ce genre de chose!

Googler en un peu, j'ai découvert que, apparemment, C++ décrivant en VS permet cela, mais C# décrivant VS ne le fait pas. Je ne comprends pas trop pourquoi. Même notepad++ si ces effondrements si j'ai choisi le C# mise en forme, donc je ne comprends pas pourquoi Visual Studio n'est pas.

Personne ne sait d'une VS2008 complément qui permettra à ce comportement? Ou une sorte de paramètre masqué?

Edité pour ajouter: l'insertion des régions est bien sûr une option et il l'avait déjà fait à moi, mais franchement, je ne devrais pas avoir à envelopper les choses dans une région qui sont déjà enveloppé dans des accolades... si j'allais modifier le code existant, je voudrais juste refactoriser le code afin d'avoir une meilleure séparation des préoccupations de toute façon. ("l'habillage" avec de nouvelles méthodes à la place des régions ;)

266voto

Skyblade Points 1366

Essayer C# contour plugin (@MSDN) (VS 2010) - "Ajoute toutes les accolades {} décrivant pour C# editor, non seulement de la classe et de ses membres, mais aussi des constructions à l'intérieur."

Aussi, il est VS la version 2012 de cet outil: C# contour 2012 (@MSDN)

Et il y a aussi VS 2013 version: C# contour 2013 (@MSDN)

Remarque: Si l'extension ne semble pas à l'installer après avoir utilisé un navigateur à télécharger, essayez d'utiliser le haut-extension de Visual Studio manager.

21voto

Kon Points 16125

Je ne suis pas au courant des compléments, mais vous avez mentionné des régions et je ne vois rien de mal à faire quelque chose comme ça ...

 foreach (Item i in Items)
{
  #region something big happening here
  ...
  #endregion

  #region something big happening here too
  ...
  #endregion

  #region something big happening here also
  ...
  #endregion
}
 

EDIT: En réponse à la question EDIT: Vous avez raison, coller un tas de régions partout n'est pas idéal et le refactoring est probablement la voie à suivre. Mais il semble que vous cherchez quelque chose de magique qui va "organiser" le code pour vous, et je ne pense pas que cela existe.

19voto

Matt Brunell Points 7120

Vous pouvez réduire certains blocs de texte dans Visual Studio, mais vous devez désactiver le mode automatique.

Faites un clic droit dans la fenêtre de votre code et sélectionnez (Contour | Arrêter le contour)

Ensuite, sélectionnez du texte, faites un clic droit et sélectionnez (Contour | Masquer la sélection)

Lorsque vous activez à nouveau le repérage automatique, vos "régions" personnalisées ne s'affaissent plus.

3voto

Chris Marisic Points 11495

Visual Studio 2008 prend en charge les régions à l'intérieur des fonctions tant que vous les gardez dans le même niveau hiérarchique de code

 #region Won't work
for(int i = 0; i<Count; i++)
{
//do something
#endregion
}

for(int i=0; i<Count; i++)
{
#region Works fine
//do lots of stuff
#endregion
}
 

2voto

280Z28 Points 49515

Cette fonctionnalité a été ajoutée à l'éditeur C # de Visual Studio 2010. Je ne peux pas trouver la source vérifiant que cela a été réellement mis en place, mais je me souviens d'avoir vu cela sur un des blogs des membres de l'équipe Dev 10, parlant des changements depuis la version bêta 1 ou quelque chose du genre. En guise de consolation, voici un commentaire de Microsoft suggérant qu'ils voulaient l'ajouter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X