EditorConfig で移植可能なカスタム エディター設定を作成するCreate portable, custom editor settings with EditorConfig

EditorConfig ファイルをプロジェクトまたはコードベースに追加して、そのコードベースを使用するすべてのユーザーに一貫したコーディング スタイルを使用させることができます。You can add an EditorConfig file to your project or codebase to enforce consistent coding styles for everyone that works in the codebase. EditorConfig の設定は、Visual Studio テキスト エディターのグローバルな設定より優先されます。EditorConfig settings take precedence over global Visual Studio text editor settings. つまり、そのプロジェクトに固有のテキスト エディター設定を使用するように各コードベースを調整できます。This means that you can tailor each codebase to use text editor settings that are specific to that project. その場合でも、ユーザーは Visual Studio の [オプション] ダイアログ ボックスで、エディターを個人用に設定することができます。You can still set your own personal editor preferences in the Visual Studio Options dialog box. 個人設定は、.editorconfig ファイルのないコードベースで作業している場合、または .editorconfig ファイルが特定の設定をオーバーライドしない場合に、常に適用されます。Those settings apply whenever you're working in a codebase without an .editorconfig file, or when the .editorconfig file doesn't override a particular setting. このような個人設定の一例が、インデント スタイル (タブまたはスペース) です。An example of such a preference is indent style—tabs or spaces.

EditorConfig の設定は、Visual Studio など、多くのコード エディターと IDE でサポートされています。EditorConfig settings are supported by numerous code editors and IDEs, including Visual Studio. この設定は、コードと共に移動する移植可能なコンポーネントであり、Visual Studio の外部であってもコーディング スタイルを適用できます。It's a portable component that travels with your code, and can enforce coding styles even outside of Visual Studio.

Visual Studio のプロジェクトに EditorConfig ファイルを追加するときに、ドキュメントの書式を設定しない限り、既存のコードの書式設定は変更されません (既定のプロファイルの場合は [編集] > [詳細設定] > [ドキュメントのフォーマット]、または Ctrl+KCtrl+D)。When you add an EditorConfig file to your project in Visual Studio, the formatting of existing code is not changed unless you format the document (Edit > Advanced > Format Document or Ctrl+K, Ctrl+D in the default profile). ただし、新しいコード行はすべて、EditorConfig の設定に従って書式設定されます。However, any new lines of code are formatted according to the EditorConfig settings. [書式設定] オプション ページで、ドキュメントのフォーマットで適用する EditorConfig 設定を定義することができます。You can define which EditorConfig settings you want Format Document to apply on the Formatting options page.

Note

このトピックは、Windows 上の Visual Studio に適用されます。This topic applies to Visual Studio on Windows. Visual Studio for Mac については、Visual Studio for Mac の EditorConfig に関するページを参照してください。For Visual Studio for Mac, see EditorConfig in Visual Studio for Mac.

コードの整合性Code consistency

EditorConfig ファイルの設定を利用すれば、使用するエディターや IDE に関係なく、コードベースでコーディングのスタイルと設定の一貫性を維持できます。たとえば、インデントのスタイル、タブの幅、行末文字、エンコードなどです。Settings in EditorConfig files enable you to maintain consistent coding styles and settings in a codebase, such as indent style, tab width, end of line characters, encoding, and more, regardless of the editor or IDE you use. たとえば、C# でコーディングするとき、インデントを常に 5 つ分の空白文字で構成し、文書で UTF-8 エンコードを使用し、各行が常に CR/LF で終わるというという慣習をコードベースに与えるのであれば、そのように .editorconfig ファイルを構成できます。For example, when coding in C#, if your codebase has a convention to prefer that indents always consist of five space characters, documents use UTF-8 encoding, and each line always ends with a CR/LF, you can configure an .editorconfig file to do that.

個人的なプロジェクトで使用するコーディング規則は、チームのプロジェクトで使用するそれとは変えることができます。Coding conventions you use on your personal projects may differ from those used on your team's projects. たとえば、コーディングの際に、自分はインデントでタブ文字を追加したくても、For example, you might prefer that when you're coding, indenting adds a tab character. チームはインデントでタブ文字ではなく 4 つの空白文字を追加したいかもしれません。However, your team might prefer that indenting adds four space characters instead of a tab character. EditorConfig ファイルがこの問題を解決します。シナリオごとに構成を与えることができるからです。EditorConfig files resolve this problem by enabling you to have a configuration for each scenario.

