Настройка ktlint

Настройка ktlint #

ktlint — инструмент автоматической проверки исходного кода на соответствие правил его оформления. Обеспечивает единообразное написание исходного кода внутри одной команды.

Добавление поддержки в систему сборки Gradle #

Запуск задач проверки кода должен осуществляться вместе с задачами по запуску приложения. В рамках курса используется система сборки Gradle.

Предлагается использовать дополнение Ktlint Gradle следующим образом.

Необходимо добавить плагин в конфигурацию build.gradle.kts:

plugins{
    id("org.jlleitschuh.gradle.ktlint") version "12.1.0"
}

Внутри конфигурации необходимо указать версию инструмента. Для этого в файле gradle.properties укажите версию инструмента:

ktlintVersion=1.2.1

И в build.gradle необходимо указать используемую версию инструмента:

ktlint {
    version.set(ktlintVersion)
}

Настройка инструмента ktlint #

Ktlint поддерживает несколько стандартов оформления. Настройка производится путём формирования файла .editorconfig, который должен располагаться рядом с файлами конфигурации системы сборки Gradle build.gradle.kts.

В рамках курса необходимо использовать следующую конфигурацию для данного файла:

[*.{kt,kts}]
ktlint_code_style = ktlint_official

Настройка форматирования в IDEA #

После успешной конфигурации необходимо выполнить в соответствии с официальным руководством. Данная настройка позволит значительно уменьшить количество исправлений в исходном коде, чтобы оно соответствовало требованиям статического анализатора ktlint.

Также можно установить официальный плагин для IDEA.

Запуск проверки исходного кода с помощью ktlint #

К сожалению для эффективной работы данного инструмента необходимо придерживаться следующих требований:

  • Исходные коды проекта должны находится в каталоге, в пути к которому нет русских символов.

Следующей особенностью дополнения к Gradle является то, что проверка исходных кодов может не пройти из-за кеширования результатов запуска. Поэтому перед выполнением задачи ktlintCheck необходимо выполнить задачу clean:

./gradlew clean ktlintCheck

© A. M. Васильев, 2024, CC BY-SA 4.0, andrey@crafted.su