Наша команда хочет применить правила стиля в нашем проекте C #.Я где-то когда-то читал, что Microsoft сказала, что «.editorconfig - это будущее», поэтому мы хотим использовать это.ПРИМЕЧАНИЕ: мы не хотим использовать ReSharper.
В C # есть много замечательных правил, которые теперь можно определить в editorconfig, см. Собственное руководство editorconfig для Microsoft
Мы хотим использовать это и обеспечить соблюдение установленных правилв редакторе config следует как при кодировании в Visual Studio, так и следит за тем, чтобы код, переданный в git, следовал правилам.
При добавлении правил .editorconfig мы получаем отличные помехи для наших файлов, например:
Запуск полностью включенной «Очистки кода» в Visual Studio 2019 полностью форматирует наш код по желанию:
Вопрос 1: Как мы можем заставить «Run Code Cleanup» запускаться автоматически при сохранении / сборке?Даже если мы установили определенные правила как серьезность ": error", компилятор все равно не будет жаловаться на проблемы в файлах C # при сборке.
ПРИМЕЧАНИЕ. Я попробовал подключаемый модуль для Visual Studio с именем Форматировать документ наСохраните , но он не соответствует всем правилам, установленным в editorconfig (только несколько, например исправление пробелов / пробелов и новой строки в конце файла)
Мы также хотели бы убедиться, что все фиксируются в нашемGit хранилище форматируется.
Существует инструмент под названием dotnet-format , который должен форматировать код в соответствии с правилами editorconfig.
Мы хотели бы добавить хук предварительной фиксации, которыйвыполняет следующие 2 команды:
dotnet tool install -g dotnet-format
dotnet-format
Это будет работать нормально, но проблема в том, что формат dotnet также не устраняет проблемы в файлах с кодом, указывающим серьезность ": error".
dotnet-формат ведет себя так же, как «Формат документа при сохранении», исправляя только некоторые вещи, такие как табуляция / пробелы и конец строки в файле.
EDIT: dotnet-формат, по-видимому, поддерживает тольконесколько правил на данный момент согласно их Wiki
Вопрос 2: Как мы можем из командной строки выполнить команду, ведущую себя так же, как команда «Очистка кода» вVisual Studio 2019 делает?