StyleCop - или как соблюдать code style?
codestyle programming StyleCop refactoring russian
В каждой компании существует свой code style по написанию правильного и красивого кода. Недавно в одном из проектов наша команда решила "причесать" код. На помощь пришел StyleCop. Итак.
Установка
- Вы можете скачать Stylecop c сайта.
- Советую не изменять пусть установки, потому что это может привести к некоторым проблемам.
- После установки может потребоваться перезагрузка компьютера.
Настройка
Для установки настроек Stylecop одинаковыми на всех ваших проектах нужно выполнить следующие действия:
- Клик правой кнопкой мыши выбираем раздел
StyleCop Settings
Разберем каждую вкладку в отдельности
-
Rules - правила настройки Stylecop
-
Переходим на вкладку
Settings Files
-
1-ый радиобаттон - не использовать наследование настроек stylecop в солюшене и в проектах
-
2-ой - поддержка наследования/переопределения файлов настроек. Т.е файл с настройками лежащий на уровне выше имеет выше приоритет. Если вы хотите изменить настройки для всех проектов сразу, вам нужно перейти на эту вкладку, нажать "Edit", и вы увидите окно файла конфигурации с настройками.
-
3-й - мерж настроек с указанным файлом.
-
Options - настройки обновления и выбор языка
-
Spelling - сюда можно добавить слова исключения при проверки Stylecop.
-
Company information - думаю и так все понятно
-
Hungarian - по умолчанию венгерский стиль отключен, но на этой вкладке вы можете добавить исключения.
Больше правил и настроек Stylecop вы можете найти на официальном сайте программы. Так же там есть Rule Suppressions, но лучше ими не злоупотреблять.
StyleCop и Build
Если вы хотите запускать StyleCop при каждом билде проекта, вам следует отредактировать .csproj
file. В конец файла следует добавить следующую строку (для StyleCop v4.7):
<Import Project="$(ProgramFiles)\MSBuild\StyleCop\v4.7\StyleCop.targets" />
После этого вы будете получать Warnings
в коде после билда о всех несоответствиях вашего кода с настройками Stylecop. Если вы хотите получать Errors
, вам следует добавить в раздел PropertyGroup
следующую строку:
<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>