¿hay alguna opción para desactivar que #if, #endif y otras directivas no se indended después de Editar -> Avanzado -> Formato de documento en Visual Studio?Cómo forzar la sangría de las directivas condicional C#?
¡Gracias!
¿hay alguna opción para desactivar que #if, #endif y otras directivas no se indended después de Editar -> Avanzado -> Formato de documento en Visual Studio?Cómo forzar la sangría de las directivas condicional C#?
¡Gracias!
Mire StyleCop.
StyleCop analiza el código fuente de C# para aplicar un conjunto de reglas de estilo y consistencia. Se puede ejecutar desde dentro de Visual Studio o integrado en un proyecto de MSBuild. StyleCop también se ha integrado en muchas herramientas de desarrollo de terceros.
Incluso puede agregar reglas personalizadas: Creating Custom Rules for Microsoft Source Analyzer
espero que ayude.
Me temo que no hay una configuración directa en Visual Studio. Si lo encuentras, de todos modos, házmelo saber :)
Como alternativa, puedes intentar usar una herramienta externa para formatear tu código (por ejemplo, AStyle). Podría crear una macro en VS que cierre el archivo actual, ejecute la herramienta externa en el archivo y la vuelva a abrir (y tal vez vuelva a colocar el cursor en la posición anterior), para que pueda formatear su código desde Visual Estudio.
No estoy seguro de si la tarea es la pena el esfuerzo, de todos modos ...
De lo contrario, podría escribir su propia macro para sangrar las directivas del preprocesador en el archivo actual después se ha formateado en VS, sin siquiera usar herramientas externas (que probablemente sería bastante difícil de configurar para obtener exactamente el mismo formato que en VS).
Gracias por la información. En realidad, solo tenía curiosidad. No planeo invertir tiempo en este asunto porque es solo un pequeño problema y porque el comportamiento de Visual Studio puede cambiar en versiones futuras, lo que haría inútil cualquier esfuerzo mío :-( –
Podrías esconderlo en una clase de ayuda estática en alguna parte.
internal class Helper
{
internal static bool IsDebugBuild
{
get
{
#if DEBUG
return true;
#endif
return false;
}
}
}
a continuación, puedes usarlo como a continuación:
if (Helper.IsDebugBuild)
{
...
}
¡Gracias! No tuve tiempo para tratar de crear una regla personalizada, pero parece que sería posible. –