From ca4327069992d61fa744ca0b3385b77db905ce64 Mon Sep 17 00:00:00 2001 From: Mikhail Burshteyn Date: Tue, 2 Apr 2024 13:36:58 +0400 Subject: [PATCH] Fix additionalEditorconfig property not being accounted for up-to-date checks and caching Fixes #750 --- .../ktlint/tasks/BaseKtLintCheckTask.kt | 2 +- .../gradle/ktlint/EditorConfigTests.kt | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/plugin/src/main/kotlin/org/jlleitschuh/gradle/ktlint/tasks/BaseKtLintCheckTask.kt b/plugin/src/main/kotlin/org/jlleitschuh/gradle/ktlint/tasks/BaseKtLintCheckTask.kt index 8f2fecd4..45bf6039 100644 --- a/plugin/src/main/kotlin/org/jlleitschuh/gradle/ktlint/tasks/BaseKtLintCheckTask.kt +++ b/plugin/src/main/kotlin/org/jlleitschuh/gradle/ktlint/tasks/BaseKtLintCheckTask.kt @@ -55,7 +55,7 @@ abstract class BaseKtLintCheckTask @Inject constructor( @get:Internal internal abstract val additionalEditorconfigFile: RegularFileProperty - @get:Internal + @get:Input internal abstract val additionalEditorconfig: MapProperty @get:Incremental diff --git a/plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/EditorConfigTests.kt b/plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/EditorConfigTests.kt index 836688df..6e61c775 100644 --- a/plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/EditorConfigTests.kt +++ b/plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/EditorConfigTests.kt @@ -147,6 +147,26 @@ class EditorConfigTests : AbstractPluginTest() { } } + @DisplayName("Check task should rerun if additionalEditorconfig property changes") + @CommonTest + fun checkRerunOnAdditionalEditorconfigPropertyChange(gradleVersion: GradleVersion) { + project(gradleVersion) { + withAdditionalEditorconfigProperty(120) + withCleanSources() + + build(CHECK_PARENT_TASK_NAME) { + assertThat(task(":$lintTaskName")?.outcome).isEqualTo(TaskOutcome.SUCCESS) + } + + withAdditionalEditorconfigProperty(10) + + buildAndFail(CHECK_PARENT_TASK_NAME) { + assertThat(task(":$lintTaskName")?.outcome).isEqualTo(TaskOutcome.SUCCESS) + assertThat(task(":$mainSourceSetCheckTaskName")?.outcome).isEqualTo(TaskOutcome.FAILED) + } + } + } + private fun TestProject.createEditorconfigFile( maxLineLength: Int = 120, filePath: String = "" @@ -168,4 +188,18 @@ class EditorConfigTests : AbstractPluginTest() { } createEditorconfigFile(maxLineLength) } + + private fun TestProject.withAdditionalEditorconfigProperty( + maxLineLength: Int + ) { + //language=Groovy + buildGradle.appendText( + """ + + ktlint { + additionalEditorconfig["max_line_length"] = "$maxLineLength" + } + """.trimIndent() + ) + } }