本日ご紹介するのはこちらの商品!
ででん!
- え、君インデントがタブ使ってるの??
- 改行コードがなんか違くないこれ?
- 意味のない空白だらけのコード
- PEP8則ってないじゃんか。。
こんなお悩みに答えてくれます。
エディタをまたいで、プロジェクト単位に、設定を共有できるツール です。
これまでは
- 各人がエディタごと、言語ごとにコーディング規約を規定。
- ドキュメントを渡されて各個人が使用するエディタでわちゃわちゃ設定。
- エディタごとにも設定ファイルが違うし
→ プロジェクト内に微妙に違うフォーマットが混在。。
これからは
- プロジェクトごとにコーディング規約を規定。
- 最低限のルールに関して
.editorconfig
で一括管理。 - コーディング規約に関してもバージョン管理
→ キレイキレイ。読みやすい!余計な修正しなくていい!
書き方
本家の例を拝借。
見るだけでわかる優秀なフォーマット。
要するにファイルの種類ごとにコーディング規約を設定することができるのです。
# EditorConfig is awesome: https://EditorConfig.org # top-most EditorConfig file root = true # Unix-style newlines with a newline ending every file [*] end_of_line = lf insert_final_newline = true # Matches multiple files with brace expansion notation # Set default charset [*.{js,py}] charset = utf-8 # 4 space indentation [*.py] indent_style = space indent_size = 4 # Tab indentation (no size specified) [Makefile] indent_style = tab # Indentation override for all JS under lib directory [lib/**.js] indent_style = space indent_size = 2 # Matches the exact files either package.json or .travis.yml [{package.json,.travis.yml}] indent_style = space indent_size = 2
定義できる項目
wikiにいっぱい書いてあるよ。
使いそうなのはこの辺。
項目名 | 内容 | 例 |
---|---|---|
max_line_length | 1行の最大文字数 | 79 |
indent_style | インデントのスタイル | tab |
indent_size | インデントの文字数 | 4 |
end_of_line | 改行コード | lf |
trim_trailing_whitespace | 行末の空白を削除するか否か | true |
charset | 文字コード | utf-8 |
対応しているエディタ
いっぱい!! 我らがvimもあります。
導入方法(vimだけ)
vimの場合だけ導入方法書いておきます。 他のエディタの方は適当にどうぞ。
NeoBundleを入れて下記を .vimrc
に追記するだけ!
NeoBundle 'editorconfig/editorconfig-vim'
https://github.com/editorconfig/editorconfig-vim
PEP8なeditorconfig
コーディング規約といえばPEP8。 PEP8といえばDjango。
PEP8に則らせようと思ったらこんな感じの .editconfig
を置いておけばいい。
[*.py] indent_style = space indent_size = 4 trim_trailing_whitespace = true end_of_line = lf charset = utf-8 max_line_length = 79
おまけ
djangoのeditorconfig みっけ。
max_line_length = 119
なとこがイケてますね。