getNonConfiguredModules(project, configurator) excludes modules already configured with other configurators
#KT-16381 Fixed
This commit is contained in:
@@ -130,10 +130,14 @@ fun allConfigurators() = Extensions.getExtensions(KotlinProjectConfigurator.EP_N
|
|||||||
|
|
||||||
fun getNonConfiguredModules(project: Project, configurator: KotlinProjectConfigurator): List<Module> {
|
fun getNonConfiguredModules(project: Project, configurator: KotlinProjectConfigurator): List<Module> {
|
||||||
return project.allModules()
|
return project.allModules()
|
||||||
.filter { module -> configurator.getStatus(module) == ConfigureKotlinStatus.CAN_BE_CONFIGURED }
|
.filter { module -> configurator.canConfigure(module) }
|
||||||
.excludeSourceRootModules()
|
.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> {
|
fun Collection<Module>.excludeSourceRootModules(): List<Module> {
|
||||||
val pathMap = buildExternalPathMap()
|
val pathMap = buildExternalPathMap()
|
||||||
return filter { it.externalProjectId == null || it.externalProjectPath == null } + pathMap.values
|
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 {
|
public void testTwoModulesWithNonDefaultPath_doNotCopyInDefault() throws IOException {
|
||||||
doTestConfigureModulesWithNonDefaultSetup(JAVA_CONFIGURATOR);
|
doTestConfigureModulesWithNonDefaultSetup(JAVA_CONFIGURATOR);
|
||||||
|
assertEmpty(ConfigureKotlinInProjectUtilsKt.getNonConfiguredModules(myProject, JS_CONFIGURATOR));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testTwoModulesWithJSNonDefaultPath_doNotCopyInDefault() throws IOException {
|
public void testTwoModulesWithJSNonDefaultPath_doNotCopyInDefault() throws IOException {
|
||||||
doTestConfigureModulesWithNonDefaultSetup(JS_CONFIGURATOR);
|
doTestConfigureModulesWithNonDefaultSetup(JS_CONFIGURATOR);
|
||||||
|
assertEmpty(ConfigureKotlinInProjectUtilsKt.getNonConfiguredModules(myProject, JAVA_CONFIGURATOR));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNewLibrary_jarExists_js() {
|
public void testNewLibrary_jarExists_js() {
|
||||||
|
|||||||
Reference in New Issue
Block a user