Rename JVMPlatform and JSPlatform and make them nested in TargetPlatformKind
To avoid confusion with JvmPlatform and JsPlatform from frontend.java and js.frontend respectively
This commit is contained in:
@@ -31,8 +31,18 @@ sealed class TargetPlatformKind<out Version : DescriptionAware>(
|
||||
) : DescriptionAware {
|
||||
override val description = "$name ${version.description}"
|
||||
|
||||
class Jvm(version: JvmTarget) : TargetPlatformKind<JvmTarget>(version, "JVM") {
|
||||
companion object {
|
||||
val JVM_PLATFORMS by lazy { JvmTarget.values().map(::Jvm) }
|
||||
|
||||
operator fun get(version: JvmTarget) = JVM_PLATFORMS[version.ordinal]
|
||||
}
|
||||
}
|
||||
|
||||
object JavaScript : TargetPlatformKind<NoVersion>(NoVersion, "JavaScript")
|
||||
|
||||
companion object {
|
||||
val ALL_PLATFORMS: List<TargetPlatformKind<*>> by lazy { JVMPlatform.JVM_PLATFORMS + JSPlatform }
|
||||
val ALL_PLATFORMS: List<TargetPlatformKind<*>> by lazy { Jvm.JVM_PLATFORMS + JavaScript }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,16 +50,6 @@ object NoVersion : DescriptionAware {
|
||||
override val description = ""
|
||||
}
|
||||
|
||||
class JVMPlatform(version: JvmTarget) : TargetPlatformKind<JvmTarget>(version, "JVM") {
|
||||
companion object {
|
||||
val JVM_PLATFORMS by lazy { JvmTarget.values().map(::JVMPlatform) }
|
||||
|
||||
operator fun get(version: JvmTarget) = JVM_PLATFORMS[version.ordinal]
|
||||
}
|
||||
}
|
||||
|
||||
object JSPlatform : TargetPlatformKind<NoVersion>(NoVersion, "JavaScript")
|
||||
|
||||
data class KotlinVersionInfo(
|
||||
var languageLevel: LanguageVersion? = null,
|
||||
var apiLevel: LanguageVersion? = null,
|
||||
|
||||
+1
-2
@@ -36,7 +36,6 @@ import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments;
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments;
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants;
|
||||
import org.jetbrains.kotlin.config.CompilerSettings;
|
||||
import org.jetbrains.kotlin.config.JSPlatform;
|
||||
import org.jetbrains.kotlin.config.TargetPlatformKind;
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle;
|
||||
import org.jetbrains.kotlin.idea.PluginStartupComponent;
|
||||
@@ -122,7 +121,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
||||
}
|
||||
|
||||
public void setTargetPlatform(@Nullable TargetPlatformKind<?> targetPlatform) {
|
||||
k2jsPanel.setVisible(JSPlatform.INSTANCE.equals(targetPlatform));
|
||||
k2jsPanel.setVisible(TargetPlatformKind.JavaScript.INSTANCE.equals(targetPlatform));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
|
||||
+3
-5
@@ -25,8 +25,6 @@ import com.intellij.ide.IdeBundle
|
||||
import com.intellij.openapi.roots.ui.configuration.libraries.AddCustomLibraryDialog
|
||||
import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription
|
||||
import com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentationManager
|
||||
import org.jetbrains.kotlin.config.JSPlatform
|
||||
import org.jetbrains.kotlin.config.JVMPlatform
|
||||
import org.jetbrains.kotlin.config.TargetPlatformKind
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdDescription
|
||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimeLibraryDescription
|
||||
@@ -43,8 +41,8 @@ class FrameworkLibraryValidatorWithDynamicDescription(
|
||||
get() {
|
||||
val project = context.module.project
|
||||
return when (this) {
|
||||
is JVMPlatform -> JavaRuntimeLibraryDescription(project)
|
||||
is JSPlatform -> JSLibraryStdDescription(project)
|
||||
is TargetPlatformKind.Jvm -> JavaRuntimeLibraryDescription(project)
|
||||
is TargetPlatformKind.JavaScript -> JSLibraryStdDescription(project)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,4 +87,4 @@ class FrameworkLibraryValidatorWithDynamicDescription(
|
||||
validatorsManager.validate()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,10 @@ import com.intellij.openapi.roots.ModuleRootManager
|
||||
import com.intellij.openapi.roots.ModuleRootModel
|
||||
import com.intellij.util.text.VersionComparatorUtil
|
||||
import org.jetbrains.kotlin.cli.common.arguments.copyBean
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.config.KotlinFacetSettings
|
||||
import org.jetbrains.kotlin.config.LanguageVersion
|
||||
import org.jetbrains.kotlin.config.TargetPlatformKind
|
||||
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JsCompilerArgumentsHolder
|
||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
||||
@@ -41,8 +44,8 @@ private fun getRuntimeLibraryVersions(
|
||||
targetPlatform: TargetPlatformKind<*>
|
||||
): Collection<String> {
|
||||
val presentationProvider = when (targetPlatform) {
|
||||
is JSPlatform -> JSLibraryStdPresentationProvider.getInstance()
|
||||
is JVMPlatform -> JavaRuntimePresentationProvider.getInstance()
|
||||
is TargetPlatformKind.JavaScript -> JSLibraryStdPresentationProvider.getInstance()
|
||||
is TargetPlatformKind.Jvm -> JavaRuntimePresentationProvider.getInstance()
|
||||
}
|
||||
|
||||
KotlinVersionInfoProvider.EP_NAME
|
||||
@@ -60,15 +63,15 @@ private fun getRuntimeLibraryVersions(
|
||||
}
|
||||
|
||||
private fun getDefaultTargetPlatform(module: Module, rootModel: ModuleRootModel?): TargetPlatformKind<*> {
|
||||
if (getRuntimeLibraryVersions(module, rootModel, JSPlatform).any()) {
|
||||
return JSPlatform
|
||||
if (getRuntimeLibraryVersions(module, rootModel, TargetPlatformKind.JavaScript).any()) {
|
||||
return TargetPlatformKind.JavaScript
|
||||
}
|
||||
|
||||
val sdk = ((rootModel ?: ModuleRootManager.getInstance(module))).sdk
|
||||
val sdkVersion = (sdk?.sdkType as? JavaSdk)?.getVersion(sdk!!)
|
||||
return when {
|
||||
sdkVersion != null && sdkVersion <= JavaSdkVersion.JDK_1_6 -> JVMPlatform[JvmTarget.JVM_1_6]
|
||||
else -> JVMPlatform[JvmTarget.JVM_1_8]
|
||||
sdkVersion != null && sdkVersion <= JavaSdkVersion.JDK_1_6 -> TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]
|
||||
else -> TargetPlatformKind.Jvm[JvmTarget.JVM_1_8]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +95,7 @@ internal fun getLibraryLanguageLevel(
|
||||
rootModel: ModuleRootModel?,
|
||||
targetPlatform: TargetPlatformKind<*>?
|
||||
): LanguageVersion {
|
||||
val minVersion = getRuntimeLibraryVersions(module, rootModel, targetPlatform ?: JVMPlatform[JvmTarget.JVM_1_8])
|
||||
val minVersion = getRuntimeLibraryVersions(module, rootModel, targetPlatform ?: TargetPlatformKind.Jvm[JvmTarget.JVM_1_8])
|
||||
.minWith(VersionComparatorUtil.COMPARATOR)
|
||||
return getDefaultLanguageLevel(module, minVersion)
|
||||
}
|
||||
@@ -130,9 +133,7 @@ internal fun KotlinFacetSettings.initializeIfNeeded(module: Module, rootModel: M
|
||||
}
|
||||
|
||||
val TargetPlatformKind<*>.mavenLibraryId: String
|
||||
get() {
|
||||
return when (this) {
|
||||
is JVMPlatform -> KotlinJavaMavenConfigurator.STD_LIB_ID
|
||||
is JSPlatform -> KotlinJavascriptMavenConfigurator.STD_LIB_ID
|
||||
}
|
||||
}
|
||||
get() = when (this) {
|
||||
is TargetPlatformKind.Jvm -> KotlinJavaMavenConfigurator.STD_LIB_ID
|
||||
is TargetPlatformKind.JavaScript -> KotlinJavascriptMavenConfigurator.STD_LIB_ID
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.copyBean
|
||||
import org.jetbrains.kotlin.config.CompilerSettings
|
||||
import org.jetbrains.kotlin.config.JVMPlatform
|
||||
import org.jetbrains.kotlin.config.TargetPlatformKind
|
||||
import org.jetbrains.kotlin.jps.model.kotlinFacetExtension
|
||||
|
||||
class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
||||
@@ -78,7 +78,7 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
||||
fun getK2JvmCompilerArguments(module: JpsModule): K2JVMCompilerArguments {
|
||||
val defaultArguments = getSettings(module.project).k2JvmCompilerArguments
|
||||
val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments
|
||||
val targetPlatform = facetSettings.versionInfo.targetPlatformKind as? JVMPlatform ?: return defaultArguments
|
||||
val targetPlatform = facetSettings.versionInfo.targetPlatformKind as? TargetPlatformKind.Jvm ?: return defaultArguments
|
||||
return copyBean(defaultArguments).apply {
|
||||
jvmTarget = targetPlatform.version.description
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user