こんにちは、エリカです。
「インデントがタブになっている」「インデントがスペースになっている」「改行コードが変わっている」「ファイルの終端に空行がなくて github に怒られる」などなど……共同作業してると、こうした基本的なところが気になりますよね。差分も出ちゃうわけですし。
前回お伝えしたコードスニファーなどを使っても、作業者の趣向やエディタの設定によってはどうしてもずれちゃうことってあると思います。プロジェクトによってしっかり打ち合わせればいいだけですが、わざわざ readme に書いたりするのも大変。
そこで、この EditorConfig を使うのです。
今回はその活用法をまとめてみました。
EditorConfigとは?
EditorConfig とは、エディタや IDE 間のコーディングスタイルの一環した管理を助けてくれる機構です。ファイルの種類ごとにフォーマットを定義することができ、著名な IDE やエディタに簡単に導入することができます。
PHPStormでの使い方
Editorconfigプラグインのインストール
今回は PHPStorm に導入してみたいと思います。プラグインが用意されているので、インストールするだけでオッケー。インストール後はリスタートして EditorConfig プラグインを有効化してください。
プロジェクトへの適用
任意のプロジェクトのソースコードディレクトリに、.editorconfig というファイルを作成します。
準備としてはこれだけで、あとはこの.editorconfig にそれぞれのファイルタイプごとのフォーマットを定義していきます。
PHPStorm には、すでにファイルタイプごとのコーディングスタイルが定義されていますが、.editorconfig はこの設定を上書きして適用されます。したがって、この.editorconfig をプロジェクト間で共有すれば、作業者の環境に依存せずに統一されたフォーマットを適用できるわけです。
PHPのフォーマットを定義する
- インデントはタブにする。
- 行末はラインフィードにする。
- ファイルの終端に空行を挿入にする。
というフォーマットを、これから作成されていくプロジェクト内の PHP ファイルに適用していって欲しい場合があるとします。
root=true
[*.php]
# 1. インデントはタブにする。
indent_style = tab
# 2. 行末はラインフィードにする。
end_of_line = lf
# 3. ファイルの終端に空行を挿入する。
insert_final_newline = true
これで、そのプロジェクト内にあるすべての PHP ファイルについては、指定したフォーマットが適用されることになります。
ただし、.editorconfig 内に root=true
を指定しておくと、その.editorconfig のあるディレクトリおよびそのサブディレクトリに対して効果が制限することができます。
PHPファイルへのフォーマットの適用
それでは、この.editorconfig のあるディレクトリで PHP ファイルを作成し、何かコード記述してみてください。インデントはタブになり、保存時にはファイルの終端に空行が作成されるようになっているかと思います。
利用できる主なパラメータ
- indent_style
- インデントのタイプを指定します。 tab もしくは space を指定できます。
- indent_size
- インデントの幅を数値で指定します。
- tab_width
- tabの幅を数値で指定します。
- end_of_line
- 改行を指定します。 LF, CR, CRLF のいずれかを指定できます。
- charset
- キャラクタセットを指定します。latin1, utf-8, utf-16be, utf-16le のいずれかを指定できます。
- trim_trailing_whitespace
- 行末の空白を取り除くかどうかを指定します。true, false のどちらかを指定できます。
- insert_final_newline
- ファイルの終端に空行を配置するかどうかを指定します。true, false のどちらかを指定できます。
- root
- フォーマットの適用範囲を現在のディレクトリまでに制限するかを指定します。 true, false を指定できます。
より詳しく知りたい方は、こちらをご覧ください。
まとめ
コードスニファーや EditorConfig を使えば、細かいところは気にせずとも、自動整形でコードフォーマットを綺麗に統一できます。ぜひ日頃の作業に活用してくださいね。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。