Appearance
代码编辑器的配置信息独立维护不对外共享。使用不同编辑器打开同一份文件,如果编辑器配置不统一,显示效果和输入内容很有可能不一致,单个编辑器独立操作只是存在隐患,在多编辑器或跨编辑器的情况下,隐患就容易升级为问题,最终导致代码处于混杂状态
因此 EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。如「设定缩进使用 Tab 还是 Space」,「一个 Tab 占用多少列」,「是否在文件末尾显示空行」等等
比如,一个 Tab 占用两列的 Sublime,一个 Tab 占用四列的 VSCode ,打开同一份文件显示效果不同
单个编辑器独立操作只是存在隐患,在多编辑器或跨编辑器的情况下,隐患就容易升级为问题,最终导致代码处于混杂状态。
支持的市面编辑器
EditorConfig 配置基本覆盖了主流上大部分浏览器,这些浏览器分为两种 内置自带解析EditorConfig 和需要安装插件提过EditorConfig 解析的两大类
不需要安装插件的
需要安装插件的
以 vscode 为例 需要安装下图的插件才能使用
简单配置说明
配置 .editorconfig 文件
yaml
# http://editorconfig.org
root = true
[*] # 表示所有文件适用
charset = utf-8 # 设置文件字符集为 utf-8,不同编译器可能存在默认不是utf-8解码
indent_style = space # 缩进风格(tab | space)
# tab_width = 2 设置 tab 所占列数。默认是indent_size
indent_size = 2 # 缩进大小
end_of_line = lf # 控制换行类型(lf | cr | crlf)
trim_trailing_whitespace = true # 去除行尾的任意空白字符
insert_final_newline = true # 始终在文件末尾插入一个新行
[*.md] # 表示仅 md 文件适用以下规则
max_line_length = off
trim_trailing_whitespace = false
Prettier 还需要 EditorConfig
EditorConfig 解决了编辑器配置层面的编码风格一致性问题。作用于预览和输入阶段,Prettier 在保存和提交阶段重新组织代码,Prettier 会成为代码形态的最终决定者
EditorConfig 覆盖所有类型的文件,可以采用 EditorConfig 管理相交属性,其他属性则由 Prettier 控制。
EditorConfig 使不同编辑器可以保持同样的配置。因此,我们得以无需在每次编写新代码时,再依靠 Prettier 来按照团队约定格式化一遍(译注:出现保存时格式化突然改变的情况)。当然这需要在你的 IDE 上安装了必要的 EditorConfig 插件或扩展。
并且关于代码风格的部分并未涉及,比如是否「需要在语句末尾添加分号」,「字符串使用单引号还是双引号包裹」,「多行对象的书写规范」等等。这些都是 Prettier 的工作范畴,而不是 EditorConfig 的。
以 VSCode 为例,但 EditorConfig 支持很多编辑器。
在项目中增加自定义的编辑器配置:
.editorconfig
yaml
[*]
end_of_line = lf
charset = utf-8
indent_style = space
如果安装了 the EditorConfig VSCode extension,编辑器将自动获知该如何格式化你的文件。你也能在编辑器右下角看到相应的信息
这意味着 Prettier 和 EditorConfig 共享了相同的配置选项,所以要注意是两者配置最好统一
yaml
# EditorConfig
end_of_line
indent_style
indent_size/tab_width
max_line_length
yaml
# Prettier
"endOfLine"
"useTabs"
"tabWidth"
"printWidth"
其实如果 配置了 Prettier 最后代码一定是按照 Prettier 为准,EditorConfig 所能提供的就是编写阶段不用在手敲代码时候 去注意使用的配置细节,但是如果你配置 Prettier ,它是在保存阶段 正是如此本质上他会覆盖 EditorConfig,你可以理解编写时候处理让你更好的书写代码的作用