getNonConfiguredModules(project, configurator) excludes modules already configured with other configurators

#KT-16381 Fixed
This commit is contained in:
Dmitry Jemerov
2017-03-10 20:37:39 +01:00
parent 95bc0813f8
commit 8f8db75bb4
2 changed files with 7 additions and 1 deletions
@@ -130,10 +130,14 @@ fun allConfigurators() = Extensions.getExtensions(KotlinProjectConfigurator.EP_N
fun getNonConfiguredModules(project: Project, configurator: KotlinProjectConfigurator): List<Module> {
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<Module>.excludeSourceRootModules(): List<Module> {
val pathMap = buildExternalPathMap()
return filter { it.externalProjectId == null || it.externalProjectPath == null } + pathMap.values
@@ -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() {