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() + ) + } }