EditorConfig は、開発チーム内の異なるエディタやIDE間で一貫したコーディングスタイルを維持するための設定規格です。
標準的なプロジェクト構成ベースライン
プロジェクトのルートディレクトリに .editorconfig ファイルを配置します:
# 最上位の EditorConfig 設定であることを宣言
root = true
# すべてのファイルに適用する共通デフォルト設定
[*]
indent_style = space
indent_size = 2
tab_width = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
# Python用の4スペースインデント設定
[*.py]
indent_size = 4
# Go および Makefile 用のタブインデント設定
[*.go]
indent_style = tab
[Makefile]
indent_style = tab
# Markdownは改行保持のため末尾スペースのトリムを無効化
[*.md]
trim_trailing_whitespace = false
サポートされているプロパティ
| プロパティ | 指定可能な値 | 説明 |
|---|---|---|
root |
true |
親ディレクトリへの再帰的な検索を停止 |
indent_style |
space | tab |
インデントに使用する文字種別 |
indent_size |
Integer | tab |
インデントあたりのカラム数 |
tab_width |
Integer | タブ文字あたりのカラム幅(省略時は indent_size) |
end_of_line |
lf | crlf | cr |
改行コード形式 |
charset |
utf-8 | utf-16be | utf-16le | latin1 |
ファイルの文字エンコーディング |
trim_trailing_whitespace |
true | false |
行末の不要な空白文字を自動削除 |
insert_final_newline |
true | false |
ファイルの末尾に必ず空行を挿入 |
max_line_length |
Integer | off |
推奨される1行あたりの最大文字数 |
Glob パターンマッチング規則
*: パス区切り記号 (/) を除く任意の文字列にマッチ**: 複数階層のディレクトリパスを跨いで任意の文字列にマッチ?: 任意の1文字にマッチ[seq]: seq に含まれるいずれかの文字にマッチ[!seq]: seq に含まれないいずれかの文字にマッチ{s1,s2,s3}: カンマ区切りで指定されたいずれかの文字列にマッチ (例: package.json や .travis.yml)