????????當(dāng)多人團隊進行一個項目開發(fā)時,每個人可能喜歡的編輯器不同辛辨,有人喜歡Webstrom、有人喜歡sublime瑟枫、還有人喜歡Hbuilder斗搞。
????????這個時候,問題便迎面而來慷妙,如何使使用不同編輯器的開發(fā)者能夠輕松愜意的遵守最基本的代碼規(guī)范呢僻焚?
? ? ????最后終于找到了editorConfig這個東東,發(fā)現(xiàn)在這里配置的代碼規(guī)范規(guī)則優(yōu)先級高于編輯器默認的代碼格式化規(guī)則膝擂。比如我使用的是Webstrom編輯器虑啤,我每一次寫完代碼之后隙弛,都習(xí)慣性的按下“Ctrl+Alt+L”快捷鍵去整理代碼格式。如果我沒有配置editorconfig咐旧,執(zhí)行的就是編輯器默認的代碼格式化規(guī)則驶鹉;如果我已經(jīng)配置了editorConfig,則按照我設(shè)置的規(guī)則來铣墨,從而忽略瀏覽器的設(shè)置室埋。
????????EditorConfig包含一個用于定義代碼格式的文件和一批編輯器插件,這些插件是讓編輯器讀取配置文件并以此來格式化代碼伊约。
? ? ????下面說說它的常用配置和使用方法:
????????一姚淆、常用屬性配置
? ??????????1、root<boolean>
? ? ? ? ? ? ? ? ?是否是頂級配置文件屡律,設(shè)置為true的時候才會停止搜索.editorconfig文件
? ??????????2腌逢、charset<"latin" | "utf-8" | "utf-8-bom" | "utf-16be" | "utf-16le">
? ? ? ? ? ? ? ? ?編碼格式
? ??????????3、indent_style<"tab" | "space">
? ? ? ? ? ? ? ? ?縮進方式
????????????4超埋、indent_size<number>
? ? ? ? ? ? ? ? ?縮進大小
? ??????????5搏讶、end_of_line<"lf" | "cr" | "crlf">
? ? ? ? ? ? ? ? ?換行符類型
? ??????????6、insert_final_newline<boolean>
? ? ? ? ? ? ? ? ?是否讓文件以空行結(jié)束
? ??????????7霍殴、trim_trailing_whitespace<boolean>
? ? ? ? ? ? ? ? ?是否刪除行尾空格
? ??????????8媒惕、max_line_length<number>
? ? ? ? ? ? ? ? ?最大行寬。
????????二来庭、常用文件名匹配
? ??????????1妒蔚、*?
? ? ? ? ? ? ? ? ?匹配除/之外的任意字符
????????????2、**
? ? ? ? ? ? ? ? ?匹配任意字符串
? ??????????3月弛、?
? ? ? ? ? ? ? ? ?匹配任意單個字符
????????????4肴盏、[name]
? ? ? ? ? ? ? ? ?匹配name字符
? ??????????5、[!name]
? ? ? ? ? ? ? ? ?不匹配name字符
????????????6帽衙、[s1,s2,s3]
? ? ? ? ? ? ? ? ?匹配給定的字符串
? ??????????7菜皂、[num1..num2]
? ? ? ? ? ? ? ? ?匹配num1到mun2直接的整數(shù)
????????三、使用方法
? ? ? ? ? ? ?1厉萝、下載編輯器的相關(guān)插件恍飘。
? ? ? ? ? ? ?2、在項目根目錄下冀泻,新建.editorconfig文件常侣。
? ? ? ? ? ? ?3、配置示例弹渔,如下圖所示:
????????四胳施、參考網(wǎng)站
? ? ? ? ? ? ?EditorConfig官網(wǎng):https://editorconfig.org
? ? ? ? ? ? ?Atom網(wǎng)站:https://atom.io/packages/editorconfig
? ? ? ? ? ? ?GitHub:https://github.com/sindresorhus/atom-editorconfig
????????五、使用建議
? ? ? ? ? ? ? 配合代碼檢查工具使用肢专,比如說:ESLint或TSLint舞肆,統(tǒng)一代碼風(fēng)格焦辅。
????????六、支持的編輯器
????????雖然editor編輯器的可用配置并不多椿胯,但目前現(xiàn)有的一些配置也差不多能滿足最基本格式需求筷登。