Update "Kotlin configured but no stdlib" status on file update (KT-22356)

Provide feedback before project re-import is finished.

 #KT-22356 Fixed
This commit is contained in:
Nikolay Krasko
2018-01-17 17:08:34 +03:00
parent 2637a36e22
commit ae2d67a5b1
@@ -49,7 +49,10 @@ class KotlinMavenPluginPhaseInspection : DomElementsInspection<MavenDomProjectMo
private val STDLIB_JRE8_MAVEN_ID = MavenId(KotlinMavenConfigurator.GROUP_ID, MAVEN_STDLIB_ID_JRE8, null) private val STDLIB_JRE8_MAVEN_ID = MavenId(KotlinMavenConfigurator.GROUP_ID, MAVEN_STDLIB_ID_JRE8, null)
private val STDLIB_JDK8_MAVEN_ID = MavenId(KotlinMavenConfigurator.GROUP_ID, MAVEN_STDLIB_ID_JDK8, null) private val STDLIB_JDK8_MAVEN_ID = MavenId(KotlinMavenConfigurator.GROUP_ID, MAVEN_STDLIB_ID_JDK8, null)
private val JVM_STDLIB_IDS = listOf(STDLIB_MAVEN_ID, STDLIB_JRE7_MAVEN_ID, STDLIB_JDK7_MAVEN_ID, STDLIB_JRE8_MAVEN_ID, STDLIB_JDK8_MAVEN_ID) private val JVM_STDLIB_IDS =
listOf(STDLIB_MAVEN_ID, STDLIB_JRE7_MAVEN_ID, STDLIB_JDK7_MAVEN_ID, STDLIB_JRE8_MAVEN_ID, STDLIB_JDK8_MAVEN_ID)
private val JS_STDLIB_MAVEN_ID = MavenId(KotlinMavenConfigurator.GROUP_ID, MAVEN_JS_STDLIB_ID, null)
} }
override fun getStaticDescription() = "Reports kotlin-maven-plugin configuration issues" override fun getStaticDescription() = "Reports kotlin-maven-plugin configuration issues"
@@ -129,24 +132,28 @@ class KotlinMavenPluginPhaseInspection : DomElementsInspection<MavenDomProjectMo
} }
} }
val stdlibDependencies = mavenProject.findDependencies(KotlinMavenConfigurator.GROUP_ID, MAVEN_STDLIB_ID) if (hasJvmExecution && pom.findDependencies(JVM_STDLIB_IDS).isEmpty()) {
val jsDependencies = mavenProject.findDependencies(KotlinMavenConfigurator.GROUP_ID, MAVEN_JS_STDLIB_ID) val stdlibDependencies = mavenProject.findDependencies(KotlinMavenConfigurator.GROUP_ID, MAVEN_STDLIB_ID)
if (stdlibDependencies.isEmpty()) {
if (hasJvmExecution && stdlibDependencies.isEmpty()) { holder.createProblem(
holder.createProblem( kotlinPlugin.artifactId.createStableCopy(),
kotlinPlugin.artifactId.createStableCopy(), HighlightSeverity.WARNING,
HighlightSeverity.WARNING, "Kotlin JVM compiler configured but no $MAVEN_STDLIB_ID dependency",
"Kotlin JVM compiler configured but no $MAVEN_STDLIB_ID dependency", FixAddStdlibLocalFix(domFileElement.file, MAVEN_STDLIB_ID, kotlinPlugin.version.rawText)
FixAddStdlibLocalFix(domFileElement.file, MAVEN_STDLIB_ID, kotlinPlugin.version.rawText) )
) }
} }
if (hasJsExecution && jsDependencies.isEmpty()) {
holder.createProblem( if (hasJsExecution && pom.findDependencies(JVM_STDLIB_IDS).isEmpty()) {
kotlinPlugin.artifactId.createStableCopy(), val jsDependencies = mavenProject.findDependencies(KotlinMavenConfigurator.GROUP_ID, MAVEN_JS_STDLIB_ID)
HighlightSeverity.WARNING, if (jsDependencies.isEmpty()) {
"Kotlin JavaScript compiler configured but no $MAVEN_JS_STDLIB_ID dependency", holder.createProblem(
FixAddStdlibLocalFix(domFileElement.file, MAVEN_JS_STDLIB_ID, kotlinPlugin.version.rawText) kotlinPlugin.artifactId.createStableCopy(),
) HighlightSeverity.WARNING,
"Kotlin JavaScript compiler configured but no $MAVEN_JS_STDLIB_ID dependency",
FixAddStdlibLocalFix(domFileElement.file, MAVEN_JS_STDLIB_ID, kotlinPlugin.version.rawText)
)
}
} }
} }
} }
@@ -163,7 +170,7 @@ class KotlinMavenPluginPhaseInspection : DomElementsInspection<MavenDomProjectMo
} }
} }
val stdlibJsDependencies = pom.findDependencies(MavenId(KotlinMavenConfigurator.GROUP_ID, MAVEN_JS_STDLIB_ID, null)) val stdlibJsDependencies = pom.findDependencies(JS_STDLIB_MAVEN_ID)
if (!hasJsExecution && stdlibJsDependencies.isNotEmpty()) { if (!hasJsExecution && stdlibJsDependencies.isNotEmpty()) {
stdlibJsDependencies.forEach { dep -> stdlibJsDependencies.forEach { dep ->
holder.createProblem( holder.createProblem(