Настройка C # editorconfig Code Cleanup при сборке / сохранении и фиксации - PullRequest
4 голосов
/ 29 марта 2019

Наша команда хочет применить правила стиля в нашем проекте C #.Я где-то когда-то читал, что Microsoft сказала, что «.editorconfig - это будущее», поэтому мы хотим использовать это.ПРИМЕЧАНИЕ: мы не хотим использовать ReSharper.

В C # есть много замечательных правил, которые теперь можно определить в editorconfig, см. Собственное руководство editorconfig для Microsoft

Мы хотим использовать это и обеспечить соблюдение установленных правилв редакторе config следует как при кодировании в Visual Studio, так и следит за тем, чтобы код, переданный в git, следовал правилам.

При добавлении правил .editorconfig мы получаем отличные помехи для наших файлов, например:

use var warning

Запуск полностью включенной «Очистки кода» в Visual Studio 2019 полностью форматирует наш код по желанию:

run code cleanup

Вопрос 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 делает?

...