設定はコードベースのファイルに含まれているため、そのコードベースと共に移動します。Because the settings are contained in a file in the codebase, they travel along with that codebase. EditorConfig 対応のエディターでコード ファイルを開く限り、テキスト エディター設定が実装されます。As long as you open the code file in an EditorConfig-compliant editor, the text editor settings are implemented. EditorConfig ファイルの詳細については、EditorConfig.org Web サイトをご覧ください。For more information about EditorConfig files, see the EditorConfig.org website.

Note

EditorConfig ファイルで設定されている規則は、現時点ではビルド エラーまたは警告として CI/CD パイプラインに適用できません。Conventions that are set in an EditorConfig file cannot currently be enforced in a CI/CD pipeline as build errors or warnings. すべてのスタイルの逸脱は、Visual Studio エディターとエラー一覧でのみ表示されます。Any style deviations appear only in the Visual Studio editor and Error List.

サポートされる設定Supported settings

Visual Studio のエディターは、EditorConfig プロパティの次のコア セットをサポートします。The editor in Visual Studio supports the core set of EditorConfig properties:

  • indent_styleindent_style
  • indent_sizeindent_size
  • tab_widthtab_width
  • end_of_lineend_of_line
  • charsetcharset
  • trim_trailing_whitespacetrim_trailing_whitespace
  • insert_final_newlineinsert_final_newline
  • rootroot

EditorConfig エディター設定は、XML を除き、Visual Studio 対応のすべての言語でサポートされています。EditorConfig editor settings are supported in all Visual Studio-supported languages except for XML. また、EditorConfig では、C# および Visual Basic のコード スタイル名前付け規則がサポートされます。In addition, EditorConfig supports code style and naming conventions for C# and Visual Basic.

EditorConfig ファイルの追加と削除Add and remove EditorConfig files

EditorConfig ファイルをプロジェクトまたはコードベースに追加しても既存のスタイルが新しいスタイルに変換されることはありません。Adding an EditorConfig file to your project or codebase does not convert existing styles to the new ones. たとえば、タブで書式設定されているインデントがファイル内にあり、スペースでインデントする EditorConfig ファイルを追加する場合、インデント文字は自動的にスペースに変換されません。For example, if you have indents in your file that are formatted with tabs, and you add an EditorConfig file that indents with spaces, the indent characters are not automatically converted to spaces. ただし、新しいコード行はすべて、EditorConfig ファイルに従って書式設定されます。However, any new lines of code are formatted according to the EditorConfig file. さらに、ドキュメントの書式を設定すると ([編集] > [詳細設定] > [ドキュメントのフォーマット]、または Ctrl+KCtrl+D)、EditorConfig ファイルの設定が既存のコード行に適用されます。Additionally, if you format the document (Edit > Advanced > Format Document or Ctrl+K, Ctrl+D), the settings in the EditorConfig file are applied to existing lines of code.

EditorConfig ファイルをプロジェクトまたはコードベースから削除する場合は、開いているコード ファイルをすべて閉じてから再度開き、新しいコード行のグローバル エディター設定に戻す必要があります。If you remove an EditorConfig file from your project or codebase, you must close and reopen any open code files to revert to the global editor settings for new lines of code.

EditorConfig ファイルをプロジェクトまたはソリューションに追加するにはTo add an EditorConfig file to a project or solution

  1. Visual Studio でプロジェクトまたはソリューションを開きます。Open a project or solution in Visual Studio. .editorconfig 設定をソリューションのすべてのプロジェクトに適用するか、1 つのプロジェクトだけに適用するかに応じて、プロジェクト ノードまたはソリューション ノードのいずれかを選択します。Select either the project or solution node, depending on whether your .editorconfig settings should apply to all projects in the solution or just one. また、.editorconfig ファイルを追加するプロジェクトまたはソリューションで、フォルダーを選択できます。You can also select a folder in your project or solution to add the .editorconfig file to.

  2. メニュー バーから [プロジェクト] > [新しい項目の追加] の順に選択するか、Ctrl+Shift+A キーを押します。From the menu bar, choose Project > Add New Item, or press Ctrl+Shift+A.

    [新しい項目の追加] ダイアログ ボックスが開きます。The Add New Item dialog box opens.

  3. 左側のカテゴリで [全般] を選択してから、[テキスト ファイル] テンプレートを選択します。In the categories on the left, choose General, and then choose the Text File template. [名前] ボックスに「.editorconfig」と入力し、[追加] を選択します。In the Name text box, enter .editorconfig and then choose Add.

    ソリューション エクスプローラーに .editorconfig ファイルが表示されたら、エディターで開きます。An .editorconfig file appears in Solution Explorer, and it opens in the editor.

    ソリューション エクスプローラーの .editorconfig ファイル

  4. たとえば次のように、必要に応じてファイルを編集します。Edit the file as desired, for example:

    root = true
    
    [*.{cs,vb}]
    indent_size = 4
    trim_trailing_whitespace = true
    
    [*.cs]
    csharp_new_line_before_open_brace = methods
    

