#HarmonyOS NEXT体验官# 鸿蒙中实现团队代码格式化风格一致性 原创

冉冉同学
发布于 2024-8-2 13:11
浏览
0收藏

1. 背景

在鸿蒙团队开发中,我们可能会遇到以下场景:

团队内的小伙伴修改并顺手格式化【Cmd + Option + L/Ctrl + Alt + L】了一下A.est页面的代码,然后Commit 提交了。此时你刚好也在更改A.est页面的代码,然后不小心拉取了一下代码,代码冲突了😭,此时你准备解决冲突,一不小心roback 回滚了你本地的代码。虽然通过本地的git stash 恢复了回滚的代码,但是内心还是有些颤抖的。🤣

此刻你聪明的小脑袋会想,有没有什么办法统一团队内格式化代码的风格呢?

如果你了解前端【如果没有,没关系,直接跳过本段内容】,你会发现在前端有已经有了此类的解决方案。比如PrettierSpotlessESLintEditorConfig,等等方案

有没有鸿蒙能用的而且能够快速上手的方案呢?

有,那就是 EditorConfig

2. EditorConfig 是什么?

EditorConfig 不是什么软件,也不是什么插件,它只是一个配置文件,它的目标是为不同的编辑器、编码语言和文件类型提供统一的代码风格和格式要求。具体支不支持取决于IDE是否支持,主流的编辑器,如 VSCode、Sublime Text、Atom 等,通常会默认支持 EditorConfig,并自动加载其规范,可以使得跨团队协作时代码风格更加统一,减少了因编辑器差异导致的代码格式问题。

常见支持的IDE,更多介绍可看官网:https://editorconfig.org/

下面是一些常见支持EditorConfig的IDE
#HarmonyOS NEXT体验官# 鸿蒙中实现团队代码格式化风格一致性-鸿蒙开发者社区

幸运的是HUAWEI DevEco Studio是基于IntelliJ IDEA Community开源版本打造。而IntelliJ IDEA 是支持解析EditorConfig 配置的。

3. 在HUAWEI DevEco Studio 中使用EditorConfig

3.1 启用EditorConfig插件

Preferences>Plugins>EditorConfig>勾选
#HarmonyOS NEXT体验官# 鸿蒙中实现团队代码格式化风格一致性-鸿蒙开发者社区

3.2 开启IDE 对EditorConfig的支持

Preferences>Editor>Code Style>Enable EditorConfig support>勾选
#HarmonyOS NEXT体验官# 鸿蒙中实现团队代码格式化风格一致性-鸿蒙开发者社区

3.3 项目配置EditorConfig

项目中配置EditorConfig很简单,在项目根目录新建一个.EditorConfig 文件即可,如下图所示
#HarmonyOS NEXT体验官# 鸿蒙中实现团队代码格式化风格一致性-鸿蒙开发者社区

3.4 EditorConfig 模板

如果你的团队内有多种开发设备【Windows/Mac/Linux】,多种IDE【DevEco Studio、Android Studio、VS Code、HBuilder X…】。可以整个大团队内维护一套EditorConfig配置文件。

# http://editorconfig.org
# 定义该文件为EditorConfig的根文件,确保所有子文件夹中的文件都遵循相同的设置
# 顶级配置
root = true
# 适用于所有文件的通用配置
[*]
# 指定使用空格进行缩进,而非制表符,以保持代码的一致性
indent_style = space
# 指定缩进的空格数为2,用于提高代码的可读性
indent_size = 2
# 指定字符编码为UTF-8,确保文件在不同系统间传输时不会出现编码问题
charset = utf-8
# 指定行尾字符为LF,适用于Unix/Linux系统,确保跨平台的行结束符一致性
end_of_line = lf
# 自动去除行尾的多余空格,减少不必要的空白行,保持代码整洁
trim_trailing_whitespace = true
# 在文件末尾自动添加一个新行,使得文件的结尾更加清晰
insert_final_newline = true
# 一行最大达到多少字符后自动换行
max_line_length = 200
# 针对特定文件类型的特殊配置
[*.{json}]
# 对于JSON、YAML文件,将缩进空格数设置为2,以符合这些文件通常的缩进标准
indent_size = 2
[*.md]
# 对于Markdown文件,不自动在文件末尾添加新行,以保留可能的空白行用于格式化
insert_final_newline = false
# 对于Markdown文件,不自动去除行尾的空格,因为这可能会影响代码块的格式
trim_trailing_whitespace = false

4. 其它

【HarmonyOS NEXT】鸿蒙中实现组件化通信解耦

关于editorconfig 更多用法,大家可在juejin 搜索

看这篇:https://juejin.cn/post/6844903590855704583

或者官网:https://editorconfig.org/

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2024-8-6 15:03:46修改
收藏
回复
举报
回复
    相关推荐