Kotlin Facet: Add "Use project settings" option
Original commit: eac0c9b2ed
This commit is contained in:
@@ -113,6 +113,8 @@ class KotlinFacetSettings {
|
|||||||
val DEFAULT_VERSION = 0
|
val DEFAULT_VERSION = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var useProjectSettings: Boolean = false
|
||||||
|
|
||||||
var versionInfo = KotlinVersionInfo()
|
var versionInfo = KotlinVersionInfo()
|
||||||
var compilerInfo = KotlinCompilerInfo()
|
var compilerInfo = KotlinCompilerInfo()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
|||||||
fun getCommonCompilerArguments(module: JpsModule): CommonCompilerArguments {
|
fun getCommonCompilerArguments(module: JpsModule): CommonCompilerArguments {
|
||||||
val defaultArguments = getSettings(module.project).commonCompilerArguments
|
val defaultArguments = getSettings(module.project).commonCompilerArguments
|
||||||
val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments
|
val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments
|
||||||
|
if (facetSettings.useProjectSettings) return defaultArguments
|
||||||
val (languageLevel, apiLevel) = facetSettings.versionInfo
|
val (languageLevel, apiLevel) = facetSettings.versionInfo
|
||||||
return facetSettings.compilerInfo.commonCompilerArguments?.apply {
|
return facetSettings.compilerInfo.commonCompilerArguments?.apply {
|
||||||
languageVersion = languageLevel?.description
|
languageVersion = languageLevel?.description
|
||||||
@@ -78,6 +79,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
|
||||||
|
if (facetSettings.useProjectSettings) return defaultArguments
|
||||||
val targetPlatform = facetSettings.versionInfo.targetPlatformKind as? TargetPlatformKind.Jvm ?: 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
|
||||||
@@ -89,8 +91,10 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getK2JsCompilerArguments(module: JpsModule): K2JSCompilerArguments {
|
fun getK2JsCompilerArguments(module: JpsModule): K2JSCompilerArguments {
|
||||||
return module.kotlinFacetExtension?.settings?.compilerInfo?.k2jsCompilerArguments
|
val defaultArguments = getSettings(module.project).k2JsCompilerArguments
|
||||||
?: getSettings(module.project).k2JsCompilerArguments
|
val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultArguments
|
||||||
|
if (facetSettings.useProjectSettings) return defaultArguments
|
||||||
|
return facetSettings.compilerInfo.k2jsCompilerArguments ?: defaultArguments
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setK2JsCompilerArguments(project: JpsProject, k2JsCompilerArguments: K2JSCompilerArguments) {
|
fun setK2JsCompilerArguments(project: JpsProject, k2JsCompilerArguments: K2JSCompilerArguments) {
|
||||||
@@ -98,7 +102,10 @@ class JpsKotlinCompilerSettings : JpsElementBase<JpsKotlinCompilerSettings>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getCompilerSettings(module: JpsModule): CompilerSettings {
|
fun getCompilerSettings(module: JpsModule): CompilerSettings {
|
||||||
return module.kotlinFacetExtension?.settings?.compilerInfo?.compilerSettings ?: getSettings(module.project).compilerSettings
|
val defaultSettings = getSettings(module.project).compilerSettings
|
||||||
|
val facetSettings = module.kotlinFacetExtension?.settings ?: return defaultSettings
|
||||||
|
if (facetSettings.useProjectSettings) return defaultSettings
|
||||||
|
return facetSettings.compilerInfo.compilerSettings ?: defaultSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setCompilerSettings(project: JpsProject, compilerSettings: CompilerSettings) {
|
fun setCompilerSettings(project: JpsProject, compilerSettings: CompilerSettings) {
|
||||||
|
|||||||
Reference in New Issue
Block a user