背景#
Visual Studio では、通常、デフォルトのショートカットキーCtrl + K + D
を使用して、現在のファイルのすべてのコンテンツをフォーマットします。
私自身、コードのフォーマットは非常に重要であり、私の読みやすさに影響を与えます。しかし、私のいくつかの同僚や一部の上司は、コードのフォーマットに特に注意を払いません。これは私にとって少し困惑しています。私はそれを見た後に修正するかもしれませんが、これにより余分な git commit の記録が作成され、私の時間が無駄になります。
したがって、私はPrettierのような自動フォーマットツールを見つける必要があります。これにより、コードを読む前にプロジェクト全体のコードを自動的にフォーマットできます。
偶然にも、CSharpierを見つけました。これについての説明は、公式ウェブサイトで明確に確認できます。
次に、インストール方法を見てみましょう。
CSharpier CLI のインストール#
個別のプロジェクトへのインストール#
これにより、現在のプロジェクトが依存する dotnet ツールが宣言され、他の人が依存関係を復元しやすくなります。
.config/dotnet-tools.json
を作成します:
dotnet new tool-manifest
- CLI を現在のプロジェクトにインストールします:
dotnet tool install csharpier
アップデート:
dotnet tool update csharpier
グローバルインストール#
グローバルインストール:
dotnet tool install --global csharpier
アップデート:
dotnet tool update csharpier -g
Visual Studio プラグインのインストール#
プラグインをダウンロード:https://marketplace.visualstudio.com/items?itemName=csharpier.CSharpier
その後、コード内で右クリックしてReformat with CSharpier
ボタンをクリックして現在のファイルをフォーマットできます:
また、ショートカットキーをカスタマイズしたり、保存時に自動的にフォーマットすることもできます。プラグインのホームページを参照してください:https://marketplace.visualstudio.com/items?itemName=csharpier.CSharpier
使用方法#
ソリューションのルートディレクトリまたは指定したプロジェクトディレクトリで次のコマンドを実行します:
dotnet csharpier .
フォーマットの設定#
デフォルトのフォーマットパラメータを変更する必要がある場合は、プロジェクトに設定ファイルを追加する必要があります。現在、3 つの形式がサポートされています:
.csharpierrc
:内容は JSON または YAML であることができます。.csharpierrc.json
または.csharpierrc.yaml
ファイル。.editorconfig
ファイル。 参考:https://csharpier.com/docs/Configuration#editorconfig。
私は YAML ファイルを使用しています。つまり、ルートディレクトリに.csharpierrc
というファイルを作成し、次の設定をコピーします:
printWidth: 140
useTabs: false
tabWidth: 4
endOfLine: auto
詳細な設定については、https://csharpier.com/docs/Configuration を参照してください。
ファイルの無視設定#
特定のファイルやフォルダを無視してフォーマットを実行しないようにするには、.csharpierignore
ファイルを追加します。ファイルの内容はgitignore の構文を使用します。例:
Uploads/
**/App_Data/*.cs
もちろん、CSharpier CLI にはいくつかのデフォルトの無視設定があります。参考:https://csharpier.com/docs/Ignore#files-ignored-by-default
フォーマットされたファイルの特定のコードセクションを無視するには、次のコメントを追加します(参考):
// csharpier-ignore
また、API を呼び出してフォーマットコードのプログラムを作成するために NuGet パッケージをインストールすることもできます。参考:https://csharpier.com/docs/API
IDE との統合#
公式ウェブサイトでは、いくつかの IDE のプラグインも提供されています。参考:https://csharpier.com/docs/Editors
その他#
CSharpier には多くの機能があります。MsBuild Package、Pre-commit Hook、Continuous Integrationなどの機能もサポートしていますが、時間の制約があるため、ここまで紹介します。
既知の問題#
- 余分な改行を削除できません