我在 AGP 8.1.0 上使用 ktlint 0.50.0 和 Spotless 6.20.0。作为 PreCommit Git 挂钩运行一尘不染。 由于存在太多旧代码,我正在尝试禁用一些规则。 给我带来麻烦的是“max_line_length”。
如何禁用它?
我创建了一个简单的“.editorconfig”文件(我想获取其余规则的所有默认值):
root = true
[*]
[*.java]
[{*.gradle.kts,*.kt,*.kts,*.main.kts}]
ktlint_standard_comment-wrapping = disabled # this one is successfully disabled
所以,我尝试了所有可能的组合,也尝试了不同级别的属性:
max_line_length = off # as property
max_line_length = 2147483647 # using Int.MAX_VALUE
ktlint_standard_max-line-length = disabled
ktlint_standard_max_line_length = disabled
ktlint_standard_max-line-length = off
ktlint_standard_max_line_length = off
我不想使用文件内 ktlint 注释,因为这需要更改文件......而且我不想去那里。
尝试提交时,我总是收到超出最大行长度错误...
关于如何禁用此特定规则有什么建议吗?
我错过了什么?
任何建议...
唯一对我有用的是通过 Spotless
editorConfigOverride
API“覆盖”这些参数。改变:
spotless {
kotlin {
ktlint(Versions.ktlint)
}
}
至:
spotless {
kotlin {
ktlint(Versions.ktlint)
.userData(["android" : "true"])
.editorConfigOverride([
"ktlint_standard_comment-wrapping" : "disabled",
"max_line_length" : 2147483647,
])
}
}
注意
2147483647
值,这是 Int.MAX_VALUE
。
我检查了 ktlint MaxLineLengthEditorConfigProperty
和 CommentWrappingRule
代码,这应该禁用它......并且它起作用了。
我完全删除了
.editorconfig
文件,因为这些是唯一的“自定义”选项。
在此之前,我还尝试在每个级别上为
max_line_length
文件中的.editorconfig
设置更高的值...但它不起作用,它始终默认为150。