LoginSignup
15
18

More than 5 years have passed since last update.

EditorConfigのススメ

Last updated at Posted at 2017-05-31

EditorConfigってなんぞ

複数人で作業していると、インデントがタブだったりスペースだったり、インデント数が2つの人もいれば4つの人がいて逐一プロジェクトごとにエディタの設定を変えるのは面倒ですよね。
で、EditorConfigに対応したエディタを開くだけでコーディングスタイルと整えてくれます。

以下、公式の訳です。

EditorConfigは、開発者がさまざまなエディタとIDE間で一貫したコーディングスタイルを定義し、維持するのに役立ちます。 EditorConfigプロジェクトは、コーディングスタイルを定義するためのファイルフォーマットと、エディタがファイルフォーマットを読み込んで定義されたスタイルに従うことを可能にするテキストエディタプラグインのコレクションで構成されています。 EditorConfigファイルは読みやすく、バージョン管理システムでうまく動作します。

なのでgitのリポジトリに置いておけば、みんなで設定を共有できるので楽チンという。
しかもGitHubがeditorconfigをネイテイブサポートしているため、ファイル表示時にもインデントが綺麗になってる幸せが味わえます、やったね。

設定方法

設定は簡単。各editorからeditorconfigのパッケージをイントールして、
プロジェクトのルートに.editorconfigファイルを置くだけ。
.editorconfigの内容はこの後に書きます。

サンプルコード

以下、公式サンプルの訳です。
下記をみるとなんとなく書き方がわかると思います。

.editorconfig
# ルートの設定(.editorconfigはプロジェクトのルートに置くと良いです)
root = true

# 改行コードと改行後ろの空白削除の有無を指定したいとき
[*]
end_of_line = lf
insert_final_newline = true

# 特定の複数拡張子を指定するとき
# 文字コードの設定するとき
[*.{js,py}]
charset = utf-8

# スペース4つのインデントにしたいとき
[*.py]
indent_style = space
indent_size = 4

# タブインデントにしたいとき
[Makefile]
indent_style = tab

# libディレクトリ配下の~.jsにのみ適用させたいとき
[lib/**.js]
indent_style = space
indent_size = 2

# package.jsonまたは.travis.ymlに合致しているとき
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2

指定内容

  • indent_style(インデント)
    tab または space

  • indent_size(インデントサイズ)
    数値指定

  • tab_width(タブ幅)
    数値指定
    インデントをタブで選択したときのみ、指定可能

  • charset(文字コード)
    latin1, utf-8, utf-8-bom, utf-16be, utf-16le
    のいずれか

  • end_of_line(改行コード)
    lf, cr, crlf
    のいずれか

  • trim_trailing_whitespace(行末スペースを削除)
    true または false

  • insert_final_newline(ファイル末尾の改行)
    ture または false
    trueに設定すると、保存時に改行でファイルが終了し、保存されない場合はfalseに設定されます。

  • root(プロジェクトルート)
    true または false
    これをfalseまたは指定していないと、.eidtorconfigファイル以上の階層でも適用されちゃいます。trueがマスト。

まとめ

これでプロジェクトが変わるごとにエディターの設定を変えなくて済みます!
いろんな人が触ってもインデントが崩れることがないので、コードも見やすいですね!

参考

15
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
18