diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt index f1820da9c78..c31a26ca919 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt @@ -130,10 +130,14 @@ fun allConfigurators() = Extensions.getExtensions(KotlinProjectConfigurator.EP_N fun getNonConfiguredModules(project: Project, configurator: KotlinProjectConfigurator): List { return project.allModules() - .filter { module -> configurator.getStatus(module) == ConfigureKotlinStatus.CAN_BE_CONFIGURED } + .filter { module -> configurator.canConfigure(module) } .excludeSourceRootModules() } +private fun KotlinProjectConfigurator.canConfigure(module: Module) = + getStatus(module) == ConfigureKotlinStatus.CAN_BE_CONFIGURED && + (allConfigurators().toList() - this).none { it.getStatus(module) == ConfigureKotlinStatus.CONFIGURED } + fun Collection.excludeSourceRootModules(): List { val pathMap = buildExternalPathMap() return filter { it.externalProjectId == null || it.externalProjectPath == null } + pathMap.values diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java b/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java index 01a24315712..3c3608ccf9b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinTest.java @@ -98,10 +98,12 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest { public void testTwoModulesWithNonDefaultPath_doNotCopyInDefault() throws IOException { doTestConfigureModulesWithNonDefaultSetup(JAVA_CONFIGURATOR); + assertEmpty(ConfigureKotlinInProjectUtilsKt.getNonConfiguredModules(myProject, JS_CONFIGURATOR)); } public void testTwoModulesWithJSNonDefaultPath_doNotCopyInDefault() throws IOException { doTestConfigureModulesWithNonDefaultSetup(JS_CONFIGURATOR); + assertEmpty(ConfigureKotlinInProjectUtilsKt.getNonConfiguredModules(myProject, JAVA_CONFIGURATOR)); } public void testNewLibrary_jarExists_js() {