2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

📗【翻蚳】EditorConfigの仕様のなんちゃっお日本語蚳ずおすすめ蚭定

Last updated at Posted at 2021-07-23

ゞェネレヌタ䜜りの緎習で、EditorConfigの蚭定ゞェネレヌタヌを䜜りたした。
今回は、その぀いでに日本語蚳をしたものを掲茉したす👀

その前に、EditorConfigずは

コヌディングするずきの基本の1぀👀
むンデントの皮類、改行コヌドなどを統䞀しおくれる倧倉有名な仕組みです。

Gitで䜙蚈な差分で珟れるず面倒な䜙蚈な空癜や、改行コヌドの違いも解決しおくれる優れものです。
Visual Studio Codeはもちろん、さたざたな゚ディタで動かすこずができたす。

プロゞェクトフォルダの䞭にEditorConfigファむル.editorconfigを䜜り、ファむルの皮類ごずにルヌルを蚘述しおいきたす。
VS Codeの堎合は専甚の゚クステンションがむンストヌルされた状態で、EditorConfigファむルを含むプロゞェクトの䞭のファむルを保存するず、EditorConfigによっおコヌドが敎えられたす。

EditorConfigの仕様日本語蚳

はじめに、いく぀かこの日本語蚳で登堎する甚語を玹介したす。

  • 蚭定ファむルEditorConfigの蚭定ファむルで、぀たりは「.editorconfig」のこず
  • コア蚭定ファむルを解析する機胜のこず
  • セクションヘッダ蚭定ファむルにおいおは、glob圢匏のファむルパスのこず
  • キヌず倀のペア蚭定ファむルに蚘茉するルヌル1぀1぀のこず
# キヌず倀のペア
root = true

# セクションヘッダ
[*]

# キヌず倀のペア
indent_size = 2

以䞋、原文からかい぀たんだ日本語蚳です。
原文はこちらEditorConfig Specification

File Format - .editorconfigのファむル圢匏

蚭定ファむルはINIファむルのようなフォヌマットで蚘述されたす。
この蚭定ファむルでは、各行頭の空癜文字は無芖されたす。

各行はそれぞれ次のいずれかである必芁がありたす。

  • 空行空癜文字のみ
  • コメント ;たたは#で始たりたす
    • 行内で空癜文字以倖の埌にこれらの蚘号を挿入しおも、コメントずしお解釈されず、セクション名やペア埌述の䞀郚ずしおも解釈されたせん。なお、これは将来的に倉曎される可胜性があるため、いずれにしおも非掚奚です。
  • セクションヘッダ[で始たり、]でおわりたす
    • この行では角括匧の倖偎に空癜文字以倖を蚘述できたせん
    • 角括匧の䞭には任意の文字を入れるこずができたす
      • パスの区切りにはスラッシュを甚いたす/
      • Windowsの堎合でも、バックスラッシュをパスの区切りずしお䜿うこずはできたせん
  • キヌず倀のペア以䞋、ペア=で区切られたキヌず倀

これらに圓おはたらない行は無芖されたす。

蚭定ファむルは、改行コヌドが「LF」たたは「CRLF」、文字コヌドが「UTF-8」である必芁がありたす。

Glob Expressions - セクション名の曞き方

蚭定ファむルのセクション名は、.gitignoreで有効なフォヌマットず同じglobを䜿ったファむルパスです。
これは、Unix shell-styleのワむルドカヌドによるパタヌンマッチをサポヌトしおいたす。
globでは、次の蚘号を特殊文字ずしお認識したす。

蚘号 圹割
* パスの区切り文字/を陀く任意の文字列
** 任意の文字列
? パスの区切り文字/を陀く任意の䞀文字
[seq] 「seq」のうち任意の䞀文字
[!seq] 「seq」以倖の任意の䞀文字
{s1,s2,s3} カンマ区切りの文字列のうちいずれかこれは入れ子にできたす
{num1..num2} num1〜num2の間の任意の敎数num1ずnum2は負の倀でもOK

特殊文字ずしお解釈されないようにするには、バックスラッシュ\を甚いお゚スケヌプしたす。

コアは、1024文字たでのセクション名を受け入れたなければなりたせん。
各実装が独自に䞊限を蚭定するか、明瀺的な䞊限を蚭定しないこずができたす。

File Processing - 蚭定ファむルの読み蟌み

EditorConfigはファむル名を枡されるず、そのファむルのディレクトリずすべおの芪ディレクトリから蚭定ファむルデフォルトでは.editorconfigずいう名前を怜玢したす。
存圚しないディレクトリは、存圚する空のディレクトリずしお扱われたす。

芋぀けられたすべおの蚭定ファむルは、枡されたファむル名に䞀臎するセクション名をも぀セクションを怜玢したす。

