I had been watching the issue around this before, but it was closed after just the first request (experimental ruleset) was completed. Currently my team runs a second formatting plugin (https://github.com/JLLeitschuh/ktlint-gradle) that reruns ktlint so that we can use a custom ruleset that helps us avoid some common pitfalls in our codebase.
The way that we use this today looks roughly like:
build.gradle.kts
plugins {
java
kotlin("jvm")
id("com.diffplug.spotless")
// The extra ktlint plugin
id("org.jlleitschuh.gradle.ktlint")
}
dependencies {
// Add the ruleset from a submodule
ktlintRuleset(project(":linting"))
}
spotless {
kotlin {
target("**/*.kt")
ktlint()
}
}
// After running spotlessApply or spotlessCheck, run a last check with the custom rules
tasks.spotlessKotlin {
finalizedBy(
"ktlintCheck"
)
}
Follow up from https://github.com/diffplug/spotless/issues/409#issuecomment-1107055624
I had been watching the issue around this before, but it was closed after just the first request (experimental ruleset) was completed. Currently my team runs a second formatting plugin (https://github.com/JLLeitschuh/ktlint-gradle) that reruns ktlint so that we can use a custom ruleset that helps us avoid some common pitfalls in our codebase.
The way that we use this today looks roughly like:
build.gradle.kts