📝
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 など主要エディタは追加設定不要
- 言語固有のフォーマッターと併用可能
- チーム開発では導入しておきたい設定
Discussion