0
1

More than 1 year has passed since last update.

EditorConfigのすゝめ

Posted at

What is EditorConfig?

公式サイトに記載されている概要です

EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs. (以下略)
以下Google翻訳

EditorConfig は、さまざまなエディターや IDE で同じプロジェクトに取り組んでいる複数の開発者が一貫したコーディング スタイルを維持するのに役立ちます。

この一文が全てです。簡潔でわかりやすい!

導入したらどうなるの?

コーディングするエディタを指定していなければチームで開発している場合、個々人で変わってくると思います。田中さんはNeoVim、佐藤さんはIntelliJ、鈴木さんはVSCodeといった具合です。
この時、それぞれのエディターはローカルの設定に従いタブ種類やサイズ、改行コードを自動的に挿入していきます。
最悪の場合、ファイル全体を置換してしまいます。結果、ブランチのマージ時の差分が膨大になり詰みます。
これらの設定を共有して複数の開発者、エディターで一貫したコーディングスタイルを維持するためことができます。
また、複数の言語を横断してコーディングする際に個別に設定することも可能です。
例えば、Pythonのインデントはソフトタブ4つと決まっています。一方、Makefileのインデントはハードタブでないとエラーが発生します。
PythonとMakefileが混在するプロジェクトの場合、一方に合わすともう一方が異なってしまい、コーディングが大変になります。
この問題をEditorConfigを利用するとスマートに解決することができます。

Let's install!

設定ファイル

設定ファイルの導入はすごく簡単
プロジェクトのルートディレクトリに.editorconfigというファイルを作成するだけです。

記述方法

公式サイトでのファイル記述方法はこれだけです。
シンプルな機能のみを提供しているので設定ファイルもシンプルです。
各項目の詳細な意味はすごいわかりやすい下記ページを参照してください
どんなエディタでもEditorConfigを使ってコードの統一性を高める#editorconfigファイル - Qiita

# Rquired
root = true

# プロジェクト全般の設定
[*]
end_of_line = lf            # 改行はLF
insert_final_newline = true # 最終行に空行を追加
charset = utf-8             # 文字コードはUTF-8
indent_style = space        # インデントは半角スペース

# 拡張子が.pyのとき
[*.py]
indent_size = 4             # インデントはindent_style4つ分

# Makefileのみ
[Makefile]
indent_style = tab          # インデントはハードタブ

# 拡張子が.jsの時
[*.js]
indent_size = 2             # インデントはindent_style2つ分

EditorConfigはよく知っているプロジェクトに導入されているのでレポジトリから参考にしてはいかがでしょうか?
Projects Using EditorConfig - Github

エディタへの導入方法

標準で対応しているエディタプラグインが必要なエディタがあります。
おおよそのJetBrains系エディタは標準で対応しているようがAppCode、Php Stomはプラグインが必要です。mた、VisualStudioは標準で対応しているのにVS Codeはプラグインが必要だそうです。
この違いなんなんだろう?

VS Codeへの導入

サイドバーのExtensionsからEditorConfig for VS Codeと検索後、ネズミさんアイコンの拡張をインストールすれば導入完了です。
他の設定なしに拡張子に従ったエディターの設定を自動的に適用してくれます。

参考

0
1
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
0
1