web-dev-qa-db-ja.com

ビルド/保存およびコミット時にC#editorconfigコードクリーンアップを設定する

私たちのチームは、C#プロジェクトでスタイリングルールを適用したいと考えています。マイクロソフトが「.editorconfigは未来だ」と言ったことをどこかで読んだので、これを使いたいと思います。注:ReSharperは使用しません。

C#には、editorconfigで定義できる優れたルールがたくさんあります。 Microsoft独自のeditorconfigガイド を参照してください。

これを使用して、Visual Studioでコーディングするときにエディター構成で設定されたルールに従うようにし、gitにコミットされたコードがルールに従うようにします。

.editorconfigルールを追加すると、次のようにファイルにリンティングが発生します。

use var warning

Visual Studio 2019で完全に有効な「コードクリーンアップ」を実行すると、必要に応じてコードが完全にフォーマットされます。

run code cleanup

質問1:保存/ビルド時に「コードクリーンアップの実行」を自動的に実行するにはどうすればよいですか?特定のルールを重大度「:error」として設定した場合でも、コンパイラはビルド時のC#ファイルの問題について文句を言いません。

注:Visual Studio用のプラグイン 保存時にドキュメントをフォーマット を試しましたが、editorconfigで設定されたすべてのルールに準拠していません(タブ/スペースの修正やファイルの改行の終わりなど、いくつかのルールのみ)

また、gitリポジトリへのすべてのコミットがフォーマットされていることを確認したいと思います。

Editorconfigルールに従ってコードをフォーマットすることになっている dotnet-format というツールがあります。

次の2つのコマンドを実行するpre-commitフックを追加します。

dotnet tool install -g dotnet-format
dotnet-format

これは問題なく機能しますが、問題は、dotnet-formatでも、重大度が「:error」のコードを持つファイルの問題が修正されないことです。

dotnet-formatは、「保存時にドキュメントをフォーマットする」と同じように動作しますが、タブ/スペースやファイルの末尾の改行などのいくつかの修正のみが行われます。

編集:dotnet-formatは、今のところ、 Wiki に従って、いくつかのルールのみをサポートしているようです。

質問2:コマンドラインから、Visual Studio 2019の「コードクリーンアップ」コマンドと同じように動作するコマンドを実行するにはどうすればよいですか?

9
Totty

私はあなたの最初の質問に答えることができます:

私はこれを探していましたが、 保存時のコードクリーンアップ という拡張機能を見つけました。インストールして、[ツール]-> [オプション]-> [保存時のコードクリーンアップ]で構成する必要があります。設定したいプロファイルがすべてです。お役に立てば幸いです。

1
Jesus Sanz Losa