EditorConfig

公式サイト(https://editorconfig.org/)の内容を日本語で解説しています。

EditorConfigとは?

EditorConfigは、複数のエディタやIDE間でコードのスタイル設定を共有するための仕組みです。プロジェクトごとに統一された設定を適用でき、チーム開発でのコードスタイルの統一に役立ちます。

サンプル設定

# EditorConfigは最高だ!: https://editorconfig.org

# 最上位のEditorConfigファイル
root = true

# すべてのファイルにUnixスタイルの改行と末尾の改行を設定
[*]
end_of_line = lf
insert_final_newline = true

# 括弧展開表記で複数ファイルをマッチ
# 文字コードを設定
[*.{js,py}]
charset = utf-8

# Pythonファイルはスペース4つのインデント
[*.py]
indent_style = space
indent_size = 4

# Makefileはタブインデント(幅は指定しない)
[Makefile]
indent_style = tab

# libフォルダ以下の全てのJSファイルはスペース2つのインデント
[lib/**.js]
indent_style = space
indent_size = 2

# package.jsonと.travis.ymlのみマッチ
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2

ファイルの配置場所

EditorConfigの設定ファイル(.editorconfig)は、通常プロジェクトのルートディレクトリに配置します。ファイルはツリー構造をたどって上位の.editorconfigを探索し、最初にroot = trueが指定されたファイルで探索が終了します。

ファイルフォーマット詳細

EditorConfigファイルはPythonのconfigparserライブラリで使用されるINI形式に準拠していますが、セクション名には [ ] が使用できます。セクション名はファイルパスのglobパターン(大文字小文字を区別)で、gitignoreと同様の形式を採用しています。パス区切りはスラッシュ(/)のみで、コメントには # または ; を使用します。EditorConfigファイルはUTF-8でエンコードされ、改行コードはCRLFまたはLFのいずれかを使用できます。EditorConfigファイルは上から下へと読み込まれ、後に記述されたルールが優先されます。

設定項目一覧

設定項目 説明
indent_style インデントの種類(space または tab)
indent_size インデントの幅
tab_width タブの幅(必要に応じて指定)
end_of_line 改行コード(lf, crlf, cr)
charset 文字コード(例: utf-8)
trim_trailing_whitespace 行末の空白を削除するか
insert_final_newline ファイルの最後に改行を入れるか
max_line_length 行の最大文字数

ワイルドカードパターン

パターン 意味
* 任意の文字列(スラッシュを除く)にマッチ
** ディレクトリをまたいで任意の文字列にマッチ
? 任意の1文字にマッチ
[abc] a, b, c のいずれかの1文字にマッチ
[!abc] a, b, c 以外の1文字にマッチ

当サイトについて

このサイトはEditorConfig公式サイトではなく、個人が作成した解説サイトです。詳しくは公式サイト(https://editorconfig.org/)を参照してください。