【ATOM Editor】 EditorConfig を使うなら Whitespace は不要

no extension

日本シリーズ楽しんでますか? やっぱ日ハムは強いねぇ。 指揮官が無能で選手の勢いだけで優勝したどこぞのチームとは格が違う。 まぁ,最初の2連勝で夢を見させていただいただけでもよしとしましょう。

ところで ATOMEditorConfig が 1.7 になって面白いワーニングを吐くようになった。

warning from editorconfig @atom

どうやら trim_trailing_whitespaceinsert_final_newline に対応したらしいんだけど, Core Package の whitespace と conflict しているようだ。 この場合は whitespace を Disable にすれば解消する(whitespace は Core Package なので削除できない)。

EditorConfigwhitespace のどちらを優先するかは人によって違うだろうが,少なくともコード書きなら EditorConfig を優先することを強くお勧めする。

EditorConfig は入力テキストの文字エンコーディングや改行コードなどを設定する機能で,プロジェクトのルート・フォルダに .editorconfig ファイルを設置しておけば 利用環境に関係なく 設定を統一できる。 対応しているエディタも多く, Vim や Emacs や Notepad++, Sublime Text といった定番のテキストエディタはもちろん, Eclipse, Visual Studio (Code), IntelliJ IDEA, WebStorm といった IDE (Integrated Development Environment) でも対応している。 もちろん ATOM対応している

設定可能な項目は以下の6つ。

  1. indent_style はインデントのスタイルを指定する。 tab または space を指定する
  2. indent_size はインデントの幅を指定する
  3. end_of_line は改行コードを指定する。 lf, cr, crlf から選択できる
  4. chaset は文字エンコーディングを指定する。 latin1, utf-8, utf-8-bom, utf-16be or utf-16le から選択できる。残念ながらこれ以外の文字エンコーディングについては動作不定(エディタ側の実装による)である1
  5. trim_trailing_whitespacetrue にすると行末の空白文字を削除してくれる
  6. insert_final_newlinetrue にするとファイルの末尾が改行文字ではない場合に補完してくれる

これらの項目をファイルの種別ごとに設定できる。 ちなみに私が仕事以外でよく使う設定はこんな感じ。

root = true

[*]
end_of_line = lf
charset = utf-8
indent_style = tab
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true

[*.html]
insert_final_newline = false

[*.md]
indent_style = space
indent_size = 4
trim_trailing_whitespace = false

チームでこうした設定を決めてプロジェクトに組み込んでおけば文字エンコーディングや改行コードやインデント幅といった馬鹿らしいことで悩むことなく作業に専念できる。


  1. まぁ Unicode が使えない国と地域以外で今更 Unicode を使わない手はないと思うけどね。面倒なことも多いけど。 ↩︎