Don't report "can be configured" status if the file is already configured with another Gradle configurator
This commit is contained in:
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.configuration
|
||||
|
||||
import com.intellij.codeInsight.CodeInsightUtilCore
|
||||
import com.intellij.ide.actions.OpenFileAction
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.module.ModuleUtil
|
||||
@@ -65,13 +66,15 @@ abstract class KotlinWithGradleConfigurator : KotlinProjectConfigurator {
|
||||
val buildFiles = listOf(getBuildGradleFile(module.project, getModuleFilePath(module)),
|
||||
getBuildGradleFile(module.project, getTopLevelProjectFilePath(module.project)))
|
||||
.filterNotNull()
|
||||
if (buildFiles.none(this::isFileConfigured)) {
|
||||
if (buildFiles.none { buildFile -> allGradleConfigurators.any { it.isFileConfigured(buildFile) } })
|
||||
return ConfigureKotlinStatus.CAN_BE_CONFIGURED
|
||||
}
|
||||
|
||||
return ConfigureKotlinStatus.BROKEN
|
||||
}
|
||||
|
||||
private val allGradleConfigurators: Collection<KotlinWithGradleConfigurator>
|
||||
get() = Extensions.getExtensions(KotlinProjectConfigurator.EP_NAME).filterIsInstance<KotlinWithGradleConfigurator>()
|
||||
|
||||
protected open fun isApplicable(module: Module): Boolean {
|
||||
return KotlinPluginUtil.isGradleModule(module) && !KotlinPluginUtil.isAndroidGradleModule(module)
|
||||
}
|
||||
|
||||
@@ -57,10 +57,11 @@ class GradleConfiguratorTest : GradleImportingTestCase() {
|
||||
myProject.baseDir.createChildData(null, "build.gradle")
|
||||
|
||||
val module = ModuleManager.getInstance(myProject).findModuleByName("app")!!
|
||||
val configurator = findGradleModuleConfigurator()
|
||||
// We have a Kotlin runtime in build.gradle but not in the classpath, so it doesn't make sense
|
||||
// to suggest configuring it
|
||||
assertEquals(ConfigureKotlinStatus.BROKEN, configurator.getStatus(module))
|
||||
assertEquals(ConfigureKotlinStatus.BROKEN, findGradleModuleConfigurator().getStatus(module))
|
||||
// Don't offer the JS configurator if the JVM configuration exists but is broken
|
||||
assertEquals(ConfigureKotlinStatus.BROKEN, findJsGradleModuleConfigurator().getStatus(module))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -114,6 +115,8 @@ class GradleConfiguratorTest : GradleImportingTestCase() {
|
||||
private fun findGradleModuleConfigurator() = Extensions.findExtension(KotlinProjectConfigurator.EP_NAME,
|
||||
KotlinGradleModuleConfigurator::class.java)
|
||||
|
||||
private fun findJsGradleModuleConfigurator() = Extensions.findExtension(KotlinProjectConfigurator.EP_NAME,
|
||||
KotlinJsGradleModuleConfigurator::class.java)
|
||||
@Test
|
||||
fun testListNonConfiguredModules() {
|
||||
createProjectSubFile("settings.gradle", "include ':app'")
|
||||
|
||||
Reference in New Issue
Block a user