📝

EditorConfigでコードスタイルを統一する

に公開

想定読者

  • チーム開発でコードスタイルを揃えたい人
  • インデントや改行コードの混在に困っている人
  • EditorConfig を聞いたことはあるけど使ったことがない人

EditorConfig とは

EditorConfig は、異なるエディタや IDE 間でコーディングスタイルを統一するための設定ファイル形式です。

チーム開発でありがちな、インデントがスペース派とタブ派で分かれている、改行コードが混在しているといった問題を解決できます。

基本的な使い方

プロジェクトのルートに .editorconfig ファイルを作成するだけです。

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

主要なプロパティ

プロパティ 説明 設定例
root このファイルより上位の .editorconfig を無視 true
charset 文字コード utf-8, utf-8-bom, latin1
end_of_line 改行コード lf, crlf, cr
indent_style インデントの種類 space, tab
indent_size インデント幅 2, 4
insert_final_newline ファイル末尾に改行を挿入 true, false
trim_trailing_whitespace 行末の空白を削除 true, false

ファイルパターン

glob 形式でファイルを指定できます。

# すべてのファイル
[*]

# 特定の拡張子
[*.js]

# 複数の拡張子
[*.{js,ts}]

# 特定のディレクトリ
[lib/**.js]

# 特定のファイル名
[Makefile]

対応エディタ

以下のエディタは設定不要でそのまま使えます。

  • VS Code
  • JetBrains IDE(IntelliJ, WebStorm など)

フォーマッターとの違い

EditorConfig はエディタの入力設定(インデント、改行コードなど)を統一するものです。言語固有のフォーマッターとは役割が異なるため、併用できます。

フォーマッターと違い、npm や pip でライブラリをインストールする必要がありません。VS Code や JetBrains IDE はデフォルトで対応しているため、.editorconfig をリポジトリに置くだけで全員に適用されます。

Terraform プロジェクトでの設定

Terraform(HCL)は公式スタイルガイドでスペース 2 インデントが推奨されています。

.editorconfig の設定例

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2

[*] で全ファイルに適用されます。

terraform fmt との関係

Terraform には公式フォーマッター terraform fmt があります。

# フォーマット実行
terraform fmt

# サブディレクトリも含めて実行
terraform fmt -recursive

# チェックのみ(CI用)
terraform fmt -check -recursive
ツール 役割
EditorConfig 編集時の基本スタイル(改行コード、文字コード等)
terraform fmt HCL 固有のフォーマット(ブロック整形、属性揃え等)

terraform fmt は HCL の構文を理解してフォーマットするため、EditorConfig だけでは対応できない整形も行います。両方を併用するのがおすすめです。

CI での活用例(GitHub Actions)

name: Terraform Format Check

on: [push, pull_request]

jobs:
  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: hashicorp/setup-terraform@v3
      - run: terraform fmt -check -recursive

まとめ

  • .editorconfig をプロジェクトルートに置くだけで使える
  • VS Code や JetBrains IDE など主要エディタは追加設定不要
  • 言語固有のフォーマッターと併用可能
  • チーム開発では導入しておきたい設定

参考

GitHubで編集を提案

Discussion