兼容 EditorConfig 规范

EditorConfig 介绍

EditorConfig 可以帮助开发者在不同的编辑器和IDE之间定义和维护一致的代码风格。EditorConfig 包含一个用于定义代码格式的文件和一批编辑器插件,这些插件可以让编辑器读取配置文件并依此格式化代码。EditorConfig 的配置文件十分易读,并且可以很好的在 VCS(Version Control System)下工作。

文件格式详情

EditorConfig 文件使用 INI 格式,目的是可以与 Python ConfigParser Library 兼容,但是允许在分段名(section names)中使用 “and”。分段名是全局的文件路径,格式类似于 gitignore。斜杠 ( / ) 作为路径分隔符,# 或者 ; 作为注释。注释应该单独占一行。EditorConfig 文件使用 UTF-8 格式、CRLF 或 LF 作为换行符。

通配符

通配符 说明
* 匹配除 / 之外的任意字符串
** 匹配任意字符串
? 匹配任意单个字符
[name] 匹配name字符
[!name] 匹配非name字符
{s1,s3,s3} 匹配任意给定的字符串(0.11.0起支持)

特殊字符可以用 \ 转义,以使其不被认为是通配符。

支持的属性

注意:不是每种插件都支持所有的属性,具体可见此处

  • indent_style:tab 为 hard-tabs,space 为 soft-tabs。
  • indent_size:设置整数表示规定每级缩进的列数和 soft-tabs 的宽度(空格数)。如果设定为 tab,则会使用 tab_width 的值(如果已指定)。
  • tab_width:设置整数用于指定替代 tab 的列数。默认值就是 indent_size 的值,一般无需指定。
  • end_of_line:定义换行符,支持 lf、cr 和 crlf。
  • charset:编码格式,支持 latin1、utf-8、utf-8-bom、utf-16be 和 utf-16le,不建议使用 uft-8-bom。
  • trim_trailing_whitespace:设为 true 表示会除去换行行首的任意空白字符,false 反之。
  • insert_final_newline:设为 true 表明使文件以一个空白行结尾,false 反之。
  • root:表明是最顶层的配置文件,发现设为 true 时,才会停止查找 .editorconfig 文件。

目前所有的属性名和属性值都是大小写不敏感的,编译时都会将其转为小写。通常,如果没有明确指定某个属性,则会使用编辑器的配置,而 EditorConfig 不会处理。

推荐不要指定某些 EditorConfig 属性。比如,tab_width 不需要特别指定,除非它与 indent_size 不同。同样的,当 indent_style 设为 tab 时,不需要配置 indent_size,这样才方便阅读者使用他们习惯的缩进格式。另外,如果某些属性并没有规范化(比如 end_of_line),就最好不要设置它。

创建 EditorConfig 文件

手动创建

进入 Workspace,在项目根目录创建一个名为 .editorconfig 的文件,在该文件中定义该项目的编码规范。
图片
图片

其工作原理是:当在编码时,EditorConfig 插件会去查找当前编辑文件的所在文件夹或其上级文件夹中是否有 .editorconfig 文件。如果有,则编辑器的行为会与 .editorconfig 文件中定义的一致,并且其优先级高于编辑器自身的设置。

快速创建

点击【设置】-【编辑器】-【打开 .editorconfig】,会自动创建一个 .editorconfig 模板文件,补全文件即可。
图片
图片

相关文章