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

Visual Studio 2017 では、EditorConfig ファイルをプロジェクトまたはコードベースに追加して、そのコードベースを使用するすべてのユーザーに一貫したコーディング スタイルを使用させることができます。In Visual Studio 2017, 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). ただし、新しいコード行はすべて、EditorConfig の設定に従って書式設定されます。However, any new lines of code are formatted according to the EditorConfig settings.

コーディングの一貫性Coding 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.

サポートされる設定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
  • 文字セットcharset
  • trim_trailing_whitespacetrim_trailing_whitespace
  • insert_final_newlineinsert_final_newline
  • ルートroot

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 ファイルの追加と削除Adding and removing 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 言語サービス拡張機能をインストールできます。Alternatively, you can install the EditorConfig Language Service extension. この拡張機能をインストールしたら、ソリューション ノード、プロジェクト ノード、またはソリューション エクスプローラーの任意のフォルダーを右クリックするか、コンテキスト メニューから、[追加] > [.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 ファイルを追加する

EditorConfig 設定を上書きするOverride EditorConfig settings

ファイル階層のフォルダーに .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 ファイルが最後に読み取られます。EditorConfig files are read top to bottom, and the closest EditorConfig files are read last. 一致する EditorConfig セクションからの規則は、より近いファイルの規則が優先されるように、読み取られた順序で適用されます。Conventions from matching EditorConfig sections are applied in the order they were read, so conventions in closer files take precedence.

EditorConfig ファイルの編集Editing 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 設定のトラブルシューティングTroubleshooting 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