EditorConfig ファイルを追加するその他の方法Other ways to add an EditorConfig file

EditorConfig ファイルをプロジェクトに追加する方法は、他にもいくつかあります。There are a couple other ways you can add an EditorConfig file to your project:

  • EditorConfig 言語サービス拡張機能をインストールして、より簡単にプロジェクトに空の .editorconfig ファイルを追加します。Install the EditorConfig Language Service extension to more easily add an empty .editorconfig file to your project. この拡張機能をインストールしたら、ソリューション ノード、プロジェクト ノード、またはソリューション エクスプローラー内の任意のフォルダーを右クリックして (またはコンテキスト メニューを使って)、[追加] > [.editorconfig ファイル] の順に選択するだけです。After you install this extension, simply choose Add > .editorconfig File from the right-click or context menu of the solution node, project node, or any folder in Solution Explorer. この拡張機能によって、.editorconfig ファイルを編集する際の操作性も向上します。This extension also improves the editing experience for the .editorconfig file.

    拡張機能を使用して .editorconfig ファイルを追加する

  • IntelliCode 拡張機能をお試しください。Try out the IntelliCode extension. この実験的な拡張機能では、ユーザーのコード スタイルが既存のコードから推測され、既に定義したコード スタイルの設定を使用して空でない .editorconfig ファイルが作成されます。This experimental extension infers your code styles from existing code, and then creates a non-empty .editorconfig file with your code style preferences already defined.

ファイルの階層と優先順位File hierarchy and precedence

ファイル階層のフォルダーに .editorconfig ファイルを追加すると、その設定がその階層レベルとその下のレベルのあらゆる該当ファイルに適用されます。When you add an .editorconfig file to a folder in your file hierarchy, its settings apply to all applicable files at that level and below. また、特定のプロジェクトやコードベースの EditorConfig 設定をオーバーライドしたり、コードベースの一部の EditorConfig 設定をオーバーライドして、コードベースの他の部分とは異なる規則を使用するようにしたりできます。You can also override EditorConfig settings for a particular project, codebase, or part of a codebase, such that it uses different conventions than other parts of the codebase. これは、別の場所からコードを組み込んで、その規則を変更したくない場合に役立ちます。This can be useful when you incorporate code from somewhere else, and don’t want to change its conventions.

一部またはすべての EditorConfig 設定をオーバーライドするには、オーバーライドされた設定を適用するファイルの階層レベルに .editorconfig ファイルを追加します。To override some or all of the EditorConfig settings, add an .editorconfig file at the level of the file hierarchy you want those overridden settings to apply. 新しい EditorConfig ファイルの設定は、同じレベルと任意のサブディレクトリ内のファイルに適用されます。The new EditorConfig file settings apply to files at the same level and any subdirectories.

EditorConfig 階層

すべての設定ではなく一部をオーバーライドする場合には、.editorconfig ファイルで該当する設定だけを指定します。If you want to override some but not all of the settings, specify just those settings in the .editorconfig file. 下位レベルのファイルで明示的に一覧表示したプロパティのみがオーバーライドされます。Only those properties that you explicitly list in the lower-level file are overridden. 上位レベルの .editorconfig ファイルからのその他の設定は、引き続き適用されます。Other settings from higher-level .editorconfig files continue to apply. _すべての_上位レベルの .editorconfig ファイルからの設定がコードベースのこの部分に適用_されない_ようにするには、次のように root=true プロパティを下位レベルの .editorconfig ファイルに追加します。If you want to ensure that no settings from any higher-level .editorconfig files are applied to this part of the codebase, add the root=true property to the lower-level .editorconfig file:

# top-most EditorConfig file
root = true

EditorConfig ファイルは上から下に読み取られます。EditorConfig files are read top to bottom. 同じ名前のプロパティが複数ある場合は、その名前の最も最近見つかったプロパティが優先されます。If there are multiple properties with the same name, the most recently found property with that name takes precedence.

EditorConfig ファイルの編集Edit EditorConfig files

Visual Studio では、.editorconfig ファイルを編集しやすいように、IntelliSense の入力候補一覧が提供されます。Visual Studio helps you edit .editorconfig files by providing IntelliSense completion lists.

.editorconfig ファイルの IntelliSense

EditorConfig ファイルを編集したら、コード ファイルを再度読み込んで新しい設定を有効にする必要があります。After you've edited your EditorConfig file, you must reload your code files for the new settings to take effect.

