EditorConfig ジェネレーター
リポジトリのルートに置いた .editorconfig は、このプロジェクトがファイルをどう整形するかを最新の IDE に伝え、タブかスペースかの議論をファイルごとに決着させます。Python は 4 スペース、JavaScript は 2 スペース、Makefile はタブ(必須)。このジェネレーターはあなたの書式設定(インデントのスタイルとサイズ、改行コード、文字コード、最大行長、末尾の改行、行末の空白の除去)から .editorconfig を組み立て、よく使う 2 つの上書きを常に含めます:[*.md] は Markdown の改行用に末尾の空白を残し、[Makefile] は make が必須とするタブを使います。
.editorconfig の作り方
-
1
全体の既定値を設定する
文字コード(既定は utf-8)、改行コード(lf か crlf)、インデントのスタイルとサイズ、最大行長、末尾への改行の挿入、行末の空白の除去。
-
2
組み込みの上書きを確認する
このジェネレーターは常に `[*.md]`(`trim_trailing_whitespace = false`、Markdown は末尾の空白で改行するため)と `[Makefile]`(`indent_style = tab`、make 自体が必須とする)を追加します。
-
3
ファイルをコピーする
コピーボタンで生成された `.editorconfig` を取得し、リポジトリのルートに置きます。
-
4
あとで拡張する
言語ごとのルールが必要ですか? 独自のセクションを追加してください。例:`[*.py]` に `indent_size = 4`。
.editorconfig の役割
プロジェクトのルート(または任意のディレクトリ)に置いた .editorconfig というファイルは、書式の規約を宣言します。EditorConfig に対応したエディタ(主要な IDE と最近のほとんどのテキストエディタ)は、ファイルを開いたときにそのルールを適用します。
出力例
既定の設定(スペース、サイズ 4、LF、utf-8)では、次のように生成されます:
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab
主なディレクティブ
| ディレクティブ | 指定できる値 | 補足 |
|---|---|---|
| root | true / false | プロジェクトのルートで true にすると探索がそこで止まる |
| charset | utf-8, utf-8-bom, latin1, utf-16-be, utf-16-le | 既定は utf-8 |
| end_of_line | lf, crlf, cr | クロスプラットフォームなら lf、Windows 専用リポジトリなら crlf |
| indent_style | space, tab | |
| indent_size | 整数 | スペースの数。tab のときは無視される |
| tab_width | 整数 | タブの表示幅(既定は indent_size と同じ) |
| insert_final_newline | true / false | POSIX 準拠のファイルにする |
| trim_trailing_whitespace | true / false | Markdown ではオフにする(行末の空白が改行を意味するため) |
言語ごとの慣習の一覧
| 言語 / ファイル | 慣習 |
|---|---|
| JS, TS, JSON | 2 スペース |
| HTML, CSS, YAML | 2 スペース |
| Python | 4 スペース(PEP 8) |
| PHP | 4 スペース(PSR-12) |
| Ruby | 2 スペース |
| Go | タブ(gofmt が強制) |
| Rust | 4 スペース(rustfmt が強制) |
| Java | 4 スペース |
| Makefile | タブ(make 自体が必須とする) |
| Markdown | 行末の空白を残す(<br> に使う) |
| バッチ / CMD (.bat) | 改行コードは crlf |
落とし穴:Markdown の行末の空白
Markdown では行末に半角スペースを 2 つ置くと「ここに <br> を入れる」という意味になります。.editorconfig がすべてのファイルで行末の空白を除去すると、その改行が消えてしまいます。[*.md] に対して trim_trailing_whitespace = false で上書きしてください。
お使いの IDE は対応していますか?
ネイティブ対応:VS Code、JetBrains の IntelliJ 系、Sublime Text、Vim(プラグイン経由)、Emacs(プラグイン経由)、Atom、Notepad++、Xcode。標準で EditorConfig に対応していないエディタでも、たいていはプラグインがあります。このファイルは機械可読なので、リンターやフォーマッターからも参照できます。
よくある質問
プロジェクトのルートに root = true を付けて置きます。特定のパスを上書きするために、サブディレクトリへ追加の .editorconfig を置くこともできます。探索はツリーを上へたどり、最初に見つかった root = true のファイルで止まります。
いいえ。EditorConfig はどのエディタでも空白や改行コードといった基本を扱います。Prettier や言語ごとのリンターは、より踏み込んだスタイル規則(クォート、セミコロン、末尾カンマなど)を扱います。両者は互いを補い合う関係です。
リポジトリ内の Windows ツールが実際に必要とするなら end_of_line = crlf を設定します。より良い方法は、end_of_line = lf をコミットしたうえで .gitattributes に * text=auto を追加することです。こうすると git がコミット時に改行コードを正規化し、チェックアウト時は OS に合った改行になります。
いいえ。選択した内容はファイルを生成するためだけに使われ、サーバーには何も保存されず、ページを離れた後も残りません。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
HTML フォーマッター
ブラウザ内で HTML を 2 または 4 スペースで整形します。HTML はアップロードも検証もされません。
変更ログジェネレーター
分類した項目から Keep a Changelog 形式の Markdown セクションを作成します。Added、Changed、Fixed、Removed の各カテゴリに項目を貼り付け、Markdown かプレーンテキストを選んで出力をコピーするだけです。
このツールは他の言語でも利用できます
- EditorConfig Generator [EN]
- Trình tạo EditorConfig [VI]
- EditorConfig-Generator [DE]
- Generador de EditorConfig [ES]
- EditorConfig-generator [SV]
- EditorConfig 생성기 [KO]
- Gerador de EditorConfig [PT]
- Generator EditorConfig [PL]
- Générateur EditorConfig [FR]
- EditorConfig-generator [NL]
- 编辑器配置生成器 [ZH]
- مولد EditorConfig [AR]
- เครื่องมือสร้าง EditorConfig [TH]
- EditorConfig Oluşturucu [TR]
- Generator EditorConfig [ID]
- Generatore EditorConfig [IT]
- Генератор EditorConfig [RU]