蚭定ファむルのrootがtrueに蚭定されおいる蚭定ファむルたでたどり着いた堎合、たたはファむルシステムのルヌトディレクトリたで到達したずき、怜玢を終了したす。

蚭定ファむルは䞊䜍ディレクトリから䞋䜍ディレクトリの順に読み蟌たれ、最埌に読み蟌たれたルヌルが優先されたす。
耇数の蚭定ファむルにマッチするセクションがある堎合、より近い蚭定ファむルのルヌルが最埌に読たれるため、より近いファむルのペアが優先されたす。

Supported Pairs - サポヌトされおいるペア

蚭定ファむルのセクションは、むコヌル=で区切られたキヌず倀のペアで構成されおいたす。
rootを陀いお、すべおのペアはセクションヘッダより埌の行に蚘述しなければなりたせん。

EditorConfigのプラグむンは、認識されおいないキヌや無効なもの、サポヌトされおいないキヌの倀を無芖しなければなりたせん。

この仕様のこのバヌゞョンで定矩されおいるすべおのキヌず、それらに関連するサポヌトされおいる倀のリストは、次の通り。

䟿宜䞊、䞀郚次のような独自の衚珟を甚いたす

  • number - 半角数字を指したす
  • boolean - trueたたはfalseのいずれかを指したす
キヌ名 蚭定可胜な倀  備考
indent_style "space"
"tab"
むンデントに「スペヌス」「タブ」どちらを䜿うか決めたす。
なお、倀は倧文字小文字を考慮したせん。
indent_size number
"tab"
むンデントの空癜文字数を決定したす。

この倀がtabの堎合、tab_widthの倀が利甚されたす。
なお、倀は倧文字小文字を考慮したせん。
tab_width number タブ文字の幅を決めたす。
デフォルトはindent_sizeの倀が利甚されるため、通垞は指定する必芁はありたせん。
end_of_line "lf"
"cr"
"crlf"
改行コヌドを決定したす。
なお、倀は倧文字小文字を考慮したせん。
charset "latin1"
"utf-8"
"utf-8-bom"
"utf-16be"
"utf-16le"
文字コヌドを決定したす。
utf-8-bomは非掚奚です。
trim_trailing_whitespace boolean trueを蚭定するず、ファむルの保存時に行末改行文字より前の空癜文字を削陀したす。
insert_final_newline boolean trueを蚭定するず、ファむルの保存時に末尟に1぀の空行が远加されたす。
root boolean trueを蚭定するず、その蚭定ファむルよりも䞊䜍ディレクトリを怜玢しなくなりたす。
なお、蚭定ファむルの先頭に蚘述する必芁がありたす。

いずれのペアも、倀にunsetを蚭定するこずができたす。この倀は、そのキヌがすでに蚭定枈みだったずしおも、それを無効にしたす。
たずえば、indent_size = unsetを远加するず、indent_sizeの定矩が無効になりたす゚ディタのデフォルト蚭定が参照される。

ペアのキヌは、倧文字ず小文字を区別せず、解析埌にすべお小文字になりたす。

コアは、1024〜4096文字たでの長さのキヌず倀を受け入れたなければなりたせん。
各実装が独自に䞊限を蚭定するか、明瀺的な䞊限を蚭定しないこずができたす。

Suggestions for Plugin Developers - プラグむン開発者ぞの提案

準備䞭。ずりあえず、GitHub wikiのPlugin Guidelinesを読んでください。


䞀郚割愛しおいる郚分もありたすが、こちらで以䞊です。
いたたでずっず䜿っおきたのに、indent_sizeにtabなんお倀が蚭定できたなんお知りたせんでした🙈

最埌におすすめ蚭定

個人的なおすすめ蚭定はこちら( ˘ω˘ )

最新版はこちらhttps://gist.github.com/heppokofrontend/1587734087a9476dfe3fc16fb770bb96

.editorconfig
root = true

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

[*.{md,mdx}]
trim_trailing_whitespace = false

[*.ps1]
charset = utf-8-bom

# FOR WINDOWS
[*.{cmd,bat}]
end_of_line = crlf

基本的にはLFのむンデント2、䜙蚈な空癜無し。ただ、Markdownでは行末のスペヌスは改行を衚すので、トリミングされないようにfalseを指定しおいたす。
PowerShell甚のファむルはBOM぀きUTF-8でなければならないため指定しおいお、Windows向けのバッチファむルはCRLFでなければならないため指定しおいたす。

運甚が長くなるこずが予想されたり、さたざたな環境の開発者が参画するこずが予芋される状況での開発環境構築では、「これをされたら困る〜」ずいうこずが起こらないように蚭定を曞いおおくずよいず思っおいたす。

よいコヌディングラむフを〜

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?