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это поведение теперь работает из коробки.

  1. Проблема , где это было отслежено.
  2. PR , где это было реализовано.
  3. Выпуск плагина , в котором эта функция была впервые отправлена.
Другие вопросы по тегам