在项目开发过程中,如果涉及到多人一起合作开发,以及在开发过程中,还会有代码 review 等相关操作,这时候,团队内一种统一风格的代码编写方式显得尤为重要。而目前市面上的代码编辑器又非常多,代码格式化的工具或插件等也有很多,如要达到我们的风格一致的要求,借助工具的帮助最为直接。
EditorConfig 即是一款定义各代码风格的工具,其在很多工具中都能得到支持,如:WebStrom、Atom、Sublime、VSCode等。
1 配置项说明
EditorConfig 文件使用 INI 格式,允许在分段名(section names)中使用 and,分段名是全局的文件路径,格式类似于 gitignore。斜杠(/)作为路径分隔符,# 或 ; 作为注释。注释应该单独占一行。
EditorConfig 文件使用 utf-8 格式,crlf 或 lf 作为换行符。
1 | # 表明是最顶层配置文件,发现设为 true 时,才会停止查找 .editorconfig 文件 |
以上即是相关配置项,及其说明。目前所有的属性名和属性值都是大小写不敏感的,编译时会自动将其转换为小写。通常,如果没有明确指定某个属性,则会使用编辑器的配置,而 EditorConfig 不会处理。
另外,并不是所有的编辑器插件都支持以上全部配置属性,项目 Wiki 上有兼容配置属性的详细参考。
推荐不要指定某些属性,如,tab_width 不需要特别指定,除非它与 indent_size 不同。同样的,当 indent_style 设置为 tab 时,不需要配置 indent_size ,这样方便阅读者使用他们习惯的缩进格式。仍没有规范化的属性,就最好不要设置它,如:end_of_line。
2 通配符(Wildcard Patterns)
通配符 | 说明 |
---|---|
* | 除路径分隔符 / 外匹配所有字符串字符 |
** | 除路径分隔符 / 外匹配所有字符串字符 |
? | 匹配所有单个字符 |
[name] | 匹配 name 字符 |
[!name] | 匹配非 name 字符 |
{s1,s2,s3} | 匹配任意给定的字符串,通过逗号分隔 |
特殊字符需要通过转义符进行转义,使得特殊字符不会被当做通配符解析。
3 配置示例
1 | root = true |