EditorConfig で一貫性のあるコーディング スタイルを定義する
あるコードベースで作業するすべてのユーザーに一貫したコーディング スタイルを使用させるために、.editorConfig
ファイルをソリューションまたはプロジェクトに追加できます。 EditorConfig ファイルの設定は、EditorConfig.org で保守されるファイル形式の仕様に従います。多くのコード エディターとアプリケーションが、Visual Studio を含む EditorConfig ファイルをサポートしています。 設定はファイル内にあるため、コードに付属しており、Visual Studio の外部でも使用できます。
Visual Studio では、EditorConfig ファイルの設定は、[ツール]>[オプション]>[テキスト エディター]>[C/C++]>[コード スタイル] の順に選択してアクセスできるさまざまなグローバル テキスト エディター設定より優先されます。 EditorConfig ファイルを使用して各コードベースをカスタマイズすると、そのプロジェクト固有のテキスト エディター設定を使用できます。
Visual Studio で選択したコード スタイル設定に基づき、EditorConfig ファイルを手動入力するか自動生成できます。 現在の Visual Studio 設定に基づいて新規 .editorconfig
ファイルを作成するには、Visual Studio のメイン メニューで、[ツール]>[オプション]>[テキスト エディター]>[C/C++]>[全般] の順に選択します。 次に、[設定から .editorconfig を生成する] を選択します。 プロジェクトがあるフォルダを選択し、[フォルダを選択] を選択して、.editorconfig
ファイルを保存します。
EditorConfig ファイルを使用する際も、Visual Studio テキスト エディターでエディターの独自のユーザー設定を引き続き設定できます。 これらのテキスト エディターの設定は、EditorConfig ファイルのないコードベースで作業するとき、または EditorConfig ファイルが特定の設定をオーバーライドしないときに常に適用されます。 このような基本設定の一例が、コードのインデント スタイルにタブとスペースのどちらを使用するかです。
Visual Studio でプロジェクトに EditorConfig ファイルを追加すると、新しいコード行のみが EditorConfig の設定に基づいて書式設定されます。 次のコマンドのいずれかを実行しない限り、既存コードの書式設定は変更されません。
-
Visual Studio エディターで [コード クリーンアップ] を選択するか、Ctrl+K、Ctrl+E を押します。 このコマンドは、インデント スタイルなどの空白の設定と、かっこの基本設定などの選択したコード スタイルの設定に適用されます。
ドキュメントの書式設定。
既定のプロファイルで、[編集]>[詳細設定]>[ドキュメントの書式設定] を選択するか、Ctrl+K、Ctrl+D を押します。 このコマンドは、インデント スタイルなどの空白の設定にのみ適用されます。
Note
この記事は、Windows 用の Visual Studio に適用されます。 Visual Studio for Mac については、「Visual Studio for Mac でのカスタム EditorConfig ファイルの作成と編集」を参照してください。
コードの整合性
EditorConfig ファイルの設定により、使用するエディターや IDE に関係なく、コードベースで一貫したコーディング スタイルとコーディング規則を維持できます。 制御できるコーディング スタイルは、インデント スタイル、タブ幅、行末文字、エンコードです。 たとえば、C# コードベースに、インデントに 5 つの空白文字を使用し、ドキュメントに UTF-8 エンコードを使用し、行が CR/LF で終わる規則がある場合、その規則を使用するように EditorConfig ファイルを構成できます。
EditorConfig ファイルは、個人的なプロジェクトで使用するコーディング規則が、チームのプロジェクトで使用される規則と異なるときに便利です。 たとえば、自分のコードではインデントでタブ文字を追加していても、 チームではインデントによって、代わりに 4 つの空白文字を追加することになっている場合があります。 EditorConfig ファイルがこの問題を解決します。シナリオごとに構成を与えることができるからです。
コードベースの .editorconfig
ファイルに EditorConfig の設定が含まれているため、設定はそのコードベースと共に移動します。 EditorConfig 対応のエディターでコード ファイルを開く限り、テキスト エディター設定がアクティブになります。
Note
EditorConfig ファイルで設定されている規則は、ビルド エラーまたは警告として CI/CD パイプラインに適用できません。 すべてのスタイルの逸脱は、Visual Studio エディターとエラー一覧でのみ表示されます。
サポートされる設定
Visual Studio のエディターは、EditorConfig プロパティの次のコア セットをサポートします。
- indent_style
- indent_size
- tab_width
- end_of_line
- 文字セット
- trim_trailing_whitespace
- insert_final_newline
- root
EditorConfig のエディター設定は、XML を除き、Visual Studio 対応のすべての言語でサポートされています。
EditorConfig は、C# および Visual Basic に対する言語、書式、名前付けの規則など、コード スタイルの規則をサポートしています。
EditorConfig ファイルの追加と削除
プロジェクトまたはコードベースに EditorConfig ファイルを追加すると、記述した新しいコード行は、EditorConfig ファイルの設定に従って Visual Studio によって書式設定されます。 ただし、ドキュメントを書式設定するか、[コードのクリーンアップ] を実行するまでは、Visual Studio によって既存のスタイルが新しいものに変換されることはありません。 たとえば、タブで書式設定されているインデントがファイル内にある場合、スペースでインデントを書式設定する EditorConfig ファイルを追加しても、インデント文字は自動的にスペースに変換されません。 ドキュメントの書式を設定すると ([編集]>[詳細設定]>[ドキュメントの書式設定] を選択するか、Ctrl+K、Ctrl+D を押す)、EditorConfig ファイルの空白の設定が既存のコード行に適用されます。
EditorConfig ファイルをプロジェクトまたはコードベースから削除する場合は、グローバル エディターの設定が新しいコード行に適用されるように、開いているコード ファイルをすべて閉じてから再び開く必要があります。
EditorConfig ファイルをプロジェクトに追加する
EditorConfig ファイルをプロジェクトまたはソリューションに追加するには、次の手順に従います。
Visual Studio でプロジェクトまたはソリューションを開きます。 EditorConfig の設定をソリューションのすべてのプロジェクトに適用するか、1 つのプロジェクトだけに適用するかに応じて、ソリューション ノードまたはプロジェクト ノードのいずれかを選択します。 また、
.editorconfig
ファイルを追加するプロジェクトまたはソリューションで、フォルダーを選択できます。メニューから [プロジェクト]>[新しい項目の追加] を選択するか、Ctrl+Shift+A を押します。
[新しい項目の追加] ダイアログ ボックスが開きます。
検索ボックスに「editorconfig」と入力します。
2 つの editorconfig ファイル項目テンプレートが、検索結果に表示されます。
[editorconfig ファイル (空)] テンプレートを選択して、空白、コード スタイル、および名前付け規則の既定の EditorConfig オプションが事前に入力された EditorConfig ファイルを追加します。 または、[editorconfig ファイル (.NET)] テンプレートを選択して、既定の .NET の空白、コード スタイル、および名前付けの規則が事前に入力された EditorConfig ファイルを追加します。
ソリューション エクスプローラーに新しい
.editorconfig
ファイルが表示され、エディターで新しいタブとして開かれます。必要に応じて、ファイルを編集して保存します。
EditorConfig ファイルを追加するその他の方法
EditorConfig ファイルをプロジェクトに追加する方法は、他にもいくつかあります。
Visual Studio 用 IntelliCode を使用して、ソリューションに
.editorconfig
ファイルを生成します。 ソリューション エクスプローラーで右クリックし、コンテキスト メニューから [追加]>[新しい EditorConfig (IntelliCode)] を選択します。 Visual Studio 用 IntelliCode により、既存のコードからコード スタイルが推測され、事前定義済みのコード スタイルの基本設定で EditorConfig ファイルが作成されます。
ファイルの階層と優先順位
ファイル階層のフォルダーに .editorconfig
ファイルを追加すると、その設定がその階層レベルとそれ以下のレベルのあらゆる該当ファイルに適用されます。 また、特定のプロジェクトやコードベースの EditorConfig 設定をオーバーライドしたり、コードベースの一部の EditorConfig 設定をオーバーライドして、コードベースの他の部分とは異なる規則を使用するようにしたりできます。 そうすることは、別の場所からコードを組み込んで、その規則を変更したくないときに役立ちます。
以下のガイドラインに従います。
一部またはすべての EditorConfig 設定をオーバーライドするには、オーバーライドされた設定を適用するファイルの階層レベルに
.editorconfig
ファイルを追加します。 新しい EditorConfig ファイルの設定は、同じレベルにあるファイルと任意のサブディレクトリ内のファイルに適用されます。すべての設定ではなく一部をオーバーライドする場合には、
.editorconfig
ファイルで該当する設定だけを指定します。 下位レベルの.editorconfig
ファイルで明示的に一覧表示したプロパティのみがオーバーライドされます。 上位レベルの.editorconfig
ファイルからのその他の設定は、引き続き適用されます。すべての上位レベルの
.editorconfig
ファイルからの設定がコードベースのこの部分に適用されないようにするには、次のようにroot=true
プロパティを下位レベルの.editorconfig
ファイルに追加します。# top-most EditorConfig file for this level root = true
EditorConfig ファイルは上から下に読み取られます。 同じ名前のプロパティが複数ある場合は、同じ名前の最も最近に見つかったプロパティが優先されます。
EditorConfig ファイルの編集
Visual Studio 2022 には、EditorConfig ファイル用のビジュアル エディターが用意されています。
EditorConfig ファイルを編集したら、コード ファイルを再読み込みして新しい設定を有効にする必要があります。
Visual Studio では、EditorConfig ファイルを編集しやすいように、IntelliSense の入力候補一覧が提供されます。 次に例を示します。
多数の EditorConfig ファイルを編集する場合は、EditorConfig 言語サービス拡張機能が役立つことがあります。 この拡張機能には、構文の強調表示、強化された IntelliSense、検証、およびコードの書式設定などの機能が含まれます。
例
次の例に、EditorConfig ファイルをプロジェクトに追加する前と後の C# コード スニペットのインデントの状態を示します。
[ツール]>[オプション] ダイアログ ボックスで、[テキスト エディター]>[C#]>[タブ] を設定して、Tab キーを押したときに Visual Studio テキスト エディターが 4 つの空白文字を生成するようにします。
設定どおり、次の行で Tab キーを押すと、4 つの空白文字が追加されてインデントが行われます。
EditorConfig を使用して、[タブを使用する] にタブ設定を切り替えます。
EditorConfig ファイルで [タブを使用する] を選択します。
.editorconfig
という名前の新しいファイルを、次の内容でプロジェクトに追加します。[*.cs]
インジケーターは、この変更がプロジェクトの C# コード ファイルにのみ適用されることを意味します。# Top-most EditorConfig file root = true # Tab indentation [*.cs] indent_style = tab
Tab キーを押すと、スペースの代わりにタブ文字が入力されます。
EditorConfig 設定のトラブルシューティング
EditorConfig ファイルがディレクトリ構造内でプロジェクトの場所と同じか上位にある場合、Visual Studio はそのファイル内のエディター設定をエディターに適用します。 この場合、ステータス バーに次のメッセージが表示される場合があります。
User preferences for this file type are overridden by this project's coding conventions.
これは、[ツール]>[オプション]>[テキスト エディター] の任意のエディター設定 (インデントのサイズとスタイル、タブ サイズ、コーディング規則など) が、ディレクトリ構造内でプロジェクトと同じか上位にある EditorConfig ファイルで指定されると、EditorConfig ファイル内の規則で [テキスト エディター] の設定がオーバーライドされることを意味しています。
EditorConfig に関する問題のトラブルシューティングを行うには、次の手順に従います。
Visual Studio 向けの EditorConfig のサポートをオフにするには、[ツール]>[オプション]>[テキスト エディター] の [プロジェクトのコーディング規則従う] オプションをオフにします。
プロジェクトの親ディレクトリで任意の EditorConfig ファイルを見つけるには、コマンド プロンプトを開き、プロジェクトが格納されているディスクのルートから次のコマンドを実行します。
dir .editorconfig /s
EditorConfig の規則の範囲を制御するには、リポジトリのルート、またはプロジェクトが格納されているディレクトリにある
.editorconfig
ファイルで、root=true
プロパティを設定します。Visual Studio は、開かれたファイルのディレクトリ内とすべての親ディレクトリで
.editorconfig
という名前のファイルを探します。 検索は、ルート ファイルパスに到達するか、またはroot=true
を含む.editorconfig
ファイルが見つかると終了します。