Может ли StyleCop автоматически исправить что-нибудь?
Я решил начать работу с StyleCop на проекте среднего размера и получаю более 1000 предупреждений.
Есть ли простой способ исправить большинство этих предупреждений? Большинство предупреждений легко могли быть автоматизированы для решения и сэкономили бы много времени.
Ответы
Ответ 1
Это не совсем "автоматически исправить что-либо", но есть плагин StyleCop для Resharper на Codeplex, который автоматически выделит ошибки стиля в вашем коде.
Обновление: В соответствии с StyleCop для сайта ReSharper, ReSharper теперь обеспечивает все большее число Quick-Fixes для ошибок StyleCop. Вы выбираете быстрое исправление из списка, и проблема будет решена автоматически.
Ответ 2
Нет, разочаровывает. Вот почему Style Cop является контрпродуктивным. Согласованное форматирование выглядит неплохо, но для него мало пользы в производительности (что действительно затрудняет чтение кода - длина и indirection). Идеальный интервал не стоит тратить часы, настраивая линии вручную.
Конечно, если бы был автоматизированный инструмент для достижения согласованного форматирования, я бы подключил его после регистрации, и пусть это поможет мне. Но стиль Cop сделан садистами. Предположительно, их разговор шел следующим образом:
Боб: Используя сопоставление с образцом, программное обеспечение идентифицирует уродливый код
Чарли: и это исправляет!
Боб: Нет, он печатает сообщение о каждом нарушении Чарли: - и тогда пользователь щелкает правой кнопкой мыши, чтобы исправить их всех?
Боб: Нет, он ругает их "недопустимое расстояние между запятыми"
Чарли: - и затем объясняет, как это исправить?
Боб: Нет, это в отдельном документе
Чарли: в Google?
Боб: Нет.
Я ненавижу Style Cop. Это ниже минимально жизнеспособного продукта.
Ответ 3
StyleCopFixer автоматически исправляет исключения StyleCop в среде IDE Visual Studio для только С#.
В настоящее время обрабатываются следующие ошибки:
- SA1001
- SA1516
- SA1513
- SA1508
- SA1507
- SA1505
- SA1309
- SA1210
- SA1202
- SA1200
- SA1106
- SA1101
- SA1025
- SA1013
- SA1012
- SA1009
- SA1008
- SA1633
- SA1003
- SA1005
- SA1600 (только для недвижимости)
- SA1121
Ответ 4
В кодеплексе есть проект, который выполняет некоторое автоматическое исправление, основанное на предупреждении стиля. Однако он не завершен...
см.: http://stylefix.codeplex.com/
Ответ 5
Code Maid исправляет некоторые исправления Stylecop.
Ответ 6
К сожалению, прямо сейчас я не знаю никаких автоматических инструментов, чтобы полностью исправить вещи.
Однако, если вы настраиваете параметры форматирования Visual Studio (и Resharper's, если у вас есть) для форматирования кода, чтобы соответствовать рекомендациям стиля cop, очистка становится немного проще.
Как только вы это сделаете, вы можете войти в файл и сделать Edit- > Advanced- > Format Document (или сочетание клавиш, которое зависит от ваших настроек ярлыка - мой Ctrl + K, Ctrl + D). Это позволит исправить немало предупреждений о стиле полицейских, особенно если у вас есть resharper + плагин stylecop. Он не будет исправлять их все, но во многих случаях он принимал количество предупреждений в файле от сотен до десятков.
Ответ 7
Если у вас есть Resharper, вы можете скачать плагин StyleCop для Resharper, который содержит некоторые автоматические исправления.
StyleCop для Resharper на codeplex.
Ответ 8
В настоящее время вы можете использовать пакет StyleCop.Analyzers NuGet в своих проектах.
![NuGet Package Manager available StyleCop.Analyzers update]()
Обновление пакета может привести к большому количеству новых предупреждений.
![Visual Studio Error List warnings of 'Documentation text should end with a period']()
Ctrl + . показывает доступные быстрые исправления. Исправление может быть применено ко всему документу, проекту или решению одновременно.
![Visual Studio quick fix. Marked 'Fix all occurrences in' options]()
Окно предварительного просмотра изменений позволяет отменить выбор строк для разрешения вручную.
![Window Preview Changes - Fix all occurrences]()
CodeMaid - хороший инструмент для исправления ошибок форматирования в пакетном режиме или автоматически.
Ответ 9
- Выключите предупреждения! Не рекомендуется, но вы можете использовать это в ближайшей перспективе, пока не получите большую часть проблем.
- Напишите программу для исправления некоторых более простых предупреждений или используйте find/replace
- Используйте фрагменты кода, чтобы помочь с такими документами, как документация по заголовку файла
В StyleCop было указано, что blog относительно реализации автоматической фиксации правил
Также проверьте запись в блоге относительно интеграции в существующий большой проект.
Примечание. Кажется, что StyleCop возвращает только 1000 предупреждений, поэтому вы будете продолжать получать это число даже после фиксации кучи.