简单来说,我们使用
EditorConfig
工具就是为了统一代码的编程风格,并且提高代码阅读质量。
EditorConfig
是用于跨不同的编辑器和 IDE
为多个开发人员维护一致的编码风格的配置文件。EditorConfig
项目由定义编码样式的文件格式和一组文本编辑器插件组成,编辑器插件通过读取文件并以已定义的样式格式化指定文件。EditorConfig
文件具有友好的阅读性,且能与版本控制系统配合良好的特点。
EditorConfig
配置文件需要是 UTF-8
字符集编码的, 以回车换行或换行作为一行的分隔符,斜线(/
)被用作为一个路径分隔符,井号(#
)或分号(;
)被用作于注释,并且注释需要与注释符号写在同一行。
1. 通配符
通配符和正则表达式中的基本一致
编号 | 通配符 | 对应含义说明 |
---|---|---|
1 | * |
匹配除/ 之外的任意字符串 |
2 | ** |
匹配任意字符串 |
3 | ? |
匹配任意单个字符 |
4 | [name] |
匹配name 中的任意一个单一字符 |
5 | [!name] |
匹配不存在name 中的任意一个单一字符 |
6 | {s1,s2,s3} |
匹配给定的字符串中的任意一个(用逗号分隔) |
7 | {num1..num2} |
匹配num1 到num2 之间的任意一个整数 |
2. 属性介绍
所有的属性和值都是忽略大小写的
编号 | 通配符 | 对应含义说明 |
---|---|---|
1 | indent_style |
设置缩进风格(tab 是硬缩进和space 为软缩进) |
2 | indent_size |
用一个整数定义的列数来设置缩进的宽度 |
3 | tab_width |
用一个整数来设置tab 缩进的列数,默认是indent_size |
4 | end_of_line |
设置换行符,值为lf 、cr 和crlf |
5 | charset |
设置编码,通常设置为utf-8 即可 |
6 | trim_trailing_whitespace |
设为true 表示会去除换行行首的任意空白字符 |
7 | insert_final_newline |
设为true 表示使文件以一个空白行结尾 |
8 | root |
表示是最顶层的配置文件 |
3. 配置示例
下面就是官网给出的配置示例
在当前项目根目录下添加 .editorconfig
文件,添加如下配置,即可生效。
# EditorConfig is awesome: https://EditorConfig.org
# 表示是最顶层的配置文件
# 发现设为true时,才会停止查找.editorconfig文件
root = true
# 对于所有的文件的配置
# 设置始终在文件末尾插入一个新行
[*]
end_of_line = lf
insert_final_newline = true
# 对于所有的JS和PY文件的配置
# 设置文件的字符集为utf-8格式
[*.{js,py}]
charset = utf-8
# 控制PY文件缩进类型和缩进大小
[*.py]
indent_style = space
indent_size = 4
# 设置Makefile文件使用tab缩进
[Makefile]
indent_style = tab
# 设置在lib目录下所有JS的缩进样式
[lib/**.js]
indent_style = space
indent_size = 2
# 设置确切文件package.json和.travis/.yml的缩进类型
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2