Я хочу добавить стиль ktlint
, используемый в Android Studio, чтобы при самостоятельном применении форматирования использовался стиль ktlint
.
На основании документации я установил ktlint
CLI
brew install ktlint
Затем я перешел к root моего проекта и выполнил
ktlint --android applyToIDEAProject
Стиль теперь отображается в моих настройках для использования.
Проблема заключается в том, что стиль, применяемый через CLI, использует, как мне кажется, последнюю версию ktlint
, поскольку мое ручное форматирование отличается от задачи форматирования Gradle
. Я бы предпочел использовать стиль из плагина Gradle
, поэтому стиль применяется к проекту так же, как задача Gradle
, используемая при форматировании.
Наконец, я хотел бы, чтобы это была задача Gradle, чтобы другие разработчики могли импортировать и применять тот же стиль, что и я, чтобы создать ловушку.
Ниже приведен мой файл Gradle ktlint
dependencies {
ktlint "com.pinterest:ktlint:0.34.2"
}
task ktlint(type: JavaExec, group: "verification") {
description = "Check Kotlin code style."
classpath = configurations.ktlint
main = "com.pinterest.ktlint.Main"
args "src/**/*.kt"
}
check.dependsOn ktlint
task ktlintFormat(type: JavaExec, group: "formatting") {
description = "Fix Kotlin code style deviations."
classpath = configurations.ktlint
main = "com.pinterest.ktlint.Main"
args "-F", "src/**/*.kt"
}
ОБНОВЛЕНИЕ 1
Я посмотрел один из доступных плагинов Gradle и увидел этот файл , Для меня это выглядит как обертка вокруг основной библиотеки, поэтому это должно быть возможно без использования стороннего плагина. https://github.com/JLLeitschuh/ktlint-gradle/blob/master/plugin/src/main/kotlin/org/jlleitschuh/gradle/ktlint/KtlintApplyToIdeaTask.kt
Я использовал версию 0.34.2 и, сравнивая ее с последней, похоже, что поддержка этих команд была добавлена позже, как показано здесь https://github.com/pinterest/ktlint/blob/master/ktlint/src/main/kotlin/com/pinterest/ktlint/Main.kt#L49
Из этой информации я добавил эту задачу Gradle, которая меня прогрессировала, но все еще не работает.
task addKtLintStyle(type: JavaExec, group: "formatting") {
description = "yep"
classpath = configurations.ktlint
main = "com.pinterest.ktlint.Main"
args "--android", "applyToIDEA"
}
Она не работает с этой ошибкой
.idea directory not found. Are you sure you are inside project root directory?
Который выдается здесь
https://github.com/pinterest/ktlint/blob/master/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/ApplyToIDEACommandHelper.kt#L27
Мой файл Gradle находится в root моего проекта, поэтому я не уверен, что делать дальше на этом этапе.