Webサービス開発、あるよ
Webサービス開発、あるよ
2017.05.05
#22
バックエンドへの道

コードフォーマットを統一する「EditorConfig」を操ろう!

エリカ

こんにちは、エリカです。

「インデントがタブになっている」「インデントがスペースになっている」「改行コードが変わっている」「ファイルの終端に空行がなくて github に怒られる」などなど……共同作業してると、こうした基本的なところが気になりますよね。差分も出ちゃうわけですし。

前回お伝えしたコードスニファーなどを使っても、作業者の趣向やエディタの設定によってはどうしてもずれちゃうことってあると思います。プロジェクトによってしっかり打ち合わせればいいだけですが、わざわざ readme に書いたりするのも大変。

そこで、この EditorConfig を使うのです。
今回はその活用法をまとめてみました。

 

EditorConfigとは?

EditorConfig とは、エディタや IDE 間のコーディングスタイルの一環した管理を助けてくれる機構です。ファイルの種類ごとにフォーマットを定義することができ、著名な IDE やエディタに簡単に導入することができます。

http://editorconfig.org

 

PHPStormでの使い方

Editorconfigプラグインのインストール

今回は PHPStorm に導入してみたいと思います。プラグインが用意されているので、インストールするだけでオッケー。インストール後はリスタートして EditorConfig プラグインを有効化してください。

 

プロジェクトへの適用

任意のプロジェクトのソースコードディレクトリに、.editorconfig というファイルを作成します。

準備としてはこれだけで、あとはこの.editorconfig にそれぞれのファイルタイプごとのフォーマットを定義していきます。

PHPStorm には、すでにファイルタイプごとのコーディングスタイルが定義されていますが、.editorconfig はこの設定を上書きして適用されます。したがって、この.editorconfig をプロジェクト間で共有すれば、作業者の環境に依存せずに統一されたフォーマットを適用できるわけです。

 

PHPのフォーマットを定義する

  1. インデントはタブにする。
  2. 行末はラインフィードにする。
  3. ファイルの終端に空行を挿入にする。

というフォーマットを、これから作成されていくプロジェクト内の 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 を指定できます。

 
より詳しく知りたい方は、こちらをご覧ください。

 
https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties

 

まとめ

コードスニファーや EditorConfig を使えば、細かいところは気にせずとも、自動整形でコードフォーマットを綺麗に統一できます。ぜひ日頃の作業に活用してくださいね。

 

U Y A
K A