Подтвердить что ты не робот

Как заставить отступы условных директив С#?

Есть ли способ отключить, что #if, #endif и другие директивы не обрабатываются после редактирования → Дополнительно → Формат документа в Visual Studio?

Спасибо!

4b9b3361

Ответ 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)
{
    ...
}