雑多なブログ

音楽や語学、プログラム関連の話題について書いています

editorconfigを使おう!

プログラム開発を複数人で行うにあたって、ファイルフォーマットというものが重要になってくる。個人で開発する分には気にする必要もないけれど、各人によってインデントが8だったり、2だったり、インデント種類がタブだったり、スペースだったりとばらつくと色々問題がある。

そんな場合に役立つものがeditorconfigだ。editorconfigにインデントスタイルにまつわる設定やファイル文字コードを設定しておくと、editorconfigが有効な環境では設定に剃って、改行やインデントを揃えてくれる。

なお、有名なテキストエディタ(vim,VSC,sublime,emacs,netbeans、その他色々)では大体プラグラインが実装されているので、プラグインをインストールする事で使用できる。

詳しい設定内容については表にまとめてみた。

設定項目

プロパティ 説明
root 最上位の.editorconfigファイル。
ルートファイルパスに到達するか、root=trueの設定を検出するまで上位の階層を探索する。
true, false
indent_style インデントの種類を設定。 space, tab
indent_size インデントのサイズを指定。
空白2つ分ならば、indent_size=2 にする。
数値(0〜)
tab_width タブのサイズ 。 数値
end_of_line 改行のフォーマット(UnixDOSMac)。 lf, crlf, cr
charset 文字コードを指定。 latin1
utf-8
utf-16be
utf-16le
utf-8-bom
trim_trailing_whitespace 行末のスペースを削除するかどうか設定。
trueで行末スペースを削除し、falseでは削除しない。
true, false
insert_final_newline ファイル保存の際、ファイル末尾に改行コードを挿入する設定。
trueで末尾に改行を追加する。
true, false
max_line_length 一行の文字数(一部のエディタのみ対応) 数値(1〜)

対象ファイルの指定

ワイルドカードのパターン

パターン 意味
* パス区切り記号以外の任意の文字列に該当。
** 任意の文字列に該当(パス区切り記号含む)。
? 任意の文字列1文字に該当。
[name] nameに該当するファイル。
[!name] nameに該当しないファイル。
{s1,s2,s3} s1、s2、s3のいずれかに該当する。
{num1...num2} num1

[*.md] ... 拡張子がmdのファイル。
[config/**.js] ... 指定ディレイク以下の任意のファイル


設定例

root = true

[*]
# tab or space
indent_style = space

indent_size = 4
charset = utf-8

trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.rb]
indent_style = space
indent_size = 2

参考サイト

editorconfig.org