c# - texto - visual studio 2017 collapse all
Copia de declaraciĆ³n de Visual Studio C# (11)
Cuando edito bloques de código realmente largos (que sin duda deberían refactorizarse de todos modos, pero eso está más allá del alcance de esta pregunta), a menudo anhelo la posibilidad de colapsar bloques de instrucciones como uno puede colapsar bloques de funciones. Es decir, sería genial si el ícono menos apareciera en el contorno del código para todo lo que se incluye entre llaves. Parece que aparece para funciones, clases, regiones, espacios de nombres, usos, pero no para bloques condicionales o iterativos. Sería fantástico si pudiera colapsar cosas como ifs, switches, foreaches, ¡ese tipo de cosas!
Investigando un poco sobre eso, descubrí que aparentemente el delineado de C ++ en VS permite esto, pero la delineación de C # en VS no lo hace. Realmente no entiendo por qué. Incluso Notepad ++ lo hará, por lo que estos colapsan si selecciono el formato de C #, por lo que no entiendo por qué Visual Studio no lo hace.
¿Alguien sabe de un complemento VS2008 que permitirá este comportamiento? O algún tipo de configuración oculta para ello?
Editado para agregar: insertar regiones es, por supuesto, una opción y ya se me ocurrió, pero francamente, no debería tener que envolver las cosas en una región que ya está envuelta en llaves ... si iba a editar el código existente, simplemente lo refactorizaría para tener una mejor separación de la preocupación de todos modos. ("envolviendo" con nuevos métodos en lugar de regiones;)
# region, # endregion es la opción inteligente.
Añadiré aquí que en VS 2010, Microsoft ha agregado las capacidades adicionales de WPF usando el Marco de Extensibilidad Administrado (MEF), esto nos permitirá extender el editor de código fuente para organizarlos de una manera mucho mejor para hacerlo más legible y accesible.
Por ejemplo, el visualizador de Comentarios resumidos que Scott Gu demostró en PDC 2008 .
Así que esperamos un mañana mejor para los desarrolladores :)
Coderush describirá todos los bloques de códigos por usted. No estoy seguro de si le permite expandir / colapsar los bloques, pero el delinear es la mejor opción. Utilizo resharper en lugar de coderush que, por lo que yo sé, no proporciona colapso de bloque tampoco :(
Comenzando con Visual Studio 2017, el colapso de declaraciones está incorporado.
Hay varias extensiones que realizan esta tarea para las versiones anteriores a 2017 de VS, comenzando con la versión VS 2010:
- Esquema C #
- C # outline 2012 (@MSDN)
- C # outline 2013 (@MSDN)
- C # outline 2015 (@MSDN)
- Visual Basic y C # Outliner
La última extensión solo admite VS 2015 y VS 2017, pero es la más poderosa.
Admite coloración de sintaxis dentro de bloques contraídos, es más tolerante a fallas y optimizado.
Si la extensión no parece instalarse después de usar un navegador para descargarla, intente utilizar el administrador de extensiones de Visual Studio incorporado.
En VS2017 puede resaltar una sección de código, hacer clic con el botón derecho, Describir> Ocultar selección. Esto colapsará el código y proporcionará un alternar a la sección resaltada.
Encontré esto para Visual Studio 2013 y lo encontré muy útil. Funciona incluso si pones llaves simples alrededor de tu código con {.....}
Después de compartir, encontré que alguien más también mencionó este enlace. Mi voto es para esta herramienta también.
Esta característica se ha agregado al editor C # de Visual Studio 2010. No puedo encontrar la fuente que verifique que realmente fue incluida, pero recuerdo haberla visto en uno de los blogs de los miembros del equipo Dev 10 hablando de cambios desde la versión Beta 1 o algo así. Como consuelo, aquí hay un comentario de Microsoft sugiriendo que querían agregarlo.
No conozco complementos, pero mencionas regiones y no veo nada malo en hacer algo como esto ...
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
}
EDITAR: En respuesta al EDIT de la pregunta: tienes razón, incluir a un grupo de regiones en todas partes no es lo ideal y la refactorización es probablemente el camino a seguir. Pero parece que estás buscando algo mágico que "organice" el código para ti, y no creo que exista.
Permítanme decir algo diferente: presione (ctrl+m,ctrl+h)
o en edit> delinear> ocultar selección, es muy útil.
Puede colapsar bloques de texto específicos dentro de Visual Studio, pero debe desactivar el trazado automático.
Haga clic con el botón derecho en la ventana del código y seleccione (Delinear | Detener el bosquejo)
Luego, seleccione un texto, haga clic derecho y seleccione (Describir | Ocultar selección)
Cuando activa de nuevo el delineado automático, sus "Regiones" personalizadas ya no colapsarán.
Visual Studio 2008 admite regiones dentro de funciones siempre que las mantenga en el mismo nivel jerárquico de código
#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
}