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

Может ли StyleCop автоматически исправить что-нибудь?

Я решил начать работу с StyleCop на проекте среднего размера и получаю более 1000 предупреждений.

Есть ли простой способ исправить большинство этих предупреждений? Большинство предупреждений легко могли быть автоматизированы для решения и сэкономили бы много времени.

4b9b3361

Ответ 1

Это не совсем "автоматически исправить что-либо", но есть плагин StyleCop для Resharper на Codeplex, который автоматически выделит ошибки стиля в вашем коде.

Обновление: В соответствии с StyleCop для сайта ReSharper, ReSharper теперь обеспечивает все большее число Quick-Fixes для ошибок StyleCop. Вы выбираете быстрое исправление из списка, и проблема будет решена автоматически.

Ответ 2

Нет, разочаровывает. Вот почему Style Cop является контрпродуктивным. Согласованное форматирование выглядит неплохо, но для него мало пользы в производительности (что действительно затрудняет чтение кода - длина и indirection). Идеальный интервал не стоит тратить часы, настраивая линии вручную.

Конечно, если бы был автоматизированный инструмент для достижения согласованного форматирования, я бы подключил его после регистрации, и пусть это поможет мне. Но стиль Cop сделан садистами. Предположительно, их разговор шел следующим образом:

Боб: Используя сопоставление с образцом, программное обеспечение идентифицирует уродливый код
Чарли: и это исправляет!
Боб: Нет, он печатает сообщение о каждом нарушении Чарли: - и тогда пользователь щелкает правой кнопкой мыши, чтобы исправить их всех?
Боб: Нет, он ругает их "недопустимое расстояние между запятыми"
Чарли: - и затем объясняет, как это исправить?
Боб: Нет, это в отдельном документе
Чарли: в Google?
Боб: Нет.

Я ненавижу Style Cop. Это ниже минимально жизнеспособного продукта.

Ответ 3

StyleCopFixer автоматически исправляет исключения StyleCop в среде IDE Visual Studio для только С#.

В настоящее время обрабатываются следующие ошибки:

  1. SA1001
  2. SA1516
  3. SA1513
  4. SA1508
  5. SA1507
  6. SA1505
  7. SA1309
  8. SA1210
  9. SA1202
  10. SA1200
  11. SA1106
  12. SA1101
  13. SA1025
  14. SA1013
  15. SA1012
  16. SA1009
  17. SA1008
  18. SA1633
  19. SA1003
  20. SA1005
  21. SA1600 (только для недвижимости)
  22. 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 предупреждений, поэтому вы будете продолжать получать это число даже после фиксации кучи.