開発者がそれぞれ異なるIDEを使用している開発プロジェクトで
効率的にコーディングスタイル(文字コード・改行コード・インデント幅等)を共有する方法として
EditorConfigを紹介します
以下のような内容の.editorconfig
ファイルを
プロジェクトのディレクトリに配置することで
IDEでプロジェクトを開いた際に自動的にコーディングスタイルが設定されます
.editorconfigの例
root = true
# 基本設定
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
tab_width = 4
trim_trailing_whitespace = true
insert_final_newline = true
# Markdownファイルは行末スペースを削除しない
[*.md]
trim_trailing_whitespace = false
# JavaScriptとJSONファイルはインデントをスペース2文字にする
[*.{js,json}]
indent_size = 2
# Makefileはタブでインデントする
[Makefile]
indent_style = tab
設定項目
.editorconfig
ファイルはINIファイル形式です
-
root = true
この指定がない場合、上位のディレクトリに遡って継承元とする.editorconfig
を検索します -
#
から行末まではコメントです -
[]
で囲まれたセクション名
ルールを適用するファイル名のパターンを指定します
[*]
であれば、すべてのファイルに
[*.md]
であればMarkdownドキュメント(拡張子が.md
)のファイルに
[*.{js,json}]
であれば、JavaScript(拡張子が.js
)とJSON(拡張子が.json
)に適用されます -
charset
ファイルの文字コードを指定します -
end_of_line
改行コードを指定します -
indent_style
インデントに使用する文字tab
またはspace
を指定します -
indent_size
1インデントの幅を何文字分にするかを指定します -
tab_width
1タブの幅を何文字分にするかを指定します -
trim_trailing_whitespace
ファイル保存時に、各行末のスペース文字を自動削除するtrue
か、しないfalse
を指定します
上記の例では、Markdownファイル(*.md)のみ行末のスペースを削除しない設定になっています -
trim_trailing_whitespace
ファイル保存時に、ファイル末尾を改行文字にするtrue
か、何もしないfalse
を指定します
これ以外にも言語やIDE特有の設定項目があります
完全なリストは EditorConfigのWiki(英語)を参照してください
各種IDEの対応状況
初期状態で有効な(EditorConfigプラグインがインストールされている)もの
- IntelliJ IDEA
- PyCharm
- RubyMine
- WebStorm など
プラグインをインストールすると有効になるもの
- ATOM
- VisualStudio Code
- eclipse
- PhpStrom など