Je suis développeur Java / Kotlin chez EPAM.
Dans le premier article, j'ai parlé de mon projet - Brain-Up . Dans cet article, je souhaite partager mon expérience dans la mise en place du plugin ktlint pour un projet Kotlin.
Ce plugin permet de garantir un style de code cohérent dans tout le projet. Il s'appuie sur les directives officielles de formatage du code Kotlin de JetBrains. En utilisant cet outil, vous pouvez non seulement vérifier le code, mais également le formater.
Lors de la configuration de ktlint, je cherchais des informations, une description, et il m'a semblé que peu d'attention avait été accordée au sujet de configuration de ce plugin dans les revues, et les réponses aux questions qui apparaissaient n'étaient pas évidentes.
Par conséquent, j'ai décidé de partager mon expérience, j'espère que quelqu'un trouvera les instructions étape par étape pour se connecter au projet utiles. Cet exemple est pertinent pour un projet sur Kotlin 1.4, gradle 6.0.
#une. Ajouter une dépendance à build.gradle par plugin
dependencies {
ktlint "com.pinterest:ktlint:0.38.0"
}
# 2. Ajout d'une tâche gradle `ktlintFormat`
, .. , / - , .
task ktlintFormat(type: JavaExec, group: "formatting")
{
description = "Fix Kotlin code style deviations."
classpath = configurations.ktlint
main = "com.pinterest.ktlint.Main"
args "-F", "src/*/.kt"
}
#3. gradle `ktlint`
project.task("ktlint", type: JavaExec) {
group = "verification"
description = "Runs ktlint."
main = "com.pinterest.ktlint.Main"
classpath = project.configurations.ktlint
args = [
"--reporter=plain",
"--reporter=checkstyle,output=${project.buildDir}/reports/ktlint/ktlint-checkstyle-report.xml",
"src/*/.kt" ]
}
#4. `ktlint`
compileKotlin.dependsOn ktlint
. , , . .
, , , .
.
#5. Idea
File -> Settings -> Code Style -> Kotlin.
#6.
.
Ctrl+Alt+L, Idea . , Idea, .
.
Idea ― ktlintFormat — .
#7.
- , , .editorconfig
.
, . , , , , Ctrl+Alt+L
ktlintFormat
, .
[*.{kt,kts}]
disabled_rules = import-ordering
build.gradle . 2- , .
, , / code style Kotlin , — , : , , .
, , Open Source Brain-up, , .
Sonar Cloud Kotlin , , .
!