8

我正在使用带有 ktlint 的 detekt 来格式化我的代码,如下所示。

detekt.gradle

ext{
    toolVersion = "1.0.0-RC16"
}
detekt {
    input = files(...)

    filters = ".*/resources/.*,.*/build/.*"
    baseline = file("${project.rootDir}/tools/detekt-baseline.xml")
    reports{
        html{
            enabled = true
        }
        xml{
            enabled = false
        }
    }
    config = files(file("$project.rootDir/tools/detekt.yml"))
}

dependencies {
    detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:$toolVersion"
}

detekt-baseline.yml

autoCorrect: true

build:
  maxIssues: 10
  weights:
  # complexity: 2
  # LongParameterList: 1
  # style: 1
  # comments: 1

项目级build.gradle

buildscript {
    ext{...}
    repositories {...}
    dependencies {...}
}

plugins{
    id "io.gitlab.arturbosch.detekt" version "1.0.0-RC16"
}

apply from: 'tools/detekt.gradle'
...


allprojects {
    repositories {...}
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

如您所见,我在 detekt.gradle 中添加了用于格式化的 detekt插件。我还在detekt-baseline.ymlautoCorrect中启用了。但是当我运行 Generated html report 时没有格式化代码显示没有发现,但显示了指标。./gradlew detekt

当我在detekt.gradle./gradlew detekt中注释掉以下行后运行时。

//    config = files(file("$project.rootDir/tools/detekt.yml"))

它确实显示了我的发现,包括格式问题(例如:不必要的空行)

如何配置 detekt 以根据 ktlint 自动格式化代码?


这是一个安卓项目。

4

1 回答 1

4

从 detekt 1.1.0-RC15​​ 开始,您必须在 gradle 中启用 autoCorrect:

detekt {
    autoCorrect = true
}

https://detekt.github.io/detekt/changelog-rc.html#rc15

于 2020-10-29T14:08:33.747 回答