一、editorconfig概述
在团队开发中,统一的代码格式是必要的。但是不同开发人员的代码风格不同,代码编辑工具的默认格式也不相同,这样就造成代码的differ。而editorConfig可以帮助开发人员在不同的编辑器和IDE中定义和维护一致的编码风格。
editorConfig不是什么软件,而是一个名称为.editorconfig的自定义文件。该文件用来定义项目的编码规范,编辑器的行为会与.editorconfig 文件中定义的一致,并且其优先级比编辑器自身的设置要高,这在多人合作开发项目时十分有用而且必要
有些编辑器默认支持editorConfig,如webstorm;而有些编辑器则需要安装editorConfig插件,如ATOM、Sublime、VS Code等
当打开一个文件时,EditorConfig插件会在打开文件的目录和其每一级父目录查找.editorconfig文件,直到有一个配置文件root=true
EditorConfig的配置文件是从上往下读取的并且最近的EditorConfig配置文件会被最先读取. 匹配EditorConfig配置文件中的配置项会按照读取顺序被应用, 所以最近的配置文件中的配置项拥有优先权
如果.editorconfig文件没有进行某些配置,则使用编辑器默认的设置
二、editorconfig语法
editorConfig配置文件需要是UTF-8字符集编码的, 以回车换行或换行作为一行的分隔符,斜线(/)被用作为一个路径分隔符,井号(#)或分号(;)被用作于注释. 注释需要与注释符号写在同一行
- *匹配除/之外的任意字符串
- **匹配任意字符串
- ? 匹配任意单个字符
- [name] 匹配name中的任意一个单一字符
- [!name] 匹配不存在name中的任意一个单一字符
- {s1,s2,s3} 匹配给定的字符串中的任意一个(用逗号分隔)
- {num1..num2} 匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数
属性 | 可选值 | Note |
---|---|---|
charset | latin1 utf-8。一般用这个。 utf-16be |
文件编码 可选值 |
indent_style | space tab |
缩进类型 可选值 |
indent_size | 整数 一般设为2或4 tab |
缩进数量 可选值 |
insert_final_newline | true or false | 是否在文件的最后插入一个空行。可选值 |
end_of_line | lf, 一般用这个。 crlf cr |
换行符格式。说明见 Wiki:换行。可选值 |
trim_trailing_whitespace | true or false | 是否删除行尾的空格。可选值 |
更多属性请移步 这里。
可见 EditorConfig 能设置的编码规范不多,但也基本够用。EditorConfig 和 ESLint 之类的编码规范验证工具一起使用是不错的选择。
三、editorconfig范例
1 | # http://editorconfig.org |