分享个好东西-editorconfig

目录

解决的问题

what

意义

与IDE格式化文件相比

如何使用IDE中已有的格式化配置

文件

位置

通配符配置

配置项

配置举例


解决的问题

有没有遇到过这样的问题?几个人在同一个工程上开发代码,每次格式化后发现差异都是格式引起的,每次更新代码发现差异也都是格式引起的。一种解决方式是为每个人提供一份相同的格式化文件,然后各自在IDE中进行配置。这样的前提是,每个人都使用同一个格式文件。

现在有另一种方式EditorConfig,把格式化配置放在项目中,开发者不需要配置IDE。

接下来,我对editorconfig做些简单的介绍。

what

项目代码格式化管理

意义

多开发者开发同一个项目时,维持统一的代码格式。

与IDE格式化文件相比

  • 使用editorconfig,开发者无需任何格式化配置,即不需要向IDE导入格式化配置文件。
  • 缺点在于,没有可视化工具进行配置,不能清晰了解配置项的含义。

如何使用IDE中已有的格式化配置

以IDEA为例,将格式化scheme导出为editorconfig,然后将需要的拷贝到editorconfig文件中。

操作路径 file->setting->editor->code style->java,在选择的scheme右侧,点击export EditorConfig file。

文件

.editorconfig

位置

项目根目录

通配符配置

用于匹配文件

 任意字符串字符串,排除路径分隔符/
**   任意字符串字符串
? 任意字符
[name]  任意字符 in name
[!name] 任意字符 not in name
{s1,s2,s3} 匹配到字符串集合中的任意一个元素
{num1..num2}  匹配n1和n2之间的任意一个数字

配置项

被ide广泛支持的配置

缩进样式 indent_style=tab/space
缩进尺寸 indent_size=数字/tab 设置为tab,则使用tab_width配置;若无tab_width配置,则由ide决定。
tab尺寸 tab_width=数字 未配置,则使用indent_size的数据
行结尾格式 end_of_line=lf/crlf/cr
文件编码 charset=utf-8
清除行结尾出的空白 trim_trailing_whitespace=true/false
以新行结束文件 insert_final_newline=true/false

配置举例

# http://editorconfig.org
root = true

# 空格替代Tab缩进在各种编辑工具下效果一致
[*]
indent_style = space
indent_size = 4
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120
tab_width = 4
ij_continuation_indent_size = 8
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = false
ij_smart_tabs = false
ij_visual_guides = none
ij_wrap_on_typing = false

[*.java]
indent_style = tab
...其他java配置  从ide导出的配置信息

 

你可能感兴趣的:(代码格式管理,editorconfig)