From 3a0b73348042b410ade3276a0245912bc2033c63 Mon Sep 17 00:00:00 2001 From: BoD Date: Mon, 24 Feb 2025 10:13:53 +0100 Subject: [PATCH] Make Download Schema action consider deep subprojects --- .../apollographql/ijplugin/gradle/DownloadSchemaAction.kt | 2 +- .../ijplugin/gradle/GradleToolingModelService.kt | 4 ---- .../kotlin/com/apollographql/ijplugin/gradle/GradleUtil.kt | 5 +++++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/DownloadSchemaAction.kt b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/DownloadSchemaAction.kt index d1191118bcb..f472864993e 100644 --- a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/DownloadSchemaAction.kt +++ b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/DownloadSchemaAction.kt @@ -62,7 +62,7 @@ private class DownloadSchemaTask(project: Project) : Task.Backgroundable( } } ?: return - val allDownloadSchemaTasks: List = (rootGradleProject.children + rootGradleProject) + val allDownloadSchemaTasks: List = rootGradleProject.allChildrenRecursively() .flatMap { gradleProject -> gradleProject.tasks.filter { task -> task.name.matches(DOWNLOAD_SCHEMA_TASK_REGEX) } } .map { it.name } .distinct() diff --git a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleToolingModelService.kt b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleToolingModelService.kt index 6ed421c8630..a6302664f86 100644 --- a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleToolingModelService.kt +++ b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleToolingModelService.kt @@ -302,10 +302,6 @@ class GradleToolingModelService( } } -private fun GradleProject.allChildrenRecursively(): List { - return listOf(this) + children.flatMap { it.allChildrenRecursively() } -} - private val ApolloGradleToolingModel.projectPathCompat: String get() = if (versionMinor >= 3) { projectPath diff --git a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleUtil.kt b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleUtil.kt index 8da0c43a6d4..bd979061382 100644 --- a/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleUtil.kt +++ b/intellij-plugin/src/main/kotlin/com/apollographql/ijplugin/gradle/GradleUtil.kt @@ -5,6 +5,7 @@ import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.Project +import org.gradle.tooling.model.GradleProject const val CODEGEN_GRADLE_TASK_NAME = "generateApolloSources" @@ -23,3 +24,7 @@ fun Project.getGradleRootPath(): String? { if (rootProjectPath == null) logw("Could not get Gradle root project path") return rootProjectPath } + +fun GradleProject.allChildrenRecursively(): List { + return listOf(this) + children.flatMap { it.allChildrenRecursively() } +}