[FE] Drop coroutinesState from build configurations plugins

This commit is contained in:
Dmitriy Novozhilov
2020-12-02 13:19:37 +03:00
committed by TeamCityServer
parent 7f4a925b85
commit df3b12e13b
17 changed files with 6 additions and 348 deletions
@@ -70,8 +70,6 @@ interface KotlinProjectConfigurator {
forTests: Boolean
)
fun changeCoroutineConfiguration(module: Module, state: LanguageFeature.State)
fun changeGeneralFeatureConfiguration(
module: Module,
feature: LanguageFeature,
@@ -346,23 +346,6 @@ abstract class KotlinWithLibraryConfigurator protected constructor() : KotlinPro
return module.getBuildSystemType() == BuildSystemType.JPS
}
override fun changeCoroutineConfiguration(module: Module, state: LanguageFeature.State) {
val runtimeUpdateRequired = state != LanguageFeature.State.DISABLED &&
getRuntimeLibraryVersion(module).toApiVersion() == ApiVersion.KOTLIN_1_0
if (runtimeUpdateRequired && !askUpdateRuntime(module, LanguageFeature.Coroutines.sinceApiVersion)) {
return
}
val facetSettings = KotlinFacetSettingsProvider.getInstance(module.project)?.getInitializedSettings(module)
if (facetSettings != null) {
ModuleRootModificationUtil.updateModel(module) {
facetSettings.apiLevel = LanguageVersion.KOTLIN_1_1
facetSettings.languageLevel = LanguageVersion.KOTLIN_1_1
}
}
}
override fun changeGeneralFeatureConfiguration(
module: Module,
feature: LanguageFeature,
@@ -1,78 +0,0 @@
/*
* Copyright 2000-2018 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.
*/
package org.jetbrains.kotlin.idea.quickfix
import com.intellij.codeInsight.intention.IntentionAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.module.ModuleUtilCore
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.idea.KotlinJvmBundle
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
import org.jetbrains.kotlin.psi.KtFile
sealed class ChangeCoroutineSupportFix(
element: PsiElement,
coroutineSupport: LanguageFeature.State
) : AbstractChangeFeatureSupportLevelFix(element, LanguageFeature.Coroutines, coroutineSupport, shortFeatureName) {
class InModule(element: PsiElement, coroutineSupport: LanguageFeature.State) : ChangeCoroutineSupportFix(element, coroutineSupport) {
override fun getText() = KotlinJvmBundle.message("fix.0.in.current.module", super.getText())
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return
findApplicableConfigurator(module).changeCoroutineConfiguration(module, featureSupport)
}
}
class InProject(element: PsiElement, coroutineSupport: LanguageFeature.State) : ChangeCoroutineSupportFix(element, coroutineSupport) {
override fun getText() = KotlinJvmBundle.message("fix.0.in.the.project", super.getText())
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
if (featureSupportEnabled) {
if (!checkUpdateRuntime(project, LanguageFeature.Coroutines.sinceApiVersion)) return
}
KotlinCommonCompilerArgumentsHolder.getInstance(project).update {
coroutinesState = when (featureSupport) {
LanguageFeature.State.ENABLED -> CommonCompilerArguments.ENABLE
LanguageFeature.State.ENABLED_WITH_WARNING -> CommonCompilerArguments.WARN
LanguageFeature.State.ENABLED_WITH_ERROR, LanguageFeature.State.DISABLED -> CommonCompilerArguments.ERROR
}
}
project.invalidateProjectRoots()
}
}
companion object : FeatureSupportIntentionActionsFactory() {
private val shortFeatureName get() = KotlinJvmBundle.message("short.feature.name.coroutine")
fun getFixText(state: LanguageFeature.State) = getFixText(state, shortFeatureName)
override fun doCreateActions(diagnostic: Diagnostic): List<IntentionAction> {
val module = ModuleUtilCore.findModuleForPsiElement(diagnostic.psiElement) ?: return emptyList()
return doCreateActions(
diagnostic, LanguageFeature.Coroutines, allowWarningAndErrorMode = true,
quickFixConstructor = if (shouldConfigureInProject(module)) { element, _, coroutineSupport ->
InProject(
element,
coroutineSupport
)
} else { element, _, coroutineSupport ->
InModule(element, coroutineSupport)
}
)
}
}
}
@@ -33,9 +33,6 @@ class JvmQuickFixRegistrar : QuickFixContributor {
UNSUPPORTED_FEATURE.registerFactory(EnableUnsupportedFeatureFix)
EXPERIMENTAL_FEATURE_ERROR.registerFactory(ChangeCoroutineSupportFix)
EXPERIMENTAL_FEATURE_WARNING.registerFactory(ChangeCoroutineSupportFix)
EXPERIMENTAL_FEATURE_ERROR.registerFactory(ChangeGeneralLanguageFeatureSupportFix)
EXPERIMENTAL_FEATURE_WARNING.registerFactory(ChangeGeneralLanguageFeatureSupportFix)
@@ -43,4 +40,4 @@ class JvmQuickFixRegistrar : QuickFixContributor {
MISSING_SCRIPT_STANDARD_TEMPLATE.registerFactory(AddScriptRuntimeQuickFix)
}
}
}