.editorconfig詳解

1、介紹

官網(wǎng)是這么介紹EditorConfig的台囱,“EditorConfig幫助開發(fā)人員在不同的編輯器和IDE之間定義和維護一致的編碼樣式。EditorConfig項目由用于定義編碼樣式的文件格式和一組文本編輯器插件組成读整,這些插件使編輯器能夠讀取文件格式并遵循定義的樣式簿训。EditorConfig文件易于閱讀,并且與版本控制系統(tǒng)配合使用米间∏科罚”

不同的開發(fā)人員,不同的編輯器屈糊,有不同的編碼風(fēng)格的榛,而EditorConfig就是用來協(xié)同團隊開發(fā)人員之間的代碼的風(fēng)格及樣式規(guī)范化的一個工具,而.editorconfig正是它的默認配置文件逻锐。

使用 Eslint 做代碼 lint夫晌,那么為什么還要使用 .editorconfig 呢?

  • Eslint 確實包含 .editorconfig 中的一些屬性昧诱,如縮進等慷丽,但并不全部包含,如 .editorconfig 中的 insert_final_newline 屬性 Eslint 就沒有鳄哭。Eslint 更偏向于對語法的提示要糊,如定義了一個變量但是沒有使用時應(yīng)該給予提醒。而 .editorconfig 更偏向于代碼風(fēng)格,如縮進等锄俄。
  • Eslint 僅僅支持對 js 文件的校驗局劲,而 .editorconfig 不光可以檢驗 js 文件的代碼風(fēng)格,還可以對 .py(python 文件)奶赠、.md(markdown 文件)進行代碼風(fēng)格控制鱼填。

總結(jié):根據(jù)項目需要,Eslint 和 .editorconfig 并不沖突毅戈,同時配合使用可以使代碼風(fēng)格更加優(yōu)雅苹丸。

2、示例

# 控制 .editorconfig 是否生效的字段
root = true
# 匹配全部文件
[*]
# 結(jié)尾換行符苇经,可選"lf"赘理、"cr"、"crlf"
end_of_line = lf
# 在文件結(jié)尾插入新行
insert_final_newline = true
# 刪除一行中的前后空格
trim_trailing_whitespace = true
# 匹配js和py結(jié)尾的文件
[*.{js,py}]
# 設(shè)置字符集
charset = utf-8

# 匹配py結(jié)尾的文件
[*.py]
# 縮進風(fēng)格扇单,可選"space"商模、"tab"
indent_style = space
# 縮進的空格數(shù)
indent_size = 4
[*.md]
trim_trailing_whitespace = false

# 以下匹配,類同
[Makefile]
indent_style = tab# tab的寬度tab_width = 4
# 以下匹配蜘澜,類同
[lib/**.js]
indent_style = space
indent_size = 2

[{package.json,.travis.yml}]
indent_style = space
indent_size = 2

其它字段應(yīng)該注意的有 indent_sizecharset施流,如果想要了解更多,參閱:.editorconfig 配置文件字段詳解 鄙信。

3瞪醋、文件語法

editorConfig配置文件需要是UTF-8字符集編碼的, 以回車換行或換行作為一行的分隔符。
斜線(/)被用作為一個路徑分隔符装诡,井號(#)或分號(;)被用作于注釋. 注釋需要與注釋符號寫在同一行银受。
【通配符】

*                匹配除/之外的任意字符串
**               匹配任意字符串
?                匹配任意單個字符
[name]           匹配name中的任意一個單一字符
[!name]          匹配不存在name中的任意一個單一字符
{s1,s2,s3}       匹配給定的字符串中的任意一個(用逗號分隔) 
{num1..num2}    匹配num1到num2之間的任意一個整數(shù), 這里的num1和num2可以為正整數(shù)也可以為負整數(shù)

【屬性】

所有的屬性和值都是忽略大小寫的. 解析時它們都是小寫的

indent_style    設(shè)置縮進風(fēng)格(tab是硬縮進,space為軟縮進)
indent_size     用一個整數(shù)定義的列數(shù)來設(shè)置縮進的寬度慎王,如果indent_style為tab蚓土,則此屬性默認為tab_width
tab_width       用一個整數(shù)來設(shè)置tab縮進的列數(shù)。默認是indent_size
end_of_line     設(shè)置換行符赖淤,值為lf蜀漆、cr和crlf
charset         設(shè)置編碼,值為latin1咱旱、utf-8确丢、utf-8-bom、utf-16be和utf-16le吐限,不建議使用utf-8-bom
trim_trailing_whitespace  設(shè)為true表示會去除換行行首的任意空白字符鲜侥。
insert_final_newline      設(shè)為true表示使文件以一個空白行結(jié)尾
root           表示是最頂層的配置文件,發(fā)現(xiàn)設(shè)為true時诸典,才會停止查找.editorconfig文件

4描函、注意事項、配置說明

1、如果是windows用戶舀寓,如果無法創(chuàng)建.editorconfig文件胆数,則需要先創(chuàng)建.editorconfig.文件,系統(tǒng)會自動重命名成.editorconfig文件互墓。

2必尼、EditorConfig的匹配規(guī)則是從上往下,即先定義的規(guī)則優(yōu)先級比后定義的優(yōu)先級要高篡撵。

3判莉、插件安裝,在GitHub上已經(jīng)有了各種流行編輯器的插件源代碼育谬,可根據(jù)說明安裝券盅。

4、對于VS Core斑司,對應(yīng)的插件名是EditorConfig for VS Code渗饮。

5但汞、這里列舉了VS Code支持的規(guī)則

  • indent_style
  • indent_size
  • tab_width
  • end_of_line
  • insert_final_newline
  • trim_trailing_whitespace
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宿刮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子私蕾,更是在濱河造成了極大的恐慌僵缺,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踩叭,死亡現(xiàn)場離奇詭異磕潮,居然都是意外死亡,警方通過查閱死者的電腦和手機容贝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門自脯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斤富,你說我怎么就攤上這事膏潮。” “怎么了满力?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵焕参,是天一觀的道長。 經(jīng)常有香客問我油额,道長叠纷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任潦嘶,我火速辦了婚禮涩嚣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好九府,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布败晴。 她就那樣靜靜地躺著,像睡著了一般衙吩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溪窒,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天坤塞,我揣著相機與錄音,去河邊找鬼澈蚌。 笑死摹芙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的宛瞄。 我是一名探鬼主播浮禾,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼份汗!你這毒婦竟也來了盈电?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤杯活,失蹤者是張志新(化名)和其女友劉穎匆帚,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旁钧,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡吸重,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了歪今。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嚎幸。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寄猩,靈堂內(nèi)的尸體忽然破棺而出嫉晶,到底是詐尸還是另有隱情,我是刑警寧澤焦影,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布车遂,位于F島的核電站,受9級特大地震影響斯辰,放射性物質(zhì)發(fā)生泄漏舶担。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一彬呻、第九天 我趴在偏房一處隱蔽的房頂上張望衣陶。 院中可真熱鬧柄瑰,春花似錦、人聲如沸剪况。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽译断。三九已至授翻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孙咪,已是汗流浹背堪唐。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翎蹈,地道東北人淮菠。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像荤堪,于是被迫代替她去往敵國和親合陵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354