DotNet Formatを使用してプログラムでコードをフォーマットする
この記事では、dotnetフォーマットツールを使用してC# .NETコードをプログラムでフォーマットするプロセスを説明します。 このガイドは、Gerald Versluis氏によるビデオチュートリアル"Format Your C# .NET Code Automatically with DotNet Format"に基づいています。 ジェラルドがビデオで行ったことのタイムスタンプと詳細な説明を提供し、あなたがフォローしてこれらのテクニックをあなたのプロジェクトに適用できるようにします。
DotNetフォーマットの紹介
(0:36)でジェラルドは、.editorconfigファイルで定義されたルールに基づいてC#コードをフォーマットするように設計されたツールとして、dotnetフォーマットを紹介する。このファイルは、プロジェクト全体で一貫したコーディング・スタイルを強制する上で極めて重要です。 また、すべてのコードが同じ書式ガイドラインに準拠していることを保証します:
- インデントのスタイル:タブとスペースのどちらを使うか。
- スペーシング・ルール:演算子や中括弧などの周りのスペースの量。
- コード構造:1行構成と複数行構成がどのようにフォーマットされているか。
これらのルールを適用することで、dotnetフォーマットは統一されたコードベースを維持し、読みやすく、管理しやすくします。
.editorconfigファイルを理解する
.editorconfigファイルは、(0:48)でジェラルドによって説明されるように、様々なコーディングスタイルのプリファレンスを指定します。 このファイルは柔軟性が高く、次のような幅広い書式ルールを定義できます:
- インデント設定:インデントにタブとスペースのどちらを使用するか、また、何個のスペースを使用するかを決定します。
- スペーシング・ガイドライン:演算子、中括弧、キーワードなどのコード要素の間隔を制御します。
- その他のフォーマットルール:コードの一貫性を確保するための追加のスタイルルールを定義します。
.editorconfigファイルは、異なるエディタやIDE間でコードフォーマットを設定するための中心的なポイントとして機能します。
DotNetフォーマットツールの概要
ジェラルドは、dotnetフォーマットが.NETランタイムのグローバルツールであることを(1:13)で説明しています。 グローバルツールであるため、一度インストールすれば、システム上のさまざまな.NETプロジェクトで使用できます。 これにより、プロジェクトごとにインストールや設定を分けることなく、一貫したコードフォーマットを実現できます。
GitHubのdotnetフォーマットリポジトリには、(1:26)からアクセスできます。 このリポジトリは、ソースコード、ドキュメント、ツールに関する追加情報を提供し、ユーザーがその機能を理解し、最新バージョンに更新されるのを助けます。
DotNetフォーマットの基本的な使用方法
(2:09)では、ジェラルドがdotnetフォーマットを使用するための基本コマンドを実演しています:
dotnet format <options> <workspace>dotnet format <options> <workspace>ワークスペースとは何ですか?
dotnetフォーマットの文脈では、"ワークスペース"という用語は、フォーマットされるコードの範囲を指します。 これには以下が含まれます:
- ソリューションファイル:複数のプロジェクトを包含する.slnファイル。
- プロジェクトファイル:特定のコードファイルを含む個々の.csprojファイル。
- フォルダ:.csや潜在的に.vbファイルを含む複数のコードファイルを含むディレクトリ。
さまざまなタイプのワークスペースを柔軟に指定できるため、プロジェクトのさまざまなレベルでフォーマットを適用できます。
機能とオプション
ジェラルドは(2:27)で、dotnetフォーマットのいくつかの主要な機能とオプションを強調しています:
- 自動修正: このツールは、.editorconfigファイルで定義されたルールに基づいて、フォーマットの問題を自動的に修正することができます。これは、手動で操作することなく、プロジェクト全体で一貫したコードスタイルを維持するのに便利です。
- チェックのみ: 変更を加えずに書式の問題を確認したい場合は、このツールを使って問題のチェックのみを行うことができます。 この機能は、継続的インテグレーション(CI)パイプラインで特に役立ちます。
高度なオプションとカスタマイズ
ジェラルドは、高度なオプションとカスタマイズについて説明します。 と言及しています:
- 重大度レベル:修正すべき問題の重大度レベルを指定できます。 これは、特定のタイプの書式問題をターゲットにするのに役立ちます。
- ファイルの包含/除外: どのファイルを包含するか、またはフォーマットから除外するかを制御できます。 これは、コードベースの特定の部分に焦点を当てるために便利です。
- 終了コードでチェックのみ:チェックオプションを使用することで、修正を適用することなく、フォーマットに問題があるかどうかを確認できます。 終了コードは、問題が見つかったかどうかを示します。
- JSONレポート:JSON形式で詳細なレポートを生成し、コードのフォーマット状況についての洞察を提供します。
- 明瞭度: 生成される出力量を制御するために明瞭度レベルを設定します。
- ツールのバージョン:プロジェクトとの互換性を確保し、新機能のアップデートを維持するために、dotnetフォーマットのバージョンを確認してください。
.NETフォーマットツールのインストール
ジェラルドは、C#コードをプログラムでフォーマットするのに不可欠なdotnetフォーマットツールのインストール手順から説明します。 彼は、次のコマンドでグローバル・ツールとして設定する方法を示している:
dotnet tool install -g dotnet-formatdotnet tool install -g dotnet-formatこのコマンドは、dotnetフォーマットがグローバルに利用可能であることを保証し、どのコマンドプロンプトやターミナルからでも簡単にアクセスできるようにします。 ジェラルドは、.NET Coreランタイムの必要性を強調しており、最近.NETを使用している場合はインストールする必要があります。

