myesn

myEsn2E9

hi
github

CSharpier コードフォーマットツール

背景#

Visual Studio では、通常、デフォルトのショートカットキーCtrl + K + Dを使用して、現在のファイルのすべてのコンテンツをフォーマットします。

私自身、コードのフォーマットは非常に重要であり、私の読みやすさに影響を与えます。しかし、私のいくつかの同僚や一部の上司は、コードのフォーマットに特に注意を払いません。これは私にとって少し困惑しています。私はそれを見た後に修正するかもしれませんが、これにより余分な git commit の記録が作成され、私の時間が無駄になります。

したがって、私はPrettierのような自動フォーマットツールを見つける必要があります。これにより、コードを読む前にプロジェクト全体のコードを自動的にフォーマットできます。

偶然にも、CSharpierを見つけました。これについての説明は、公式ウェブサイトで明確に確認できます。

次に、インストール方法を見てみましょう。

CSharpier CLI のインストール#

個別のプロジェクトへのインストール#

これにより、現在のプロジェクトが依存する dotnet ツールが宣言され、他の人が依存関係を復元しやすくなります。

  1. .config/dotnet-tools.jsonを作成します:
dotnet new tool-manifest
  1. 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ボタンをクリックして現在のファイルをフォーマットできます:
image

また、ショートカットキーをカスタマイズしたり、保存時に自動的にフォーマットすることもできます。プラグインのホームページを参照してください:https://marketplace.visualstudio.com/items?itemName=csharpier.CSharpier

使用方法#

ソリューションのルートディレクトリまたは指定したプロジェクトディレクトリで次のコマンドを実行します:

dotnet csharpier .

image

フォーマットの設定#

デフォルトのフォーマットパラメータを変更する必要がある場合は、プロジェクトに設定ファイルを追加する必要があります。現在、3 つの形式がサポートされています:

私は 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 PackagePre-commit HookContinuous Integrationなどの機能もサポートしていますが、時間の制約があるため、ここまで紹介します。

既知の問題#

  • 余分な改行を削除できません
    image

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。