@@ -1,17 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
*
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.config
|
package org.jetbrains.kotlin.config
|
||||||
@@ -58,7 +47,7 @@ sealed class TargetPlatformKind<out Version : TargetPlatformVersion>(
|
|||||||
object CoroutineSupport {
|
object CoroutineSupport {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun byCompilerArguments(arguments: CommonCompilerArguments?): LanguageFeature.State =
|
fun byCompilerArguments(arguments: CommonCompilerArguments?): LanguageFeature.State =
|
||||||
byCompilerArgumentsOrNull(arguments) ?: LanguageFeature.Coroutines.defaultState
|
byCompilerArgumentsOrNull(arguments) ?: LanguageFeature.Coroutines.defaultState
|
||||||
|
|
||||||
fun byCompilerArgumentsOrNull(arguments: CommonCompilerArguments?): LanguageFeature.State? = when (arguments?.coroutinesState) {
|
fun byCompilerArgumentsOrNull(arguments: CommonCompilerArguments?): LanguageFeature.State? = when (arguments?.coroutinesState) {
|
||||||
CommonCompilerArguments.ENABLE -> LanguageFeature.State.ENABLED
|
CommonCompilerArguments.ENABLE -> LanguageFeature.State.ENABLED
|
||||||
@@ -68,7 +57,7 @@ object CoroutineSupport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun byCompilerArgument(argument: String): LanguageFeature.State =
|
fun byCompilerArgument(argument: String): LanguageFeature.State =
|
||||||
LanguageFeature.State.values().find { getCompilerArgument(it).equals(argument, ignoreCase = true) }
|
LanguageFeature.State.values().find { getCompilerArgument(it).equals(argument, ignoreCase = true) }
|
||||||
?: LanguageFeature.Coroutines.defaultState
|
?: LanguageFeature.Coroutines.defaultState
|
||||||
|
|
||||||
fun getCompilerArgument(state: LanguageFeature.State): String = when (state) {
|
fun getCompilerArgument(state: LanguageFeature.State): String = when (state) {
|
||||||
@@ -191,8 +180,7 @@ class KotlinFacetSettings {
|
|||||||
parseCommandLineArguments(compilerSettings.additionalArgumentsAsList, this)
|
parseCommandLineArguments(compilerSettings.additionalArgumentsAsList, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else null
|
||||||
else null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var compilerArguments: CommonCompilerArguments? = null
|
var compilerArguments: CommonCompilerArguments? = null
|
||||||
|
|||||||
@@ -1,17 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2017 JetBrains s.r.o.
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
*
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.config
|
package org.jetbrains.kotlin.config
|
||||||
@@ -100,8 +89,7 @@ private fun readV1Config(element: Element): KotlinFacetSettings {
|
|||||||
|
|
||||||
if (useProjectSettings != null) {
|
if (useProjectSettings != null) {
|
||||||
this.useProjectSettings = useProjectSettings
|
this.useProjectSettings = useProjectSettings
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// Migration problem workaround for pre-1.1-beta releases (mainly 1.0.6) -> 1.1-rc+
|
// Migration problem workaround for pre-1.1-beta releases (mainly 1.0.6) -> 1.1-rc+
|
||||||
// Problematic cases: 1.1-beta/1.1-beta2 -> 1.1-rc+ (useProjectSettings gets reset to false)
|
// Problematic cases: 1.1-beta/1.1-beta2 -> 1.1-rc+ (useProjectSettings gets reset to false)
|
||||||
// This heuristic detects old enough configurations:
|
// This heuristic detects old enough configurations:
|
||||||
@@ -214,13 +202,11 @@ private fun readLatestConfig(element: Element): KotlinFacetSettings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun deserializeFacetSettings(element: Element): KotlinFacetSettings {
|
fun deserializeFacetSettings(element: Element): KotlinFacetSettings {
|
||||||
val version =
|
val version = try {
|
||||||
try {
|
element.getAttribute("version")?.intValue
|
||||||
element.getAttribute("version")?.intValue
|
} catch (e: DataConversionException) {
|
||||||
}
|
null
|
||||||
catch(e: DataConversionException) {
|
} ?: KotlinFacetSettings.DEFAULT_VERSION
|
||||||
null
|
|
||||||
} ?: KotlinFacetSettings.DEFAULT_VERSION
|
|
||||||
return when (version) {
|
return when (version) {
|
||||||
1 -> readV1Config(element)
|
1 -> readV1Config(element)
|
||||||
2 -> readV2Config(element)
|
2 -> readV2Config(element)
|
||||||
@@ -290,9 +276,8 @@ private val Class<*>.normalOrdering
|
|||||||
private fun Element.restoreNormalOrdering(bean: Any) {
|
private fun Element.restoreNormalOrdering(bean: Any) {
|
||||||
val normalOrdering = bean.javaClass.normalOrdering
|
val normalOrdering = bean.javaClass.normalOrdering
|
||||||
val elementsToReorder = this.getContent<Element> { it is Element && it.getAttribute("name")?.value in normalOrdering }
|
val elementsToReorder = this.getContent<Element> { it is Element && it.getAttribute("name")?.value in normalOrdering }
|
||||||
elementsToReorder
|
elementsToReorder.sortedBy { normalOrdering[it.getAttribute("name")?.value!!] }
|
||||||
.sortedBy { normalOrdering[it.getAttribute("name")?.value!!] }
|
.forEachIndexed { index, element -> elementsToReorder[index] = element.clone() }
|
||||||
.forEachIndexed { index, element -> elementsToReorder[index] = element.clone() }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun buildChildElement(element: Element, tag: String, bean: Any, filter: SerializationFilter): Element {
|
private fun buildChildElement(element: Element, tag: String, bean: Any, filter: SerializationFilter): Element {
|
||||||
@@ -422,8 +407,7 @@ fun KotlinFacetSettings.serializeFacetSettings(element: Element) {
|
|||||||
element.setAttribute("version", versionToWrite.toString())
|
element.setAttribute("version", versionToWrite.toString())
|
||||||
if (versionToWrite == 2) {
|
if (versionToWrite == 2) {
|
||||||
writeV2Config(element)
|
writeV2Config(element)
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
writeLatestConfig(element)
|
writeLatestConfig(element)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-9
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -13,8 +13,8 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
|||||||
import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer
|
import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer
|
||||||
import org.jetbrains.jps.model.serialization.module.JpsModuleSourceRootPropertiesSerializer
|
import org.jetbrains.jps.model.serialization.module.JpsModuleSourceRootPropertiesSerializer
|
||||||
|
|
||||||
private val IS_GENERATED_ATTRIBUTE = "generated"
|
private const val IS_GENERATED_ATTRIBUTE = "generated"
|
||||||
private val RELATIVE_OUTPUT_PATH_ATTRIBUTE = "relativeOutputPath"
|
private const val RELATIVE_OUTPUT_PATH_ATTRIBUTE = "relativeOutputPath"
|
||||||
|
|
||||||
val KOTLIN_SOURCE_ROOT_TYPE_ID = "kotlin-source"
|
val KOTLIN_SOURCE_ROOT_TYPE_ID = "kotlin-source"
|
||||||
val KOTLIN_TEST_ROOT_TYPE_ID = "kotlin-test"
|
val KOTLIN_TEST_ROOT_TYPE_ID = "kotlin-test"
|
||||||
@@ -27,13 +27,13 @@ sealed class KotlinSourceRootPropertiesSerializer(
|
|||||||
typeId: String
|
typeId: String
|
||||||
) : JpsModuleSourceRootPropertiesSerializer<JavaSourceRootProperties>(type, typeId) {
|
) : JpsModuleSourceRootPropertiesSerializer<JavaSourceRootProperties>(type, typeId) {
|
||||||
object Source : KotlinSourceRootPropertiesSerializer(
|
object Source : KotlinSourceRootPropertiesSerializer(
|
||||||
SourceKotlinRootType,
|
SourceKotlinRootType,
|
||||||
KOTLIN_SOURCE_ROOT_TYPE_ID
|
KOTLIN_SOURCE_ROOT_TYPE_ID
|
||||||
)
|
)
|
||||||
|
|
||||||
object TestSource : KotlinSourceRootPropertiesSerializer(
|
object TestSource : KotlinSourceRootPropertiesSerializer(
|
||||||
TestSourceKotlinRootType,
|
TestSourceKotlinRootType,
|
||||||
KOTLIN_TEST_ROOT_TYPE_ID
|
KOTLIN_TEST_ROOT_TYPE_ID
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun loadProperties(sourceRootTag: Element): JavaSourceRootProperties {
|
override fun loadProperties(sourceRootTag: Element): JavaSourceRootProperties {
|
||||||
@@ -59,9 +59,10 @@ sealed class KotlinResourceRootPropertiesSerializer(
|
|||||||
typeId: String
|
typeId: String
|
||||||
) : JpsModuleSourceRootPropertiesSerializer<JavaResourceRootProperties>(type, typeId) {
|
) : JpsModuleSourceRootPropertiesSerializer<JavaResourceRootProperties>(type, typeId) {
|
||||||
object Resource : KotlinResourceRootPropertiesSerializer(
|
object Resource : KotlinResourceRootPropertiesSerializer(
|
||||||
ResourceKotlinRootType,
|
ResourceKotlinRootType,
|
||||||
KOTLIN_RESOURCE_ROOT_TYPE_ID
|
KOTLIN_RESOURCE_ROOT_TYPE_ID
|
||||||
)
|
)
|
||||||
|
|
||||||
object TestResource : KotlinResourceRootPropertiesSerializer(
|
object TestResource : KotlinResourceRootPropertiesSerializer(
|
||||||
TestResourceKotlinRootType,
|
TestResourceKotlinRootType,
|
||||||
KOTLIN_TEST_RESOURCE_ROOT_TYPE_ID
|
KOTLIN_TEST_RESOURCE_ROOT_TYPE_ID
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
package org.jetbrains.kotlin.platform
|
package org.jetbrains.kotlin.platform
|
||||||
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import org.jetbrains.kotlin.extensions.ApplicationExtensionDescriptor
|
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||||
import org.jetbrains.kotlin.config.isJps
|
import org.jetbrains.kotlin.config.isJps
|
||||||
|
import org.jetbrains.kotlin.extensions.ApplicationExtensionDescriptor
|
||||||
import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind
|
import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind
|
||||||
import org.jetbrains.kotlin.platform.impl.JsIdePlatformKind
|
import org.jetbrains.kotlin.platform.impl.JsIdePlatformKind
|
||||||
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
||||||
@@ -75,7 +75,9 @@ val TargetPlatform.idePlatformKind: IdePlatformKind<*>
|
|||||||
get() = IdePlatformKind.ALL_KINDS.filter { it.supportsTargetPlatform(this) }.let { list ->
|
get() = IdePlatformKind.ALL_KINDS.filter { it.supportsTargetPlatform(this) }.let { list ->
|
||||||
when {
|
when {
|
||||||
list.size == 1 -> list.first()
|
list.size == 1 -> list.first()
|
||||||
list.size > 1 -> list.first().also { Logger.getInstance(IdePlatformKind.javaClass).warn("Found more than one IdePlatformKind [$list] for target [$this].") }
|
list.size > 1 -> list.first().also {
|
||||||
|
Logger.getInstance(IdePlatformKind.javaClass).warn("Found more than one IdePlatformKind [$list] for target [$this].")
|
||||||
|
}
|
||||||
else -> error("Unknown platform $this")
|
else -> error("Unknown platform $this")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -43,7 +43,9 @@ object JvmIdePlatformKind : IdePlatformKind<JvmIdePlatformKind>() {
|
|||||||
return K2JVMCompilerArguments()
|
return K2JVMCompilerArguments()
|
||||||
}
|
}
|
||||||
|
|
||||||
val platforms: List<TargetPlatform> = JvmTarget.values().map { ver -> JvmPlatforms.jvmPlatformByTargetVersion(ver) } + listOf(JvmPlatforms.unspecifiedJvmPlatform)
|
val platforms: List<TargetPlatform> = JvmTarget.values()
|
||||||
|
.map { ver -> JvmPlatforms.jvmPlatformByTargetVersion(ver) } + listOf(JvmPlatforms.unspecifiedJvmPlatform)
|
||||||
|
|
||||||
override val defaultPlatform get() = JvmPlatforms.defaultJvmPlatform
|
override val defaultPlatform get() = JvmPlatforms.defaultJvmPlatform
|
||||||
|
|
||||||
override val argumentsClass get() = K2JVMCompilerArguments::class.java
|
override val argumentsClass get() = K2JVMCompilerArguments::class.java
|
||||||
|
|||||||
Reference in New Issue
Block a user