多数の .editorconfig ファイルを編集する場合は、EditorConfig 言語サービス拡張機能が便利です。If you edit numerous .editorconfig files, you may find the EditorConfig Language Service extension helpful. この拡張機能には、構文の強調表示、強化された IntelliSense、検証、およびコードの書式設定などの機能が含まれます。Some of the features of this extension include syntax highlighting, improved IntelliSense, validation, and code formatting.

EditorConfig 言語サービス拡張機能の IntelliSense

Example

次の例では、.editorconfig ファイルをプロジェクトに追加する前と追加した後の C# コード スニペットのインデント状態を示します。The following example shows the indent state of a C# code snippet before and after adding an .editorconfig file to the project. Visual Studio テキスト エディターの [オプション] ダイアログ ボックスにある [タブ] 設定は、Tab キーを押したときに空白文字を入力するように設定されています。The Tabs setting in the Options dialog box for the Visual Studio text editor is set to produce space characters when you press the Tab key.

テキスト エディター タブの設定

設定どおり、次の行で Tab キーを押すと、4 つ分の空白文字が追加されてインデントが行われます。As expected, pressing the Tab key on the next line indents the line by adding four additional white-space characters.

EditorConfig を使用する前のコード

.editorconfig という名前の新しいファイルを、次のコンテンツと共にプロジェクトに追加します。Add a new file called .editorconfig to the project, with the following contents. [*.cs] の設定は、この変更がこのプロジェクトの C# コード ファイルにのみ適用されることを意味します。The [*.cs] setting means that this change applies only to C# code files in the project.

# Top-most EditorConfig file
root = true

# Tab indentation
[*.cs]
indent_style = tab

これで、Tab キーを押すと、スペースの代わりにタブ文字が入力されます。Now, when you press the Tab key, you get tab characters instead of spaces.

Tab キーでタブ文字が追加されます

EditorConfig 設定のトラブルシューティングTroubleshoot EditorConfig settings

EditorConfig ファイルがディレクトリ構造内でプロジェクトの場所と同じか上位にある場合、Visual Studio はそのファイル内のエディター設定をエディターに適用します。If there is an EditorConfig file anywhere in the directory structure at or above your project's location, Visual Studio applies the editor settings in that file to your editor. この場合、ステータス バーに次のメッセージが表示される場合があります。In this case, you may see the following message in the status bar:

"このファイルの種類のユーザー設定は、このプロジェクトのコーディング規則によりオーバーライドされます。""User preferences for this file type are overridden by this project's coding conventions."

つまり、[ツール]、 > [オプション]、 > [テキスト エディター] の任意のエディター設定 (インデントのサイズとスタイル、タブ サイズ、コーディング規則など) が、ディレクトリ構造内でプロジェクトと同じか上位にある EditorConfig ファイルで指定されると、EditorConfig ファイル内の規則がオプションの設定をオーバーライドします。This means that if any editor settings in Tools > Options > Text Editor (such as indent size and style, tab size, or coding conventions) are specified in an EditorConfig file at or above the project in the directory structure, the conventions in the EditorConfig file override the settings in Options. この動作は、[ツール] > [オプション] > [テキスト エディター][プロジェクトのコーディング規則に従います] オプションを切り替えることで制御できます。You can control this behavior by toggling the Follow project coding conventions option in Tools > Options > Text Editor. このオプションをオフにすると、Visual Studio の EditorConfig に対するサポートが無効になります。Unchecking the option turns off EditorConfig support for Visual Studio.

[ツール] メニューの [オプション] - [プロジェクトのコーディング規則に従います]

親ディレクトリで任意の .editorconfig ファイルを見つけるには、コマンド プロンプトを開き、プロジェクトが格納されているディスクのルートから次のコマンドを実行します。You can find any .editorconfig files in parent directories by opening a command prompt and running the following command from the root of the disk that contains your project:

dir .editorconfig /s

EditorConfig 規則の範囲を制御するには、リポジトリのルートにある、またはプロジェクトが格納されているディレクトリ内の .editorconfig ファイルで root=true プロパティを設定します。You can control the scope of your EditorConfig conventions by setting the root=true property in the .editorconfig file at the root of your repo or in the directory that your project resides. Visual Studio は、開かれたファイルのディレクトリ内とすべての親ディレクトリで .editorconfig という名前のファイルを探します。Visual Studio looks for a file named .editorconfig in the directory of the opened file and in every parent directory. 検索は、ルート ファイル パスに到達するか、または root=true を含む .editorconfig ファイルが見つかると、終了します。The search ends when it reaches the root filepath, or if an .editorconfig file with root=true is found.

関連項目See also