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 {
|
) : DescriptionAware {
|
||||||
override val description = "$name ${version.description}"
|
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 {
|
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 = ""
|
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(
|
data class KotlinVersionInfo(
|
||||||
var languageLevel: LanguageVersion? = null,
|
var languageLevel: LanguageVersion? = null,
|
||||||
var apiLevel: 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.K2JSCompilerArguments;
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants;
|
import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants;
|
||||||
import org.jetbrains.kotlin.config.CompilerSettings;
|
import org.jetbrains.kotlin.config.CompilerSettings;
|
||||||
import org.jetbrains.kotlin.config.JSPlatform;
|
|
||||||
import org.jetbrains.kotlin.config.TargetPlatformKind;
|
import org.jetbrains.kotlin.config.TargetPlatformKind;
|
||||||
import org.jetbrains.kotlin.idea.KotlinBundle;
|
import org.jetbrains.kotlin.idea.KotlinBundle;
|
||||||
import org.jetbrains.kotlin.idea.PluginStartupComponent;
|
import org.jetbrains.kotlin.idea.PluginStartupComponent;
|
||||||
@@ -122,7 +121,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setTargetPlatform(@Nullable TargetPlatformKind<?> targetPlatform) {
|
public void setTargetPlatform(@Nullable TargetPlatformKind<?> targetPlatform) {
|
||||||
k2jsPanel.setVisible(JSPlatform.INSTANCE.equals(targetPlatform));
|
k2jsPanel.setVisible(TargetPlatformKind.JavaScript.INSTANCE.equals(targetPlatform));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
|||||||
+2
-4
@@ -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.AddCustomLibraryDialog
|
||||||
import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription
|
import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription
|
||||||
import com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentationManager
|
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.config.TargetPlatformKind
|
||||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdDescription
|
import org.jetbrains.kotlin.idea.framework.JSLibraryStdDescription
|
||||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimeLibraryDescription
|
import org.jetbrains.kotlin.idea.framework.JavaRuntimeLibraryDescription
|
||||||
@@ -43,8 +41,8 @@ class FrameworkLibraryValidatorWithDynamicDescription(
|
|||||||
get() {
|
get() {
|
||||||
val project = context.module.project
|
val project = context.module.project
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is JVMPlatform -> JavaRuntimeLibraryDescription(project)
|
is TargetPlatformKind.Jvm -> JavaRuntimeLibraryDescription(project)
|
||||||
is JSPlatform -> JSLibraryStdDescription(project)
|
is TargetPlatformKind.JavaScript -> JSLibraryStdDescription(project)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,10 @@ import com.intellij.openapi.roots.ModuleRootManager
|
|||||||
import com.intellij.openapi.roots.ModuleRootModel
|
import com.intellij.openapi.roots.ModuleRootModel
|
||||||
import com.intellij.util.text.VersionComparatorUtil
|
import com.intellij.util.text.VersionComparatorUtil
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.copyBean
|
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.Kotlin2JsCompilerArgumentsHolder
|
||||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
||||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
||||||
@@ -41,8 +44,8 @@ private fun getRuntimeLibraryVersions(
|
|||||||
targetPlatform: TargetPlatformKind<*>
|
targetPlatform: TargetPlatformKind<*>
|
||||||
): Collection<String> {
|
): Collection<String> {
|
||||||
val presentationProvider = when (targetPlatform) {
|
val presentationProvider = when (targetPlatform) {
|
||||||
is JSPlatform -> JSLibraryStdPresentationProvider.getInstance()
|
is TargetPlatformKind.JavaScript -> JSLibraryStdPresentationProvider.getInstance()
|
||||||
is JVMPlatform -> JavaRuntimePresentationProvider.getInstance()
|
is TargetPlatformKind.Jvm -> JavaRuntimePresentationProvider.getInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
KotlinVersionInfoProvider.EP_NAME
|
KotlinVersionInfoProvider.EP_NAME
|
||||||
@@ -60,15 +63,15 @@ private fun getRuntimeLibraryVersions(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getDefaultTargetPlatform(module: Module, rootModel: ModuleRootModel?): TargetPlatformKind<*> {
|
private fun getDefaultTargetPlatform(module: Module, rootModel: ModuleRootModel?): TargetPlatformKind<*> {
|
||||||
if (getRuntimeLibraryVersions(module, rootModel, JSPlatform).any()) {
|
if (getRuntimeLibraryVersions(module, rootModel, TargetPlatformKind.JavaScript).any()) {
|
||||||
return JSPlatform
|
return TargetPlatformKind.JavaScript
|
||||||
}
|
}
|
||||||
|
|
||||||
val sdk = ((rootModel ?: ModuleRootManager.getInstance(module))).sdk
|
val sdk = ((rootModel ?: ModuleRootManager.getInstance(module))).sdk
|
||||||
val sdkVersion = (sdk?.sdkType as? JavaSdk)?.getVersion(sdk!!)
|
val sdkVersion = (sdk?.sdkType as? JavaSdk)?.getVersion(sdk!!)
|
||||||
return when {
|
return when {
|
||||||
sdkVersion != null && sdkVersion <= JavaSdkVersion.JDK_1_6 -> JVMPlatform[JvmTarget.JVM_1_6]
|
sdkVersion != null && sdkVersion <= JavaSdkVersion.JDK_1_6 -> TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]
|
||||||
else -> JVMPlatform[JvmTarget.JVM_1_8]
|
else -> TargetPlatformKind.Jvm[JvmTarget.JVM_1_8]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +95,7 @@ internal fun getLibraryLanguageLevel(
|
|||||||
rootModel: ModuleRootModel?,
|
rootModel: ModuleRootModel?,
|
||||||
targetPlatform: TargetPlatformKind<*>?
|
targetPlatform: TargetPlatformKind<*>?
|
||||||
): LanguageVersion {
|
): 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)
|
.minWith(VersionComparatorUtil.COMPARATOR)
|
||||||
return getDefaultLanguageLevel(module, minVersion)
|
return getDefaultLanguageLevel(module, minVersion)
|
||||||
}
|
}
|
||||||
@@ -130,9 +133,7 @@ internal fun KotlinFacetSettings.initializeIfNeeded(module: Module, rootModel: M
|
|||||||
}
|
}
|
||||||
|
|
||||||
val TargetPlatformKind<*>.mavenLibraryId: String
|
val TargetPlatformKind<*>.mavenLibraryId: String
|
||||||
get() {
|
get() = when (this) {
|
||||||
return when (this) {
|
is TargetPlatformKind.Jvm -> KotlinJavaMavenConfigurator.STD_LIB_ID
|
||||||
is JVMPlatform -> KotlinJavaMavenConfigurator.STD_LIB_ID
|
is TargetPlatformKind.JavaScript -> KotlinJavascriptMavenConfigurator.STD_LIB_ID
|
||||||
is JSPlatform -> 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.K2JVMCompilerArguments
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.copyBean
|
import org.jetbrains.kotlin.cli.common.arguments.copyBean
|
||||||
import org.jetbrains.kotlin.config.CompilerSettings
|
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
|
import org.jetbrains.kotlin.jps.model.kotlinFacetExtension
|
||||||
|
|
||||||
class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
||||||
@@ -78,7 +78,7 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
|||||||
fun getK2JvmCompilerArguments(module: JpsModule): K2JVMCompilerArguments {
|
fun getK2JvmCompilerArguments(module: JpsModule): K2JVMCompilerArguments {
|
||||||
val defaultArguments = getSettings(module.project).k2JvmCompilerArguments
|
val defaultArguments = getSettings(module.project).k2JvmCompilerArguments
|
||||||
val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments
|
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 {
|
return copyBean(defaultArguments).apply {
|
||||||
jvmTarget = targetPlatform.version.description
|
jvmTarget = targetPlatform.version.description
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user