# ktlint










<LinkCard
  title="ktlint"
  description="A linter / formatter for Kotlin. Configuration lives in .editorconfig."
  href="https://ktlint.github.io/ktlint/latest/"
/>

ktlint lets you configure things like disabling lint rules through the .editorconfig file.

We recommend declaring .editorconfig and the baseline (`ktlint-baseline.xml`) in your architecture definition so katachi knows about them.

```kt collapse
// ProjectArchitecture.kt
@file:OptIn(ExperimentalKatachiApi::class)

import me.tbsten.katachi.ExperimentalKatachiApi
import me.tbsten.katachi.dsl.architecture

val projectArchitecture = architecture {
    "Tools".group {
        ktlint()
    }
}

// roles/Ktlint.kt
@file:OptIn(ExperimentalKatachiApi::class)

import me.tbsten.katachi.ExperimentalKatachiApi
import me.tbsten.katachi.dsl.DeclarationContainerScope

fun DeclarationContainerScope.ktlint() =
    "Ktlint".group {
        "EditorConfig" {
            title = "EditorConfig"
            summary = "The file that configures ktlint's rules"
            layout {
                "**/.editorconfig".file()
            }
        }

        "Baseline" {
            title = "ktlint baseline"
            summary = "The file ktlint writes out to tolerate existing violations"
            layout {
                "**/ktlint-baseline.xml".file()
            }
        }
    }
```

<SnippetIsStartingPoint />