Minor: reformat and clean-up facetUtils.kt

This commit is contained in:
Dmitry Savvinov
2018-06-18 13:01:42 +03:00
parent 4fd076e4f4
commit 3fdfb49ac6
3 changed files with 203 additions and 176 deletions
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.idea.facet package org.jetbrains.kotlin.idea.facet
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProviderImpl
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.JavaSdk import com.intellij.openapi.projectRoots.JavaSdk
@@ -25,24 +24,17 @@ import com.intellij.openapi.projectRoots.JavaSdkVersion
import com.intellij.openapi.projectRoots.ProjectJdkTable import com.intellij.openapi.projectRoots.ProjectJdkTable
import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.roots.ModuleRootModel import com.intellij.openapi.roots.ModuleRootModel
import com.intellij.openapi.roots.ProjectRootModificationTracker
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.util.CachedValueProvider
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.cli.common.arguments.* import org.jetbrains.kotlin.cli.common.arguments.*
import org.jetbrains.kotlin.compilerRunner.ArgumentUtils import org.jetbrains.kotlin.compilerRunner.ArgumentUtils
import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.idea.caches.project.*
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JsCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JsCompilerArgumentsHolder
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder
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
import org.jetbrains.kotlin.idea.framework.KotlinSdkType import org.jetbrains.kotlin.idea.framework.KotlinSdkType
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.idea.util.projectStructure.sdk
import org.jetbrains.kotlin.idea.versions.* import org.jetbrains.kotlin.idea.versions.*
import kotlin.reflect.KProperty1 import kotlin.reflect.KProperty1
@@ -94,8 +86,7 @@ fun KotlinFacetSettings.initializeIfNeeded(
if (shouldInferAPILevel) { if (shouldInferAPILevel) {
apiLevel = if (useProjectSettings) { apiLevel = if (useProjectSettings) {
LanguageVersion.fromVersionString(commonArguments.apiVersion) ?: languageLevel LanguageVersion.fromVersionString(commonArguments.apiVersion) ?: languageLevel
} } else {
else {
languageLevel!!.coerceAtMost(getLibraryLanguageLevel(module, rootModel, targetPlatformKind)) languageLevel!!.coerceAtMost(getLibraryLanguageLevel(module, rootModel, targetPlatformKind))
} }
} }
@@ -111,7 +102,13 @@ fun TargetPlatformKind<*>.getPlatformCompilerArgumentsByProject(project: Project
val TargetPlatformKind<*>.mavenLibraryIds: List<String> val TargetPlatformKind<*>.mavenLibraryIds: List<String>
get() = when (this) { get() = when (this) {
is TargetPlatformKind.Jvm -> listOf(MAVEN_STDLIB_ID, MAVEN_STDLIB_ID_JRE7, MAVEN_STDLIB_ID_JDK7, MAVEN_STDLIB_ID_JRE8, MAVEN_STDLIB_ID_JDK8) is TargetPlatformKind.Jvm -> listOf(
MAVEN_STDLIB_ID,
MAVEN_STDLIB_ID_JRE7,
MAVEN_STDLIB_ID_JDK7,
MAVEN_STDLIB_ID_JRE8,
MAVEN_STDLIB_ID_JDK8
)
is TargetPlatformKind.JavaScript -> listOf(MAVEN_JS_STDLIB_ID, MAVEN_OLD_JS_STDLIB_ID) is TargetPlatformKind.JavaScript -> listOf(MAVEN_JS_STDLIB_ID, MAVEN_OLD_JS_STDLIB_ID)
is TargetPlatformKind.Common -> listOf(MAVEN_COMMON_STDLIB_ID) is TargetPlatformKind.Common -> listOf(MAVEN_COMMON_STDLIB_ID)
} }
@@ -123,9 +120,11 @@ val mavenLibraryIdToPlatform: Map<String, TargetPlatformKind<*>> by lazy {
.toMap() .toMap()
} }
fun Module.getOrCreateFacet(modelsProvider: IdeModifiableModelsProvider, fun Module.getOrCreateFacet(
modelsProvider: IdeModifiableModelsProvider,
useProjectSettings: Boolean, useProjectSettings: Boolean,
commitModel: Boolean = false): KotlinFacet { commitModel: Boolean = false
): KotlinFacet {
val facetModel = modelsProvider.getModifiableFacetModel(this) val facetModel = modelsProvider.getModifiableFacetModel(this)
val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName) val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName)
@@ -174,31 +173,41 @@ fun KotlinFacet.noVersionAutoAdvance() {
// "Primary" fields are written to argument beans directly and thus not presented in the "additional arguments" string // "Primary" fields are written to argument beans directly and thus not presented in the "additional arguments" string
// Update these lists when facet/project settings UI changes // Update these lists when facet/project settings UI changes
val commonUIExposedFields = listOf(CommonCompilerArguments::languageVersion.name, val commonUIExposedFields = listOf(
CommonCompilerArguments::languageVersion.name,
CommonCompilerArguments::apiVersion.name, CommonCompilerArguments::apiVersion.name,
CommonCompilerArguments::suppressWarnings.name, CommonCompilerArguments::suppressWarnings.name,
CommonCompilerArguments::coroutinesState.name) CommonCompilerArguments::coroutinesState.name
private val commonUIHiddenFields = listOf(CommonCompilerArguments::pluginClasspaths.name, )
CommonCompilerArguments::pluginOptions.name) private val commonUIHiddenFields = listOf(
CommonCompilerArguments::pluginClasspaths.name,
CommonCompilerArguments::pluginOptions.name
)
private val commonPrimaryFields = commonUIExposedFields + commonUIHiddenFields private val commonPrimaryFields = commonUIExposedFields + commonUIHiddenFields
private val jvmSpecificUIExposedFields = listOf(K2JVMCompilerArguments::jvmTarget.name, private val jvmSpecificUIExposedFields = listOf(
K2JVMCompilerArguments::jvmTarget.name,
K2JVMCompilerArguments::destination.name, K2JVMCompilerArguments::destination.name,
K2JVMCompilerArguments::classpath.name) K2JVMCompilerArguments::classpath.name
)
val jvmUIExposedFields = commonUIExposedFields + jvmSpecificUIExposedFields val jvmUIExposedFields = commonUIExposedFields + jvmSpecificUIExposedFields
private val jvmPrimaryFields = commonPrimaryFields + jvmSpecificUIExposedFields private val jvmPrimaryFields = commonPrimaryFields + jvmSpecificUIExposedFields
private val jsSpecificUIExposedFields = listOf(K2JSCompilerArguments::sourceMap.name, private val jsSpecificUIExposedFields = listOf(
K2JSCompilerArguments::sourceMap.name,
K2JSCompilerArguments::sourceMapPrefix.name, K2JSCompilerArguments::sourceMapPrefix.name,
K2JSCompilerArguments::sourceMapEmbedSources.name, K2JSCompilerArguments::sourceMapEmbedSources.name,
K2JSCompilerArguments::outputPrefix.name, K2JSCompilerArguments::outputPrefix.name,
K2JSCompilerArguments::outputPostfix.name, K2JSCompilerArguments::outputPostfix.name,
K2JSCompilerArguments::moduleKind.name) K2JSCompilerArguments::moduleKind.name
)
val jsUIExposedFields = commonUIExposedFields + jsSpecificUIExposedFields val jsUIExposedFields = commonUIExposedFields + jsSpecificUIExposedFields
private val jsPrimaryFields = commonPrimaryFields + jsSpecificUIExposedFields private val jsPrimaryFields = commonPrimaryFields + jsSpecificUIExposedFields
private val metadataSpecificUIExposedFields = listOf(K2MetadataCompilerArguments::destination.name, private val metadataSpecificUIExposedFields = listOf(
K2MetadataCompilerArguments::classpath.name) K2MetadataCompilerArguments::destination.name,
K2MetadataCompilerArguments::classpath.name
)
val metadataUIExposedFields = commonUIExposedFields + metadataSpecificUIExposedFields val metadataUIExposedFields = commonUIExposedFields + metadataSpecificUIExposedFields
private val metadataPrimaryFields = commonPrimaryFields + metadataSpecificUIExposedFields private val metadataPrimaryFields = commonPrimaryFields + metadataSpecificUIExposedFields
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.idea.facet package org.jetbrains.kotlin.idea.facet
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProviderImpl
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.JavaSdk import com.intellij.openapi.projectRoots.JavaSdk
@@ -25,24 +24,17 @@ import com.intellij.openapi.projectRoots.JavaSdkVersion
import com.intellij.openapi.projectRoots.ProjectJdkTable import com.intellij.openapi.projectRoots.ProjectJdkTable
import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.roots.ModuleRootModel import com.intellij.openapi.roots.ModuleRootModel
import com.intellij.openapi.roots.ProjectRootModificationTracker
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.util.CachedValueProvider
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.cli.common.arguments.* import org.jetbrains.kotlin.cli.common.arguments.*
import org.jetbrains.kotlin.compilerRunner.ArgumentUtils import org.jetbrains.kotlin.compilerRunner.ArgumentUtils
import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.idea.caches.project.*
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JsCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JsCompilerArgumentsHolder
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder
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
import org.jetbrains.kotlin.idea.framework.KotlinSdkType import org.jetbrains.kotlin.idea.framework.KotlinSdkType
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.idea.util.projectStructure.sdk
import org.jetbrains.kotlin.idea.versions.* import org.jetbrains.kotlin.idea.versions.*
import kotlin.reflect.KProperty1 import kotlin.reflect.KProperty1
@@ -94,8 +86,7 @@ fun KotlinFacetSettings.initializeIfNeeded(
if (shouldInferAPILevel) { if (shouldInferAPILevel) {
apiLevel = if (useProjectSettings) { apiLevel = if (useProjectSettings) {
LanguageVersion.fromVersionString(commonArguments.apiVersion) ?: languageLevel LanguageVersion.fromVersionString(commonArguments.apiVersion) ?: languageLevel
} } else {
else {
languageLevel!!.coerceAtMost(getLibraryLanguageLevel(module, rootModel, targetPlatformKind)) languageLevel!!.coerceAtMost(getLibraryLanguageLevel(module, rootModel, targetPlatformKind))
} }
} }
@@ -111,7 +102,13 @@ fun TargetPlatformKind<*>.getPlatformCompilerArgumentsByProject(project: Project
val TargetPlatformKind<*>.mavenLibraryIds: List<String> val TargetPlatformKind<*>.mavenLibraryIds: List<String>
get() = when (this) { get() = when (this) {
is TargetPlatformKind.Jvm -> listOf(MAVEN_STDLIB_ID, MAVEN_STDLIB_ID_JRE7, MAVEN_STDLIB_ID_JDK7, MAVEN_STDLIB_ID_JRE8, MAVEN_STDLIB_ID_JDK8) is TargetPlatformKind.Jvm -> listOf(
MAVEN_STDLIB_ID,
MAVEN_STDLIB_ID_JRE7,
MAVEN_STDLIB_ID_JDK7,
MAVEN_STDLIB_ID_JRE8,
MAVEN_STDLIB_ID_JDK8
)
is TargetPlatformKind.JavaScript -> listOf(MAVEN_JS_STDLIB_ID, MAVEN_OLD_JS_STDLIB_ID) is TargetPlatformKind.JavaScript -> listOf(MAVEN_JS_STDLIB_ID, MAVEN_OLD_JS_STDLIB_ID)
is TargetPlatformKind.Common -> listOf(MAVEN_COMMON_STDLIB_ID) is TargetPlatformKind.Common -> listOf(MAVEN_COMMON_STDLIB_ID)
} }
@@ -123,9 +120,11 @@ val mavenLibraryIdToPlatform: Map<String, TargetPlatformKind<*>> by lazy {
.toMap() .toMap()
} }
fun Module.getOrCreateFacet(modelsProvider: IdeModifiableModelsProvider, fun Module.getOrCreateFacet(
modelsProvider: IdeModifiableModelsProvider,
useProjectSettings: Boolean, useProjectSettings: Boolean,
commitModel: Boolean = false): KotlinFacet { commitModel: Boolean = false
): KotlinFacet {
val facetModel = modelsProvider.getModifiableFacetModel(this) val facetModel = modelsProvider.getModifiableFacetModel(this)
val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName) val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName)
@@ -174,31 +173,41 @@ fun KotlinFacet.noVersionAutoAdvance() {
// "Primary" fields are written to argument beans directly and thus not presented in the "additional arguments" string // "Primary" fields are written to argument beans directly and thus not presented in the "additional arguments" string
// Update these lists when facet/project settings UI changes // Update these lists when facet/project settings UI changes
val commonUIExposedFields = listOf(CommonCompilerArguments::languageVersion.name, val commonUIExposedFields = listOf(
CommonCompilerArguments::languageVersion.name,
CommonCompilerArguments::apiVersion.name, CommonCompilerArguments::apiVersion.name,
CommonCompilerArguments::suppressWarnings.name, CommonCompilerArguments::suppressWarnings.name,
CommonCompilerArguments::coroutinesState.name) CommonCompilerArguments::coroutinesState.name
private val commonUIHiddenFields = listOf(CommonCompilerArguments::pluginClasspaths.name, )
CommonCompilerArguments::pluginOptions.name) private val commonUIHiddenFields = listOf(
CommonCompilerArguments::pluginClasspaths.name,
CommonCompilerArguments::pluginOptions.name
)
private val commonPrimaryFields = commonUIExposedFields + commonUIHiddenFields private val commonPrimaryFields = commonUIExposedFields + commonUIHiddenFields
private val jvmSpecificUIExposedFields = listOf(K2JVMCompilerArguments::jvmTarget.name, private val jvmSpecificUIExposedFields = listOf(
K2JVMCompilerArguments::jvmTarget.name,
K2JVMCompilerArguments::destination.name, K2JVMCompilerArguments::destination.name,
K2JVMCompilerArguments::classpath.name) K2JVMCompilerArguments::classpath.name
)
val jvmUIExposedFields = commonUIExposedFields + jvmSpecificUIExposedFields val jvmUIExposedFields = commonUIExposedFields + jvmSpecificUIExposedFields
private val jvmPrimaryFields = commonPrimaryFields + jvmSpecificUIExposedFields private val jvmPrimaryFields = commonPrimaryFields + jvmSpecificUIExposedFields
private val jsSpecificUIExposedFields = listOf(K2JSCompilerArguments::sourceMap.name, private val jsSpecificUIExposedFields = listOf(
K2JSCompilerArguments::sourceMap.name,
K2JSCompilerArguments::sourceMapPrefix.name, K2JSCompilerArguments::sourceMapPrefix.name,
K2JSCompilerArguments::sourceMapEmbedSources.name, K2JSCompilerArguments::sourceMapEmbedSources.name,
K2JSCompilerArguments::outputPrefix.name, K2JSCompilerArguments::outputPrefix.name,
K2JSCompilerArguments::outputPostfix.name, K2JSCompilerArguments::outputPostfix.name,
K2JSCompilerArguments::moduleKind.name) K2JSCompilerArguments::moduleKind.name
)
val jsUIExposedFields = commonUIExposedFields + jsSpecificUIExposedFields val jsUIExposedFields = commonUIExposedFields + jsSpecificUIExposedFields
private val jsPrimaryFields = commonPrimaryFields + jsSpecificUIExposedFields private val jsPrimaryFields = commonPrimaryFields + jsSpecificUIExposedFields
private val metadataSpecificUIExposedFields = listOf(K2MetadataCompilerArguments::destination.name, private val metadataSpecificUIExposedFields = listOf(
K2MetadataCompilerArguments::classpath.name) K2MetadataCompilerArguments::destination.name,
K2MetadataCompilerArguments::classpath.name
)
val metadataUIExposedFields = commonUIExposedFields + metadataSpecificUIExposedFields val metadataUIExposedFields = commonUIExposedFields + metadataSpecificUIExposedFields
private val metadataPrimaryFields = commonPrimaryFields + metadataSpecificUIExposedFields private val metadataPrimaryFields = commonPrimaryFields + metadataSpecificUIExposedFields
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.idea.facet package org.jetbrains.kotlin.idea.facet
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProviderImpl
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.JavaSdk import com.intellij.openapi.projectRoots.JavaSdk
@@ -25,24 +24,17 @@ import com.intellij.openapi.projectRoots.JavaSdkVersion
import com.intellij.openapi.projectRoots.ProjectJdkTable import com.intellij.openapi.projectRoots.ProjectJdkTable
import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.roots.ModuleRootModel import com.intellij.openapi.roots.ModuleRootModel
import com.intellij.openapi.roots.ProjectRootModificationTracker
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.util.CachedValueProvider
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.cli.common.arguments.* import org.jetbrains.kotlin.cli.common.arguments.*
import org.jetbrains.kotlin.compilerRunner.ArgumentUtils import org.jetbrains.kotlin.compilerRunner.ArgumentUtils
import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.idea.caches.project.*
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JsCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JsCompilerArgumentsHolder
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder
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
import org.jetbrains.kotlin.idea.framework.KotlinSdkType import org.jetbrains.kotlin.idea.framework.KotlinSdkType
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.idea.util.projectStructure.sdk
import org.jetbrains.kotlin.idea.versions.* import org.jetbrains.kotlin.idea.versions.*
import kotlin.reflect.KProperty1 import kotlin.reflect.KProperty1
@@ -94,8 +86,7 @@ fun KotlinFacetSettings.initializeIfNeeded(
if (shouldInferAPILevel) { if (shouldInferAPILevel) {
apiLevel = if (useProjectSettings) { apiLevel = if (useProjectSettings) {
LanguageVersion.fromVersionString(commonArguments.apiVersion) ?: languageLevel LanguageVersion.fromVersionString(commonArguments.apiVersion) ?: languageLevel
} } else {
else {
languageLevel!!.coerceAtMost(getLibraryLanguageLevel(module, rootModel, targetPlatformKind)) languageLevel!!.coerceAtMost(getLibraryLanguageLevel(module, rootModel, targetPlatformKind))
} }
} }
@@ -111,7 +102,13 @@ fun TargetPlatformKind<*>.getPlatformCompilerArgumentsByProject(project: Project
val TargetPlatformKind<*>.mavenLibraryIds: List<String> val TargetPlatformKind<*>.mavenLibraryIds: List<String>
get() = when (this) { get() = when (this) {
is TargetPlatformKind.Jvm -> listOf(MAVEN_STDLIB_ID, MAVEN_STDLIB_ID_JRE7, MAVEN_STDLIB_ID_JDK7, MAVEN_STDLIB_ID_JRE8, MAVEN_STDLIB_ID_JDK8) is TargetPlatformKind.Jvm -> listOf(
MAVEN_STDLIB_ID,
MAVEN_STDLIB_ID_JRE7,
MAVEN_STDLIB_ID_JDK7,
MAVEN_STDLIB_ID_JRE8,
MAVEN_STDLIB_ID_JDK8
)
is TargetPlatformKind.JavaScript -> listOf(MAVEN_JS_STDLIB_ID, MAVEN_OLD_JS_STDLIB_ID) is TargetPlatformKind.JavaScript -> listOf(MAVEN_JS_STDLIB_ID, MAVEN_OLD_JS_STDLIB_ID)
is TargetPlatformKind.Common -> listOf(MAVEN_COMMON_STDLIB_ID) is TargetPlatformKind.Common -> listOf(MAVEN_COMMON_STDLIB_ID)
} }
@@ -123,9 +120,11 @@ val mavenLibraryIdToPlatform: Map<String, TargetPlatformKind<*>> by lazy {
.toMap() .toMap()
} }
fun Module.getOrCreateFacet(modelsProvider: IdeModifiableModelsProvider, fun Module.getOrCreateFacet(
modelsProvider: IdeModifiableModelsProvider,
useProjectSettings: Boolean, useProjectSettings: Boolean,
commitModel: Boolean = false): KotlinFacet { commitModel: Boolean = false
): KotlinFacet {
val facetModel = modelsProvider.getModifiableFacetModel(this) val facetModel = modelsProvider.getModifiableFacetModel(this)
val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName) val facet = facetModel.findFacet(KotlinFacetType.TYPE_ID, KotlinFacetType.INSTANCE.defaultFacetName)
@@ -174,31 +173,41 @@ fun KotlinFacet.noVersionAutoAdvance() {
// "Primary" fields are written to argument beans directly and thus not presented in the "additional arguments" string // "Primary" fields are written to argument beans directly and thus not presented in the "additional arguments" string
// Update these lists when facet/project settings UI changes // Update these lists when facet/project settings UI changes
val commonUIExposedFields = listOf(CommonCompilerArguments::languageVersion.name, val commonUIExposedFields = listOf(
CommonCompilerArguments::languageVersion.name,
CommonCompilerArguments::apiVersion.name, CommonCompilerArguments::apiVersion.name,
CommonCompilerArguments::suppressWarnings.name, CommonCompilerArguments::suppressWarnings.name,
CommonCompilerArguments::coroutinesState.name) CommonCompilerArguments::coroutinesState.name
private val commonUIHiddenFields = listOf(CommonCompilerArguments::pluginClasspaths.name, )
CommonCompilerArguments::pluginOptions.name) private val commonUIHiddenFields = listOf(
CommonCompilerArguments::pluginClasspaths.name,
CommonCompilerArguments::pluginOptions.name
)
private val commonPrimaryFields = commonUIExposedFields + commonUIHiddenFields private val commonPrimaryFields = commonUIExposedFields + commonUIHiddenFields
private val jvmSpecificUIExposedFields = listOf(K2JVMCompilerArguments::jvmTarget.name, private val jvmSpecificUIExposedFields = listOf(
K2JVMCompilerArguments::jvmTarget.name,
K2JVMCompilerArguments::destination.name, K2JVMCompilerArguments::destination.name,
K2JVMCompilerArguments::classpath.name) K2JVMCompilerArguments::classpath.name
)
val jvmUIExposedFields = commonUIExposedFields + jvmSpecificUIExposedFields val jvmUIExposedFields = commonUIExposedFields + jvmSpecificUIExposedFields
private val jvmPrimaryFields = commonPrimaryFields + jvmSpecificUIExposedFields private val jvmPrimaryFields = commonPrimaryFields + jvmSpecificUIExposedFields
private val jsSpecificUIExposedFields = listOf(K2JSCompilerArguments::sourceMap.name, private val jsSpecificUIExposedFields = listOf(
K2JSCompilerArguments::sourceMap.name,
K2JSCompilerArguments::sourceMapPrefix.name, K2JSCompilerArguments::sourceMapPrefix.name,
K2JSCompilerArguments::sourceMapEmbedSources.name, K2JSCompilerArguments::sourceMapEmbedSources.name,
K2JSCompilerArguments::outputPrefix.name, K2JSCompilerArguments::outputPrefix.name,
K2JSCompilerArguments::outputPostfix.name, K2JSCompilerArguments::outputPostfix.name,
K2JSCompilerArguments::moduleKind.name) K2JSCompilerArguments::moduleKind.name
)
val jsUIExposedFields = commonUIExposedFields + jsSpecificUIExposedFields val jsUIExposedFields = commonUIExposedFields + jsSpecificUIExposedFields
private val jsPrimaryFields = commonPrimaryFields + jsSpecificUIExposedFields private val jsPrimaryFields = commonPrimaryFields + jsSpecificUIExposedFields
private val metadataSpecificUIExposedFields = listOf(K2MetadataCompilerArguments::destination.name, private val metadataSpecificUIExposedFields = listOf(
K2MetadataCompilerArguments::classpath.name) K2MetadataCompilerArguments::destination.name,
K2MetadataCompilerArguments::classpath.name
)
val metadataUIExposedFields = commonUIExposedFields + metadataSpecificUIExposedFields val metadataUIExposedFields = commonUIExposedFields + metadataSpecificUIExposedFields
private val metadataPrimaryFields = commonPrimaryFields + metadataSpecificUIExposedFields private val metadataPrimaryFields = commonPrimaryFields + metadataSpecificUIExposedFields