Contraer todas las #regiones solamente (!) En C # (Visual Studio)

103

Hay una serie de atajos de teclado y comandos de menú para expandir o contraer automáticamente todos los elementos plegables del documento actual. Ctrl+ M, Ctrl+ Lalterna todos los elementos plegables de forma recursiva, desde el espacio de nombres superior hasta los métodos y comentarios internos. Básicamente todo lo que tiene un icono [+] en el margen izquierdo. Ctrl+ M, Ctrl+ lo Ohace un poco menos, pero aún toca métodos y comentarios dentro de la clase.

Estoy buscando una función que específicamente solo se refiera a los #regionplegables y nada más. No espacios de nombres, clases, comentarios o métodos. Realmente solo quiero doblar aquellas áreas que están explícitamente marcadas como tales con la #regionpalabra clave.

¿Hay algún atajo oculto o una extensión para eso?

Preferiría una solución de teclado, para Visual Studio 2015 (RC por ahora).

En caso de que alguien pregunte por qué: quiero obtener una descripción general del archivo, pero ver inmediatamente todos los detalles cuando decido buscar dentro de una región.


Actualizar:

Solución en 2020

Como esta pregunta ha recibido muchas respuestas, algunas de ellas inútiles, otras desactualizadas, la solución de trabajo para Visual Studio 2019 se puede encontrar en esta respuesta infravalorada aquí: https://stackoverflow.com/a/58999093/143684

ygoe
fuente
No lo creo (aunque abierto a corrección). ¿Ha probado la vista de clase? Mostrará todos los miembros de la clase (no el menú desplegable en la parte superior del editor de texto) y puede hacer doble clic para saltar al miembro seleccionado.
amcdermott
1
Creo que no existe tal cosa, Ctrl + M, Ctrl + O es lo más cercano
voytek
La ventana Class View contiene todos los elementos en una lista plana, no "regionalizados" en absoluto. No estoy usando regiones para eso. Necesito regiones para encontrar miembros rápidamente por tema, especialmente en clases largas con una pequeña cantidad de métodos similares, cada uno para un tipo de modelo diferente. Las regiones las agrupan por tipo de modelo aquí.
ygoe

Respuestas:

210

en Visual Studio 2017 tengo que activar 'Contraer # regiones al colapsar a definiciones' en

Tools -> Options -> Text Editor -> C# -> Advanced

explícitamente para colapsar todo al presionar Ctrl+ M+O

Myz
fuente
8
Desafortunadamente, esto también colapsa todo lo demás (casi), no solo las regiones. Entonces esto no es lo que estoy buscando. La extensión Quick Launch Tasks todavía existe para VS 2017 y se puede instalar por separado ahora, vea otro comentario.
ygoe
20
Puede que esto no sea lo que pidió el OP, pero es lo que estaba buscando.
Homer
11
La opción en la compilación actual es "Contraer # regiones al contraer definiciones" y se encuentra en Herramientas> Opciones> Editor de texto> C #> Avanzado. Esto es lo que también estaba buscando. Esto hace que Ctrl + M + O funcione como lo hizo en VS 2015
Matt Becker
65

Ctrl+ M+ Ocolapsará todo.

Ctrl+ M+ Lexpandirá todo. (en VS 2013 - Alternar todos los esquemas)

Ctrl+ M+ Pexpandirá todo y deshabilitará el esquema.

Ctrl+ M+ Mcolapsará / expandirá la sección actual.

Estas opciones también se encuentran en el menú contextual en Esquema.

Haga clic derecho en el editor -> Esquema para encontrar todas las opciones. (Después de deshabilitar el esquema, siga los mismos pasos para habilitar el esquema).

Brendon Vdm
fuente
1
Esta es realmente la única respuesta correcta ... CTRL + (M luego O / L) expandirá / colapsará solo las regiones en una página que responde directamente a la pregunta original.
Levi Fuller
15
Ya no es cierto con VS2017RC. Contraer todo no colapsa las regiones. (Al menos la versión actual: 15.0.2620.0)
François
3
Para VS 2017, vea la respuesta de @Myz a continuación.
Jeffrey Harmon
29

La extensión de Visual Studio Productivity Power Tools 2015 de Microsoft tiene una función llamada Quick Launch Tasks que agrega nuevos comandos al menú Quick Launch. Uno de ellos es CollapseRegions y hace exactamente eso.

El comando opuesto es ExpandRegions y expande todas las regiones para navegar rápidamente por todo el archivo. Estos comandos se pueden usar con bastante rapidez presionando la CtrlQtecla de Collacceso rápido y escribiendo resp. Exp, luego presionando Enter(se supone que no tiene otros comandos con el mismo prefijo).

ygoe
fuente
7
Aquí está la extensión correspondiente para Visual Studio 2017: Quick Launch Tasks
ygoe
Ya no es válido con Visual Studio 2019 porque cambiaron la forma en que funciona la búsqueda de tareas rápidas.
Crónica
17

Para contraer regiones: Herramientas> Opciones> Editores de texto> C #> Avanzado> Marque "Contraer #regiones al contraer definiciones"

Contraer imagen de #regions

Osama Nour
fuente
Oh, eso ya lo teníamos hace 3 años. Vea la respuesta más alta.
ygoe
10

marque la casilla de verificación en Configuración -> Editor de texto -> C # -> Avanzado -> Contraer # regiones al contraer definiciones.

luego haga clic derecho en el editor> esquematizando> colapsar a las defensas

dev_ter
fuente
7

No sé si esto es nuevo, pero hay una configuración para el editor de texto c #:

Configuración -> TextEditor -> C # -> Avanzado -> Contraer # regiones al contraer definiciones.

Cuando su conjunto CtrlM CtrlOcolapsará las #regions.

Roland
fuente
7

Sé que esta es una pregunta antigua, pero aquí hay una actualización para Visual Studio 2019:

La solución de tareas rápidas de la respuesta de @ ygoe no funciona para Visual Studio 2019, porque esa versión cambió la forma en que busca la barra de tareas rápidas. Además, nunca fue la solución preferida para la pregunta original, ya que necesitaba escribir una acción rápida en lugar de tener un atajo de teclado.

Encontré una solución diferente en el mercado que hace exactamente el colapso y la expansión de todas las regiones en el archivo actualmente abierto con atajos de teclado: Collapse Region

Desde la página de extensión:

Las combinaciones de teclas predeterminadas son (Ctrl + R, Ctrl + Num +) y (Ctrl + R, Ctrl + Num-). Se puede cambiar en Herramientas-> Opciones-> Entorno-> Teclado.

Crónica
fuente
¡Gracias por ésta excellente información! Como no estoy usando tareas rápidas para mucho más, podría cambiar a esa extensión. Probado y funciona (en VS 2017 y 2019).
ygoe
4

Recomiendo usar la extensión gratuita de Visual Studio "Menees VS Tools Extension for Visual Studio". Simplemente búsquelo en Herramientas -> Extensiones y actualizaciones en Visual Studio. Una vez instalado, solo tiene que presionar Ctrl+ M+ Ky solo las regiones se colapsarán. Aquí está su sitio web https://marketplace.visualstudio.com/items?itemName=BillMenees.MeneesVSTools2013

Para editar la configuración, busque en Herramientas -> Opciones -> Menees VS Herramientas -> General.

TheJonz
fuente
-2

Seleccione Todo vía Ctrl Ay luegoCtrl M M

es decir, presione Mdos veces mientras mantiene presionadoCtrl

user1979649
fuente
Lo siento, no. Esto colapsa todo, incluidos los espacios de nombres, clases, métodos y comentarios. Esto no se solicitó explícitamente.
ygoe