Skip to content

Instantly share code, notes, and snippets.

@pine
Last active November 8, 2017 16:17
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pine/95a29ece09c453d45388be0cc223eca7 to your computer and use it in GitHub Desktop.
Save pine/95a29ece09c453d45388be0cc223eca7 to your computer and use it in GitHub Desktop.
editorconfig のススメ

この記事は 高知工科大 Advent Calendar 2016 の2日目の記事です。
昨年度のカレンダーはこちら: 高知工科大 Advent Calendar 2015

editorconfig のススメ

はじめに

はじめまして。高知工科大学 OB の pine (ぴね) と申します。
いまは東京で働いていますので、東京へ来る際は飲みましょう。

今期は Occultic;Nine とあにトレ推しです。

editorconfig とは?

エディタを問わず使える、テキストエディタの設定ファイルです。
インデント幅や文字コードなどのコードを書く時のスタイルを、プロジェクトごとに容易に統一することができます。

editorconfig の特徴

  • 特定のエディタに依存しない、共通のデータフォーマット
  • プロジェクトごとに別の設定を適応可能
    • そのリポジトリで作業してる時に勝手に適応される
  • 多くのエディタが標準、もしくはプラグインで対応している

editorconfig の例

こんなファイルを、各レポジトリのルートに置きます。
それによって、書く人によらず統一されたスタイルのプログラムが誕生します。

root = true

[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true

[*.py]
indent_style = space
indent_size = 4

[*.md]
indent_style = space
indent_size = 2

上記は、 * ですべてのファイルに共通する設定が書かれ、その下に拡張子別の設定が記述されています。

対応しているエディタの例

多くのテキストエディタ、IDE が editorconfig に対応しています。

Vim

テキストエディタ

  • Vim
  • Emacs
  • Atom
  • Sublime Text
  • Visual Studio Code

IDE

  • Visual Studio
  • Xcode
  • Eclipse
  • IntelliJ IDEA
  • PyCharm

その他、多数のテキストエディタが対応しています。
http://editorconfig.org/

よくある質問

editorconfig を使うメリットは?

個人のエディタの設定とは別に、レポジトリごとの設定という概念が生まれることです。

例えば、他の人の作っているレポジトリであっても、
editorconfig さえ置いてあれば、何も考えずに規則に沿ったコーディングできます。

どんな項目が設定できますか?

プログラマーが必要以上に気にする、基本的な項目が設定できます。

  • インデント幅
    • 2 なのか 4 なのか、その他なのか
  • インデント文字
    • スペースなのかタブなのか
  • 改行コード
  • 文字コード
  • スペースのみの行を許すか
  • 最終行に改行を入れるか

詳しくは、公式のドキュメントを御覧ください
https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties

使ってるプロジェクト無いでしょ? 聞いたこと無いんだけど?

それはあなたの妄想です。

editorconfig を使っているプロジェクトの一覧があるので、御覧ください。
https://github.com/editorconfig/editorconfig/wiki/Projects-Using-EditorConfig

有名どころだと、プログラミング言語の Ruby や、JavaScript のライブラリである jQuery、
macOS のパッケージマネージャーである Homebrew などが使っています。

他の人のスタイルに合わせてコードを書きたくないのですが?

もしかしてあなた、怠惰ですか???

ペテルギウス ロマネコンティ

使っているエディタのプラグインが無いのですか?

プラグインを作るのは、あなたです!

終わりに

戦争のない楽しい開発を楽しみましょう!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment