.editorconfig详解

作者: mamie42 | 来源:发表于2020-06-02 11:16 被阅读0次

    1、介绍

    官网是这么介绍EditorConfig的,“EditorConfig帮助开发人员在不同的编辑器和IDE之间定义和维护一致的编码样式。EditorConfig项目由用于定义编码样式的文件格式和一组文本编辑器插件组成,这些插件使编辑器能够读取文件格式并遵循定义的样式。EditorConfig文件易于阅读,并且与版本控制系统配合使用。”

    不同的开发人员,不同的编辑器,有不同的编码风格,而EditorConfig就是用来协同团队开发人员之间的代码的风格及样式规范化的一个工具,而.editorconfig正是它的默认配置文件。

    使用 Eslint 做代码 lint,那么为什么还要使用 .editorconfig 呢?

    • Eslint 确实包含 .editorconfig 中的一些属性,如缩进等,但并不全部包含,如 .editorconfig 中的 insert_final_newline 属性 Eslint 就没有。Eslint 更偏向于对语法的提示,如定义了一个变量但是没有使用时应该给予提醒。而 .editorconfig 更偏向于代码风格,如缩进等。
    • Eslint 仅仅支持对 js 文件的校验,而 .editorconfig 不光可以检验 js 文件的代码风格,还可以对 .py(python 文件)、.md(markdown 文件)进行代码风格控制。

    总结:根据项目需要,Eslint 和 .editorconfig 并不冲突,同时配合使用可以使代码风格更加优雅。

    2、示例

    # 控制 .editorconfig 是否生效的字段
    root = true
    # 匹配全部文件
    [*]
    # 结尾换行符,可选"lf"、"cr"、"crlf"
    end_of_line = lf
    # 在文件结尾插入新行
    insert_final_newline = true
    # 删除一行中的前后空格
    trim_trailing_whitespace = true
    # 匹配js和py结尾的文件
    [*.{js,py}]
    # 设置字符集
    charset = utf-8
    
    # 匹配py结尾的文件
    [*.py]
    # 缩进风格,可选"space"、"tab"
    indent_style = space
    # 缩进的空格数
    indent_size = 4
    [*.md]
    trim_trailing_whitespace = false
    
    # 以下匹配,类同
    [Makefile]
    indent_style = tab# tab的宽度tab_width = 4
    # 以下匹配,类同
    [lib/**.js]
    indent_style = space
    indent_size = 2
    
    [{package.json,.travis.yml}]
    indent_style = space
    indent_size = 2
    

    其它字段应该注意的有 indent_sizecharset,如果想要了解更多,参阅:.editorconfig 配置文件字段详解

    3、文件语法

    editorConfig配置文件需要是UTF-8字符集编码的, 以回车换行或换行作为一行的分隔符。
    斜线(/)被用作为一个路径分隔符,井号(#)或分号(;)被用作于注释. 注释需要与注释符号写在同一行。
    【通配符】

    *                匹配除/之外的任意字符串
    **               匹配任意字符串
    ?                匹配任意单个字符
    [name]           匹配name中的任意一个单一字符
    [!name]          匹配不存在name中的任意一个单一字符
    {s1,s2,s3}       匹配给定的字符串中的任意一个(用逗号分隔) 
    {num1..num2}    匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数
    

    【属性】

    所有的属性和值都是忽略大小写的. 解析时它们都是小写的

    indent_style    设置缩进风格(tab是硬缩进,space为软缩进)
    indent_size     用一个整数定义的列数来设置缩进的宽度,如果indent_style为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,不建议使用utf-8-bom
    trim_trailing_whitespace  设为true表示会去除换行行首的任意空白字符。
    insert_final_newline      设为true表示使文件以一个空白行结尾
    root           表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件
    

    4、注意事项、配置说明

    1、如果是windows用户,如果无法创建.editorconfig文件,则需要先创建.editorconfig.文件,系统会自动重命名成.editorconfig文件。

    2、EditorConfig的匹配规则是从上往下,即先定义的规则优先级比后定义的优先级要高。

    3、插件安装,在GitHub上已经有了各种流行编辑器的插件源代码,可根据说明安装。

    4、对于VS Core,对应的插件名是EditorConfig for VS Code

    5、这里列举了VS Code支持的规则

    • indent_style
    • indent_size
    • tab_width
    • end_of_line
    • insert_final_newline
    • trim_trailing_whitespace

    相关文章

      网友评论

        本文标题:.editorconfig详解

        本文链接:https://www.haomeiwen.com/subject/iazyzhtx.html