diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt index 23376ddb30a..e8e31d27522 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt @@ -73,6 +73,13 @@ abstract class CustomLibraryDescriptorWithDeferredConfig } fun finishLibConfiguration(module: Module, rootModel: ModifiableRootModel) { + configureKotlinSettings(module.project, rootModel.sdk) + + KotlinCommonCompilerArgumentsHolder.getInstance(module.project).update { + languageVersionView = VersionView.Specific(LanguageVersion.LATEST_STABLE) + apiVersionView = VersionView.Specific(LanguageVersion.LATEST_STABLE) + } + val library = rootModel.orderEntries().findLibrary { library -> val libraryPresentationManager = LibraryPresentationManager.getInstance() val classFiles = library.getFiles(OrderRootType.CLASSES).toList() @@ -99,13 +106,6 @@ abstract class CustomLibraryDescriptorWithDeferredConfig } } - configureKotlinSettings(module.project, rootModel.sdk) - - KotlinCommonCompilerArgumentsHolder.getInstance(module.project).update { - languageVersionView = VersionView.Specific(LanguageVersion.LATEST_STABLE) - apiVersionView = VersionView.Specific(LanguageVersion.LATEST_STABLE) - } - collector.showNotification() } finally { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt index a7d370eb637..81b1ab546af 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.idea.configuration.BuildSystemType import org.jetbrains.kotlin.idea.configuration.getBuildSystemType import javax.swing.JComponent -internal class JavaFrameworkSupportProvider : FrameworkSupportInModuleProvider() { +class JavaFrameworkSupportProvider : FrameworkSupportInModuleProvider() { override fun getFrameworkType(): FrameworkTypeEx = JavaFrameworkType.instance override fun createConfigurable(model: FrameworkSupportModel): FrameworkSupportInModuleConfigurable { diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinFrameworkSupportProviderTest.kt b/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinFrameworkSupportProviderTest.kt new file mode 100644 index 00000000000..6889edad3a4 --- /dev/null +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinFrameworkSupportProviderTest.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.configuration + +import com.intellij.framework.addSupport.FrameworkSupportInModuleProvider +import com.intellij.ide.util.frameworkSupport.FrameworkSupportProviderTestCase +import junit.framework.TestCase +import org.jetbrains.kotlin.config.LanguageVersion +import org.jetbrains.kotlin.config.VersionView +import org.jetbrains.kotlin.config.apiVersionView +import org.jetbrains.kotlin.config.languageVersionView +import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder +import org.jetbrains.kotlin.idea.framework.JSFrameworkSupportProvider +import org.jetbrains.kotlin.idea.framework.JavaFrameworkSupportProvider + +class KotlinFrameworkSupportProviderTest : FrameworkSupportProviderTestCase() { + private fun doTest(provider: FrameworkSupportInModuleProvider) { + selectFramework(provider).createLibraryDescription() + addSupport() + + with (KotlinCommonCompilerArgumentsHolder.getInstance(module.project).settings) { + TestCase.assertEquals(VersionView.Specific(LanguageVersion.LATEST_STABLE), languageVersionView) + TestCase.assertEquals(VersionView.Specific(LanguageVersion.LATEST_STABLE), apiVersionView) + } + } + + fun testJvm() = doTest(JavaFrameworkSupportProvider()) + + fun testJs() = doTest(JSFrameworkSupportProvider()) +} \ No newline at end of file