Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Using editorConfigOverride in kotlinGradle ktlint removes its default values, changing behavior

未关闭
#2,226 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
38/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
停滞
技术栈
kotlin
领域
build-system

调研方向

首先,使用非空的 editorConfigOverride map 重现 Gradle Kotlin DSL 示例,并将其与空 map 的情况进行比较。然后跟踪 editorConfigOverride 入口点以及现有的 ktlint 配置测试(如果有)。当 override 包含不相关的键时,默认的 ktlint 行为(包括 no-consecutive-comments)仍然得到执行,即表示完成。

由索引模型根据 Issue 内容生成。

描述

bug-unconfirmed

When you use editorConfigOverride with map that has at least 1 entry, for example with arbitrary key that doesn't exist:

spotless {
    kotlinGradle {
        target("*.gradle.kts")
        ktlint("1.3.1").editorConfigOverride(
            mapOf(
                "abc" to "abc",
            ),
        )
    }
}

the default behavior changes. For example, when I fail the no-consecutive-comments rule by having this in build.gradle.kts:

/** Deps */
// Dep1

after adding the map with 1 element, ./gradlew spotlessApply will no longer display the error, and will successfully format the file.

> Task :spotlessApply

BUILD SUCCESSFUL in 220ms
6 actionable tasks: 3 executed, 3 up-to-date
15:25:53: Execution finished 'spotlessApply'.

With empty map, it finishes with error:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':spotlessKotlinGradle'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130)
...
Caused by: java.lang.AssertionError: Error on line: 20, column: 5
rule: standard:no-consecutive-comments
an EOL comment may not be preceded by a KDoc. Reversed order is allowed though when separated by a newline.
        at com.diffplug.spotless.glue.ktlint.compat.KtLintCompatReporting.report(KtLintCompatReporting.java:23)
        at com.diffplug.spotless.glue.ktlint.compat.KtLintCompat1Dot0Dot0Adapter$FormatterCallback.invoke(KtLintCompat1Dot0Dot0Adapter.java:77)
        at com.diffplug.spotless.glue.ktlint.compat.KtLintCompat1Dot0Dot0Adapter$FormatterCallback.invoke(KtLintCompat1Dot0Dot0Adapter.java:72)
        at com.pinterest.ktlint.rule.engine.internal.CodeFormatter.format(CodeFormatter.kt:31)
        at com.pinterest.ktlint.rule.engine.api.KtLintRuleEngine.format(KtLintRuleEngine.kt:116)
...

Versions:
Gradle 8.9
id("com.diffplug.spotless") version "7.0.0.BETA1"
Windows 10

主要语言
Java
星标
5.7k
派生
560
平均合并
1 天 13 小时
30 天内合并 PR
43

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

diffplug/spotless 的其他 Issue

查看 diffplug/spotless 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。