From e6a22d45777fc00f7791d8aa82261c2b8faae3d0 Mon Sep 17 00:00:00 2001 From: Vlad Koshkin Date: Thu, 8 Aug 2024 20:01:09 +0200 Subject: [PATCH] [kotlin] add included compositeParticipants submodules as related gradle modules ^KTIJ-29733 Fixed GitOrigin-RevId: e37c38cc1d2abc37b260632e38afe4f3f137b8b1 --- ...eScriptAdditionalIdeaDependenciesProvider.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptAdditionalIdeaDependenciesProvider.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptAdditionalIdeaDependenciesProvider.kt index d6c72c49ef36..c3aa8ad22b8a 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptAdditionalIdeaDependenciesProvider.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptAdditionalIdeaDependenciesProvider.kt @@ -15,19 +15,22 @@ import org.jetbrains.plugins.gradle.util.GradleConstants class GradleScriptAdditionalIdeaDependenciesProvider : ScriptAdditionalIdeaDependenciesProvider() { override fun getRelatedModules(file: VirtualFile, project: Project): List { val gradleSettings = ExternalSystemApiUtil.getSettings(project, GradleConstants.SYSTEM_ID) + val projectSettings = gradleSettings.linkedProjectsSettings.filterIsInstance().firstOrNull() ?: return emptyList() - val includedModulesPath: List = projectSettings.compositeBuild?.compositeParticipants?.mapNotNull { part -> - projectSettings.modules.find { it == part.rootPath } - } ?: emptyList() + + val includedModulesPath: List = projectSettings.compositeBuild?.compositeParticipants?.filter { part -> + projectSettings.modules.any { it == part.rootPath } + }?.flatMap { it.projects } ?: emptyList() + val includedModulesBuildSrcPaths = includedModulesPath.map { "$it/buildSrc" } val rootBuildSrcPath = "${projectSettings.externalProjectPath}/buildSrc" - return (includedModulesPath + includedModulesBuildSrcPaths + rootBuildSrcPath).flatMap { path -> - ModuleManager.getInstance(project).modules.filter { - ExternalSystemApiUtil.getExternalProjectPath(it) == path - } + val pathsToCheck = (includedModulesPath + includedModulesBuildSrcPaths + rootBuildSrcPath).toSet() + + return ModuleManager.getInstance(project).modules.filter { + pathsToCheck.contains(ExternalSystemApiUtil.getExternalProjectPath(it)) } }