1.前言说明
在团队多人开发的项目中,不能保证团队成员都使用相同的编辑器,那么不同的编辑器之间的格式设置有可能各不相同,就无法保证项目代码格式的统一,往往会出现意想不到的问题。比如缩进大小、选项卡宽度、行尾字符、编码等。
那么如何保证团队代码在多人协同开发,使用编辑器格式不一的情况下仍然保证相同的格式呢,这就是EditorConfig 要做的事情。
2.什么是EditorConfig
引用官方解释
EditorConfig 有助于为跨各种编辑器和 IDE 处理同一项目的多个开发人员维护一致的编码风格。EditorConfig 项目由用于定义编码样式的文件格式和一组文本编辑器插件组成,这些插件使编辑器能够读取文件格式并遵循定义的样式。
结构组成:
- EditorConfig插件:不是所有编辑器都默认支持,如VS Code需要自行下载,webstrom默认支持。点击EditorConfig官网查看详细。
- . editorconfig自定义文件:. editorconfig 自定义文件是用来定义编辑器的编码格式规范,编辑器的行为会与 . editorconfig 文件中定义的一致,并且其优先级比编辑器自身的设置要高。
EditorConfig 插件会读取 . editorconfig 文件中定义的内容,应用于编辑器。
3. . editorconfig文件格式
在 EditorConfig 文件中,每行上的所有开头空格都被认为是不相关的。每行必须是以下之一:
- 空白
- 注释,使用(#)或分号(;)进行注释
- 部分标题
- 键值对,键=值
EditorConfig 文件默认编码是 UTF-8
EditorConfig 文件从上到下读取,最先发现的规则优先。
如果.editorconfig 文件没有进行某些配置,则使用编辑器默认的设置
4.支持的属性
# 表示是最顶层的配置文件,发现值为true时,才会停止查找.editorconfig文件
root
# 设置缩进风格 tab or space
indent_style
# 定义每个缩进风格缩进空格数
indent_size
# 用一个整数定义tab缩进的列数
tab_width
# 设置换行符 lf cr crlf
end_of_line
# 设置编码格式 utf-8
charst
# 设为true表示使文件以一个空白行结尾
insert_final_newline
# 设为true表示会去除换行行首的任意空白字符
trim_trailing_whitespace