インストールが成功したことを確認するために、(4:00)でジェラルドが実行する:
dotnet format /?dotnet format /?このコマンドは、使用可能なオプションとコマンドのリストを表示し、dotnet形式が正しくインストールされ、使用できる状態になっていることを確認します。

(4:11)で、Geraldは、-dry-runのようないくつかのオプションが非推奨であることを指摘し、コードの書式設定のために更新されたプラクティスを使うことを助言する。
コード書式修正の適用
書式の問題の確認
Xamarin Community Toolkitのコードベースを実例として、Geraldはまず、変更を加えずに書式の問題をチェックします。 彼は実行します:
dotnet format . -f --checkdotnet format . -f --checkフォーマットが必要なファイルを特定する。 (5:26)のGeraldは、ディレクトリの場合は-folderを、ソリューションファイルの場合はdotnet形式のslnを使用してワークスペースを指定する方法を説明しています。 このコマンドは、フォーマットに問題があるファイルを一覧表示します。
エラーレベルチェック
実行される各プロセスには、ステータスを示す終了コードがあります。 ジェラルドはエラー・レベルをチェックするために次のコマンドを実行した:
echo %errorlevel%echo %errorlevel%Geraldは、終了コードが2の場合、対処が必要なフォーマットエラーがあることを示しています。

修正の適用と検証
Geraldは次に、-checkフラグを付けずにコマンドを再実行することで、フォーマットの修正を適用する方法を示します:
dotnet format . -fdotnet format . -fこれは、.editorconfigファイルで定義されたルールに基づいて、コードファイルを自動的にフォーマットします。Geraldは、前述と同じコマンドを使用して終了コードを再度チェックし、それが0であることを確認します。
(8:00)では、GitHub Desktop のようなグラフィカルなツールを使って、更新されたファイルを確認しています。 このツールは、空白の修正、using文の整理、その他の書式の調整などの改善を示しています。

ワークフローにフォーマットを統合する
ジェラルド氏は、ビルドCIパイプラインにdotnetフォーマットツールを組み込むことを推奨している。こうすることで、コードのフォーマットが一貫して適用され、高品質のコード標準を維持することができます。 フォーマットプロセスを自動化することで、手作業によるフォーマット作業を回避し、すべてのコードが定義されたスタイルルールに準拠していることを確認できます。
結論
ジェラルドの詳細なウォークスルーに従うことで、dotnetフォーマットを開発プロセスに簡単に統合し、C# .NETコードのフォーマットを自動化することができます。 一人で作業している場合でも、チームの一員として作業している場合でも、このツールを使用することで、コードがクリーンで一貫性があり、読みやすくなります。 ジェラルドのビデオでは、ハンズオン・デモンストレーションとdotnetフォーマット・ツールの詳細について説明していますので、ぜひご覧ください。 また、YouTubeチャンネルでC#コードに関するより多くの洞察をご覧ください。


