editconfig 常用配置

发布于 2024-06-23 08:27:49 字数 3579 浏览 21 评论 0

在团队开发中,统一的代码格式是必要的。但是不同开发人员的代码风格不同,代码编辑工具的默认格式也不相同,这样就造成代码的 differ 。而 editorConfig 可以帮助开发人员在不同的编辑器和 IDE 中定义和维护一致的编码风格

editorconfig

一个 editorconfig 文件例子,用于设置 PythonJavaScript 行尾和缩进风格的配置文件

# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,py}]
charset = utf-8

# 4 space indentation
[*.py]
indent_style = space
indent_size = 4

# Tab indentation (no size specified)
[*.js]
indent_style = tab

# Indentation override for all JS under lib directory
[lib/**.js]
indent_style = space
indent_size = 2

# Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2

安装 editorconfig

当打开一个文件时, EditorConfig 插件会在打开文件的目录和其每一级父目录查找 .editorconfig 文件,直到有一个配置文件 root=trueEditorConfig 配置文件从上往下读取,并且路径最近的文件最后被读取。匹配的配置属性按照属性应用在代码上,所以最接近代码文件的属性优先级最高。

文件格式

EditorConfig 文件使用 INI 格式。斜杠 (/) 作为路径分隔符, # 或者 ; 作为注释。 EditorConfig 文件使用 UTF-8 格式、 CRLFLF 作为换行符

通配符

  
*匹配除/之外的任意字符串
**匹配任意字符串
?匹配任意单个字符
[name ]匹配 name 字符
[!name]匹配非 name 字符
{s1,s2,s3}匹配任意给定的字符串(since 0.11.0)

属性

  
indent_style设置缩进风格,tab 或者空格。tab 是 hard tabs,space 为 soft tabs。
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 文件

例子

下面以 sublime text 为例,测试 editorconfig 是否起作用。首先需要给 sublime 安装 EditorConfig 插件,然后在项目的根目录新建文件” .editorconfig “,内容如下

# EditorConfig is awesome: <a onclick="javascript:pageTracker._trackPageview('/outgoing/EditorConfig.org');" href="http://EditorConfig.org">http://EditorConfig.org</a>

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,html,css}]
charset = utf-8

# Tab indentation (no size specified)
[*.js]
indent_style = tab
tab_width = 50

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文