Skip to content

Lint

io.github.thomaskioko.gradle.plugins.lint

Apply this on the root project to add the suite's own ktlint rules on top of the standard ones.

plugins {
    id("io.github.thomaskioko.gradle.plugins.lint")
}

What it does

It reads its own version from its jar and asks for the matching lint-rules artifact, then hands that to Spotless as a custom rule set for the root project and every module.

The versions cannot drift apart. Moving the plugin version in your catalog moves the rules with it, because the coordinate is built from the version of the plugin doing the asking.

The rules

The rules cover conventions a type cannot enforce: keeping navigation construction inside the modules that own it, requiring the code generation annotations rather than bindings written by hand, and naming a test after the behaviour it checks. Each one reads its exemptions from .editorconfig where it has any, so a module that legitimately breaks a rule says so in the file it applies to.

Every rule, and the .editorconfig property that exempts a module from it, is on the lint rules page. The classes themselves are in the API reference.