diff --git a/idea/kotlin-gradle-tooling/src/KotlinGradleModelBuilder.kt b/idea/kotlin-gradle-tooling/src/KotlinGradleModelBuilder.kt index da9fe19668e..d82908da8d7 100644 --- a/idea/kotlin-gradle-tooling/src/KotlinGradleModelBuilder.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinGradleModelBuilder.kt @@ -49,6 +49,10 @@ class KotlinGradleModelBuilder : ModelBuilderService { val kotlinCompileTaskClasses = listOf("org.jetbrains.kotlin.gradle.tasks.KotlinCompile_Decorated", "org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile_Decorated") val platformPluginIds = listOf("kotlin-platform-jvm", "kotlin-platform-js", "kotlin-platform-common") + val pluginToPlatform = linkedMapOf( + "kotlin" to "kotlin-platform-jvm", + "kotlin2js" to "kotlin-platform-js" + ) } override fun getErrorMessageBuilder(project: Project, e: Exception): ErrorMessageBuilder { @@ -126,12 +130,15 @@ class KotlinGradleModelBuilder : ModelBuilderService { collectCompilerArguments(compileTask, "getDefaultSerializedCompilerArguments", defaultCompilerArgumentsBySourceSet) } + val platform = platformPluginIds.singleOrNull { project.plugins.findPlugin(it) != null } + ?: pluginToPlatform.entries.singleOrNull { project.plugins.findPlugin(it.key) != null }?.value + return KotlinGradleModelImpl( getImplements(project), currentCompilerArgumentsBySourceSet, defaultCompilerArgumentsBySourceSet, getCoroutines(project), - platformPluginIds.singleOrNull { project.plugins.findPlugin(it) != null } + platform ) } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt index e09d35069ed..01f2b8dabde 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt @@ -445,40 +445,6 @@ class GradleFacetImportTest : GradleImportingTestCase() { } } - @Test - fun testCommonImport() { - createProjectSubFile("build.gradle", """ - group 'Again' - version '1.0-SNAPSHOT' - - buildscript { - repositories { - mavenCentral() - maven { - url 'http://dl.bintray.com/kotlin/kotlin-eap-1.1' - } - } - - dependencies { - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0") - } - } - - apply plugin: 'kotlin' - - dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib-common:1.1.0" - } - """) - importProject() - - with (facetSettings) { - Assert.assertEquals("1.1", languageLevel!!.versionString) - Assert.assertEquals("1.1", apiLevel!!.versionString) - Assert.assertEquals(TargetPlatformKind.Common, targetPlatformKind) - } - } - @Test fun testJvmImportByPlatformPlugin() { createProjectSubFile("build.gradle", """ @@ -569,6 +535,66 @@ class GradleFacetImportTest : GradleImportingTestCase() { } } + @Test + fun testJvmImportByKotlinPlugin() { + createProjectSubFile("build.gradle", """ + group 'Again' + version '1.0-SNAPSHOT' + + buildscript { + repositories { + mavenCentral() + maven { + url 'http://dl.bintray.com/kotlin/kotlin-eap-1.1' + } + } + + dependencies { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0") + } + } + + apply plugin: 'kotlin' + """) + importProject() + + with (facetSettings) { + Assert.assertEquals("1.1", languageLevel!!.versionString) + Assert.assertEquals("1.1", apiLevel!!.versionString) + Assert.assertEquals(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6], targetPlatformKind) + } + } + + @Test + fun testJsImportByKotlin2JsPlugin() { + createProjectSubFile("build.gradle", """ + group 'Again' + version '1.0-SNAPSHOT' + + buildscript { + repositories { + mavenCentral() + maven { + url 'http://dl.bintray.com/kotlin/kotlin-eap-1.1' + } + } + + dependencies { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0") + } + } + + apply plugin: 'kotlin2js' + """) + importProject() + + with (facetSettings) { + Assert.assertEquals("1.1", languageLevel!!.versionString) + Assert.assertEquals("1.1", apiLevel!!.versionString) + Assert.assertEquals(TargetPlatformKind.JavaScript, targetPlatformKind) + } + } + @Test fun testArgumentEscaping() { createProjectSubFile("build.gradle", """