Kotlin Gradle Spotless конфигурация ktlint
В настоящее время я использую следующий способ применения ktlint в своих проектах:
plugins{
id("com.diffplug.gradle.spotless") version "3.25.0"
}
allprojects {
apply(plugin = "com.diffplug.gradle.spotless")
spotless {
kotlin {
target("**/*.kt")
ktlint("0.30.0")
}
kotlinGradle {
target("*.gradle.kts", "additionalScripts/*.gradle.kts")
ktlint("0.30.0")
}
}
}
Я хочу немного подправить конфигурации, чтобы линтер соответствовал тому, что мы хотим в команде. например, установите максимальную длину строки 120.
Для этого я обнаружил, что мы можем сделать что-то вроде:
ktlint("0.30.0").userData(mapOf("max_line_length" to "120"))
в файле build.gradle.kts. Однако по мере того, как мы продолжаем добавлять новые настройки, становится очень сложно управлять ими и копировать их из проекта в проект, иspotlessApply
Задача не форматирует код и просто поднимает ее как проблему во время сборки. Можно ли в этом случае заставить ее автоматически форматироваться?
ktlint сам поддерживает .editorconfig
файл для таких конфигураций. Как мне применить это с безупречным?
1 ответ
Три года спустя - но лучше поздно, чем никогда! - оно работает.
Начиная с версии Spotless6.13.0
и ктлинт версии0.47.1
и0.48.1
это поведение теперь работает из коробки.
- Проблема , где это было отслежено.
- PR , где это было реализовано.
- Выпуск плагина , в котором эта функция была впервые отправлена.