Atomでインデント設定に困ったらEditorConfigを使用する
Atomで言語別にインデントのルールを設定したい。以前は言語別でソフトタブの設定ができたようなのですが、現在はできないようです。困った…。そんな時に出会った「EditorConfig」が便利でしたので、設定方法を紹介します。
現在、Atomのインデント設定は以下の様になっております。
- 言語別に半角スペースの数を変更できる
- ハードタブかソフトタブかを切り替えることができる
- 言語別にハードタブかソフトタブかを変更できない
以前は言語別でソフトタブの設定ができたようなのですが、現在はできないようです。
そこで、プラグインのsyntax-settingsを導入して設定を試してみるも、上手くいかず撃沈。
これは困った。
そこで、対応策を探していると、EditorConfigというものに出会いました。
EditorConfigとは
プロジェクト毎にコーディングルールが異なったり、複数人で編集することによって、インデントがタブだったり半角スペースだったり、改行コードが違う、一部ファイルだけ文字コードがShift_JISになってしまっている、といった問題が起こり得ます。
これらの設定を統一し、共有するためのツールがEditorConfigです。
例で少し挙げましたが、EditorConfigでは下記の設定が可能です。
- 言語別のインデントの設定(タブか半角スペースか)
- タブの幅(タブの場合)
- 半角スペースの数(半角スペースの場合)
- 改行コード
- 文字コード
- 先行する空白文字を削除するか
- ファイルを改行で終えるか
- EditorConfigファイルの探索を終えるか
EditorConfigについて詳しいことが知りたい方は、下記のサイトを参考にしてみてください。
AtomでEditorConfigを設定する
「EditorConfig」をインストール
AtomはEditorConfigに対応しているので、プラグインをインストールします。
インストール方法は2つ。お好きな方法でインストールしてください。
コマンドプロンプト若しくはターミナルからインストール
$ apm install editorconfig
Atomからインストール
File → Settings → Install → 「EditorConfig」で検索
次に、.editorconfigファイルを作成いたします。
root = true
[*]
indent_style = tab
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[package.json]
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false
[*.html]
indent_style = space
indent_size = 2
[*.css]
tab_width = 4
[*.js]
tab_width = 4
上記では、htmlの時は半角スペース2つのソフトタブでインデント、css,javascriptの時は半角スペース4つ分のハードタブでインデント、という設定を行っております。
EditorConfigは、編集しているファイルから一番近いところにある.editorconfigファイルの設定を参照します。
ですので、作成したファイルは、各プロジェクトのルートに配置します。そうすることで、プロジェクト別にEditorConfigを設定することが可能になります。
チームメンバーと共有するには、作成した.editorconfigファイルを他メンバーに共有し、該当ディレクトリに配置するだけです。とても簡単ですね。
これをプロジェクト別ではなく、エディターの設定として利用する場合は、ホームディレクトリに配置することで、全てのファイルに適用されます。
EditorConfigをチームで採用する際の注意点
EditorConfigに対応しているエディターは限られています。
対応していないエディターを使用しているメンバーには別途共有が必要ですね。
とはいえ主要エディターの多くは対応済みのようです。
対応エディターは公式サイトをご確認ください。
今回はAtomのインデント設定で壁にぶつかったことでEditorConfigというものがあるのを知りました(情弱か…)。
学習コストはほとんど必要なく、エディターさえ対応していればよいので、実務で使用してみるのもいいかなと思います。