为了活动小家电-代码约定-ktlint(一)

280 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的16天,点击查看活动详情

ktlint 是一个可以为 Kotlin 代码设置 lint 规则的模块,就像前面使用的 eslint 插件一样。

Kotlin 在其官方网站上提供了编码约定指南,而 ktlint 允许您按照官方编码约定指南进行编程。

1. Gradle 构建设置

ktlint以 jar 文件的形式提供,也在jcenter.bintray.com/上分发。

因此,您可以在 Gradle 中定义和使用任务,而无需单独的 Gradle 插件。

(顺便说一下,ktlint的官网说Gradle插件比较推荐)

1.editorconfig设置

ktlint检查代码样式,包括在 .editorconfig文件中声明的规则。

.editorconfig是各种编辑器和 IDE 普遍支持的代码样式的配置文件。

它不是默认创建的文件,因此直接在根位置创建并使用。

只需添加.editorconfig设置,如下所示。

.editorconfig 示例

root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120
tab_width = 4

[*.{kt,kts}]
disabled_rules=import-ordering
# 如果依赖 java.* 包,IntelliJ 的 Orgarnize Import 函数无法按字母顺序对导入语句进行排序。
# 这不符合 ktlint 的导入排序规则。

事实上,即使没有 .editorconfig 文件,ktlint 也可以默认运行,但建议创建编辑文件,原因如下。

  • 防止无意中引用父目录中的 .editorconfig。

根据 .editorconfig 文件的约定,支持它的工具会搜索所有父目录,直到找到声明 root = true 的 .editorconfig 文件。

ktlint 也遵循这个约定。因此,如果仅在特定计算机上克隆源的目录的父目录中有.editorconfig,则该设备上的样式检查结果会有所不同。

  • 如果 ktlint 被版本化并且规则的默认值发生变化。

例如,从 ktlint 0.34.0 版本开始,insert_final_newline = true 是默认值。

  • 各种 IDE 和编辑器等工具都引用了此设置。

它会自动反映在 IntelliJ、VSCode、GitHub 等的查看器和格式化程序设置中。

为了活动小家电,下片继续搞