| エディター設定 | |
|---|---|
| フォーマットの種類 | INI設定ファイル |
| 標準 | spec.editorconfig.org |
| オープンフォーマット? | はい |
| フリーフォーマット? | はい |
| Webサイト | editorconfig.org |
EditorConfigは、構文強調表示、テキストエディタ、統合開発環境(IDE)のオープン仕様およびファイル形式であり、特にグループで共同作業を行う際に、一貫したコーディングスタイルを維持することを目的としています。[ 1] [ 2]複数のエディタや個人が同じ規約を使用するのに役立ちます。設定はファイルに保存され、複数の人が共有したり、複数のエディタ(同じ人または複数)で使用したりできます。[3] [4]行末の文字やインデントの管理方法などの規約を使用して、さまざまなプログラミング言語やその他の構造化テキストファイルをフォーマットするルールを定義します。[5]
コンセプト
プロジェクトのウェブサイトには、「EditorConfigは、複数の開発者が様々なエディタやIDEを使用して同じプロジェクトに取り組む際に、一貫したコーディングスタイルを維持するのに役立ちます。EditorConfigプロジェクトは、コーディングスタイルを定義するためのファイル形式と、エディタがファイル形式を読み取り、定義されたスタイルに準拠できるようにするテキストエディタプラグインのコレクションで構成されています。EditorConfigファイルは簡単に読み取ることができ、バージョン管理システムと連携して動作します。」と記載されています。[6]
仕様
出典: [7]
設定は通常、UTF-8でエンコードされたテキストファイル(.editorconfig )に保存されます。一部のツールでは、スタイル設定をEditorConfigファイルとして保存できます。[8] 各行:
- 空白文字のみ使用可能
- またはで始まるコメント;#
- セクション ヘッダー。角括弧 [ で始まり、角括弧 ] で終わります。
- セクションヘッダーには括弧の外側に空白以外の文字を含めることはできません。
- 括弧内には空白/タブを含む任意の文字を含めることができます。
- /パス区切り文字として
スラッシュ文字を使用する
- \Windows でも、バックスラッシュは禁止されています。
- キーと値=を区切るキーと値のペア
その他の行形式は無効です。インラインコメントはサポートされていません。行頭以外の場所に ';または '文字がある場合、その行のテキストの一部とみなされます。文字のエスケープはサポートされていません。#
ファイルのパーツ/セクション
- プリアンブル: 最初のセクションの前にあるオプションのペア。
key=value - セクション名: 文字列[ ]
- セクション: 次のセクションの開始までセクション名に続くキー値のペア。
グロブ表現
セクション名は、 .gitignoreに似た形式を使用するファイル パス グロブであり、Unix 規則に基づいています。
| キャラクター | 一致したファイル |
|---|---|
| * | パス区切り文字を除く任意の文字列(任意の長さ)(/ |
| ** | 任意の文字列 |
| ? | 任意の1文字 |
| [seq] | シーケンス内の任意の 1文字 |
| [!seq] | seqに 含まれない任意の1文字 |
| {s1,s2,..sn} | カンマ区切りの文字列リストのいずれか。ネスト可能です。{somestring} はリテラル値 ' ' に一致するため(おそらく意図したものではないため)、リストには複数の文字列を含める必要があります{somestring}。 |
| {n1..n2} | n 1と n 2の間の整数に一致します(つまり、一致します) |
ファイルの場所
EditorConfig プラグインは、既存のファイルが含まれている同じディレクトリ内、およびそのファイルの親ディレクトリ内で、ルート ファイル パス ( Linux / Unix / macOSの場合は/、Microsoft Windows の場合はC:など) に達するまで、または、次のような行が含まれている .editorconfig ファイルを見つけるまで、 .editorconfigという名前のファイルを検索します。
root=true
最も新しく見つかったルールが、読み込まれた順に優先されます。つまり、ファイルと同じディレクトリにあるルールは、上位ディレクトリのルールよりも優先されます。
ファイル形式
エディター構成では、共通のINI構成ファイル形式を使用します。
スタイルオプション
| 鍵 | オプションを設定するための設定 |
|---|---|
| インデントスタイル | タブ文字またはスペースを 使用する"tab"か設定する "space" |
| インデントサイズ | タブあたりのスペース数、またはタブ ストップの幅を定義する整数。 |
| タブ幅 | これは通常、 indent_sizeがデフォルトとなるため指定されません。 |
| 行末 | 改行の表示方法を制御には、 、、またはを設定します。 "lf""cr""crlf" |
| 文字セット | 文字セットを制御するための文字エンコード「latin1」、「utf-8」、「utf-8-bom」、「utf-16be」または「utf-16le」。 |
| 末尾の空白をトリムする | 「 true 」に設定すると、改行文字の前の空白文字が削除されます。 |
| 最後の改行を挿入 | 「true」の場合はファイルが改行で終了し、「false」の場合は改行が防止されます。 |
| 根 | 特別なプロパティ(例:ファイルの先頭、セクション外に指定)。現在のファイルで.editorconfigファイルの検索を停止するには、 「 true 」に設定します。(つまり、上位ディレクトリで EditorConfig ファイルの検索を停止します。) |
一部のツールでは、 max_line_length(指定した文字数を超えると強制的に改行する)などの追加オプションをサポートしています( Emacs、Vim、Atom、その他いくつかでサポートされています)。
実装
多くの人気エディタがこの仕様のサポートを採用しています。[9]プロジェクトのGitHubページには、Goプログラミング言語、[10] Cプログラミング言語、[11] Pythonプログラミング言語、[12]で書かれた ライブラリがあり、Node.JS ライブラリもあります。[ 13 ]プロジェクトサイトには、利用可能なエディタの包括的なリストがあります。[14]
プラグインを使わずに動作すると報告されたエディター
Gitea、GitHub、IntelliJ IDEA、[15] PyCharm、BBEdit、Xcode 16、JetBrainsのエディタ、[16] Kate、Emacs [17] Komodo、Visual Studio、Vim / Neovim。
プラグインを必要とするエディタ
一部のエディタではプラグインのインストールが必要です: Eclipse IDE、Atom、Geany、JEdit、Notepad++、NetBeans、Visual Studio Code、[18] Sublime Text
プラグインを必要とするビルド環境
Apache Ant、Gradle、Apache Maven
EditorConfigをサポートしていないエディター
EditorConfigをサポートしていない様々なテキストエディタやIDEのリストは保持されていません(例えば、Spyder IDE [19]は過去にサポートが言及されていましたが、まだ含まれていないようです。[20] [21]
EditorConfigを実装するその他のソフトウェア開発ツール
プリティアー[22]
参考文献
- ^ Hombergs, Tom (2021-02-15). 「EditorConfigを使った簡単なコードフォーマット」. reflectoring.io . 2024年4月24日閲覧。
- ^ 「EditorConfigで一貫したコーディングスタイルを定義する」。Microsoft Build。Microsoft。2024年4月。 2024年4月1日閲覧。
- ^ “EditorConfig”. X (旧称Twitter) . 2024年4月24日閲覧。
- ^ The Codeholic. 「.editorconfigとは何か - EditorConfig完全ガイド」YouTube . 2024年4月24日閲覧。
- ^ 「コード分析ルールの構成ファイル」。Microsoft Build . 2023年10月6日. 2024年4月24日閲覧。
- ^ "EditorConfig"". EditorConfig . 2024年4月23日閲覧。
- ^ 「EditorConfig仕様」 。 2024年4月24日閲覧。
- ^ 「コード スタイル オプションとコードのクリーンアップ - Visual Studio (Windows)」。2023年5月15日。
- ^ 「.editorconfig とは何か?」Geeks for Geeks 2024年3月7日. 2024年4月24日閲覧。
- ^ “Editorconfig/Editorconfig-core-go”. GitHub . 2024年4月24日閲覧。
- ^ “Editorconfig/Editorconfig-core-c”. GitHub . 2024年4月24日閲覧。
- ^ “Editorconfig/Editorconfig-core-py”. GitHub . 2024年4月24日閲覧。
- ^ “Editorconfig”. 2023年7月2日. 2024年4月24日閲覧。
- ^ 「EditorConfigを使用したプロジェクト」。GitHub 。2024年4月24日閲覧。
- ^ 「EditorConfig | IntelliJ IDEA」。
- ^ 「EditorConfig - IntelliJ IDEs プラグイン | Marketplace」 。 2024年4月24日閲覧。
- ^ 「GNU Emacs NEWS、Emacs 30.1の新モードとパッケージ」。2025年2月23日。 2025年7月16日閲覧。
- ^ 「EditorConfig for VS Code - Visual Studio Marketplace」 。 2024年4月24日閲覧。
- ^ 「.editorconfig のサポートを追加 #2464」。Syder -ide Github。2015年6月2日。
- ^ 「グローバル設定の環境変数 'EDITORCONFIG' · Issue #465 · editorconfig/Editorconfig」。GitHub 。 2024年4月24日閲覧。
- ^ 「エディター - Spyder 5 ドキュメント」 。 2024年4月24日閲覧。
- ^ 「静的サイト向けにESLint、Prettier、EditorConfigを設定する方法」DEV Community . 2022年1月25日. 2024年4月24日閲覧。