Как создать собственное правило StyleCop для C # - директивы препроцессора условной компиляции

Можно ли написать собственные правила C # StyleCop, которые могут оценивать директивы препроцессора условной компиляции, такие как #if, #elif, #else, #endif?

Мы разрабатываем среду, которая требует от нас использования символов условной компиляции, и я хочу добавить наши собственные соглашения о кодировании поверх этого.

Возможно ли это с CsDocument.WalkDocument - методом, или мне нужно использовать что-то еще?

(FxCop здесь не работает, так как работает с уже скомпилированными двоичными файлами).


person derFunk    schedule 11.07.2012    source источник


Ответы (1)


Да, это возможно, но CsDocument.WalkDocument перегрузки не помогут, поскольку директивы препроцессора представлены только как токены. У них нет соответствующего элемента, утверждения или выражения.

Чтобы написать правило для директив условной компиляции, вам необходимо изучить коллекцию CsDocument.Tokens. например.:

foreach (var directive in document.Tokens
                             .Where(t => t.CsTokenClass == CsTokenClass.ConditionalCompilationDirective)
                             .Cast<ConditionalCompilationDirective>())
{
    // ...
}
person Nicole Calinoiu    schedule 12.07.2012