Как заставить отступы условных директив С#?
Есть ли способ отключить, что #if, #endif и другие директивы не обрабатываются после редактирования → Дополнительно → Формат документа в Visual Studio?
Спасибо!
Ответы
Ответ 1
Посмотрите StyleCop.
StyleCop анализирует исходный код С# для обеспечения набора правил стиля и согласованности. Его можно запустить изнутри Visual Studio или интегрировать в проект MSBuild. StyleCop также интегрирован во многие сторонние инструменты разработки.
Вы даже можете добавить пользовательские правила: Создание пользовательских правил для Microsoft Source Analyzer
Надеюсь, что это поможет.
Ответ 2
Я боюсь, что в Visual Studio нет прямой настройки. Если вы его найдете, так или иначе, дайте мне знать:)
В качестве альтернативы вы можете попытаться использовать внешний инструмент для форматирования вашего кода (например, AStyle). Вы можете создать макрос в VS, который закрывает текущий файл, запускает внешний инструмент в файле и повторно открывает его (и, возможно, переставляет курсор в предыдущую позицию), поэтому вы сможете отформатировать свой код из Visual Студия.
Я не уверен, что задача стоит усилий, так или иначе...
В противном случае вы можете написать свой собственный макрос, чтобы отступать директивы препроцессора в текущем файле после, он был отформатирован VS, даже не используя внешние инструменты (что, вероятно, было бы довольно болезненно для настройки в чтобы получить точно такое же форматирование, как в VS).
Ответ 3
Вы могли бы спрятать его в статическом вспомогательном классе.
internal class Helper
{
internal static bool IsDebugBuild
{
get
{
#if DEBUG
return true;
#endif
return false;
}
}
}
Затем вы можете просто использовать его, как показано ниже:
if (Helper.IsDebugBuild)
{
...
}