c# - studio - region visual basic
Ocultar las regiones en Visual Studio (7)
Creo que es gracioso quien odie a las regiones. Amo a Regions tanto que escribí un programa llamado Regionizer, que es un proyecto de código abierto ubicado en http://regionizer.codeplex.com
He tenido jefes y algunos miembros del equipo que los odian, pero mi herramienta organiza todo el código alfabéticamente, por lo que los métodos se ordenan alfabéticamente en la Región de Métodos, las Propiedades se ordenan en la Región de Propiedades y los Eventos se ordenan en la Región de Eventos.
Trate de encontrar el código sin esta herramienta (o Regiones) es lo que llamo el código Spaghetti).
He estado buscando una manera fácil de contraer y expandir todas las regiones y MS me ha dicho que las regiones son parte del archivo .suo (el mismo nombre que el proyecto o la solución) y no hay una manera fácil de obtener un identificador En las regiones se objetan a sí mismos.
He buscado en todo el DTE y no he encontrado una forma de contraer todas o Expandir todas las regiones. Voy a probar el código de Macro y ver si funciona.
Publicaremos una actualización en breve.
Sé que los problemas de plegado de código de VS son una castaña antigua, pero no he podido encontrar esto en todas las otras discusiones que he examinado:
Tenemos un equipo de chicos de C #, algunas regiones de amor y otras que los odiamos y parece que no tenemos mucho en qué trabajar.
¿Hay algún complemento o complemento para VS que simplemente "oculte" las regiones? Para que aquellos que los quieren los vean como normales, pero las personas que instalan el complemento y ven un archivo .cs, las regiones simplemente no están allí, como si no existieran.
Puedo ver que esto puede ser un problema cuando se mueve el código que puede causar problemas de ciertos métodos dentro o fuera de la región equivocada, pero eso podría ser una compensación con la que el equipo está contento con ...
Esto es algo ... sórdido, y puede tener efectos secundarios, pero:
Herramientas -> Opciones -> Entorno -> Fuentes y colores -> Palabra clave del preprocesador Cambie los colores de primer plano y fondo a blanco (o cualquiera que sea su fondo predeterminado).
Aunque no verá otras palabras clave del preprocesador.
Hay teclas de acceso directo para tratar con ellos:
Ctrl+M, Ctrl+M Collapse or expand the block you''re currently in. Ctrl+M, Ctrl+O Collapse all blocks in the file Ctrl+M, Ctrl+L Expand all blocks in the file Ctrl+M, Ctrl+P Stop outlining mode. (Ctrl+M, Ctrl+O resumes)
No sé de ningún plugin así, honestamente. Sin embargo, con VSTO , es muy fácil escribir uno tú mismo.
Odio las regiones (a mi equipo les encantan) y me sorprendió descubrir que nadie ha escrito una extensión para mejorarlas. Finalmente escribí uno mismo llamado Odio #Regiones :
Haz que #regiones chupen menos (gratis):
http://visualstudiogallery.msdn.microsoft.com/0ca60d35-1e02-43b7-bf59-ac7deb9afbca
- Expansión automática de regiones cuando se abre un archivo
- Opcionalmente, evita que las regiones se colapsen (pero aún así puedas contraer otro código)
- Dé a las líneas de región #region / #end un fondo más pequeño y claro para que sean menos perceptibles (también una opción)
- Trabaja en C # y VB
Para los usuarios de VS 2008, puede dejar de describirlo y reiniciarlo programáticamente (a través de una macro). Encontré este código en http://weblogs.asp.net/rweigelt/archive/2003/07/06/9741.aspx
Imports EnvDTE
'' Expands all regions in the current document
Sub ExpandAllRegions()
DTE.ExecuteCommand("Edit.StopOutlining")
DTE.ExecuteCommand("Edit.StartAutomaticOutlining")
End Sub
Lo anterior funciona para C # IDE; por alguna razón, el IDE de VB no elimina los contornos con las regiones cuando se lo indica explícitamente. ¡Espero que esto ayude!
- Edición anexa:
Aquí hay uno que sí funciona para Visual Basic .NET en Visual Studio 2008. Es un poco de fuerza bruta, pero la idea es comentar todos los marcadores #region, expandiendo el esquema. El siguiente paso los deja sin comentarios, devolviéndolos a su estado original (no es estrictamente cierto ... podría tener usos deshonestos de #region en otras partes del código). Este código tampoco devuelve el cuadro de diálogo Buscar y reemplazar a su estado original. Con esas advertencias, este es el módulo de macros que realizará esta tarea:
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module MacroMod01
Sub ExpandAllRegions()
'' comment out all #region occurances
DTE.ExecuteCommand("Edit.Replace")
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.FindWhat = "#region"
DTE.Find.ReplaceWith = "''#region"
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.Execute()
'' uncomment all #region occurances
DTE.ExecuteCommand("Edit.Replace")
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.FindWhat = "''#region"
DTE.Find.ReplaceWith = "#region"
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.Execute()
''close the find ''n replace dialog
DTE.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Close()
End Sub
End Module
Puede haber algunos otros métodos para lograr esto para VB en VS2008. Voy a publicar como los encuentro.
Personalmente, escribo una macro VS (Herramientas> Macro) para expandir todas las regiones en el archivo abierto.