From b9ffed3f04a6c42d6a0ff47278af763fefacb116 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Thu, 12 Mar 2020 17:58:56 +0700 Subject: [PATCH] Replace `ConfigurationFactory` with `SimpleConfigurationType` #KT-36781 Fixed --- .../run/KotlinRunConfigurationProducer.kt | 7 +++-- .../idea/run/KotlinRunConfigurationType.java | 28 +++++++++---------- ...tandaloneScriptRunConfigurationProducer.kt | 7 +++-- ...linStandaloneScriptRunConfigurationType.kt | 19 ++++++------- 4 files changed, 32 insertions(+), 29 deletions(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfigurationProducer.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfigurationProducer.kt index f6edb33971a..b68ab4d3606 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfigurationProducer.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfigurationProducer.kt @@ -18,7 +18,8 @@ package org.jetbrains.kotlin.idea.run import com.intellij.execution.Location import com.intellij.execution.actions.ConfigurationContext -import com.intellij.execution.actions.RunConfigurationProducer +import com.intellij.execution.actions.LazyRunConfigurationProducer +import com.intellij.execution.configurations.ConfigurationFactory import com.intellij.openapi.project.DumbService import com.intellij.openapi.util.Ref import com.intellij.psi.PsiElement @@ -34,7 +35,7 @@ import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getParentOfType import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -class KotlinRunConfigurationProducer : RunConfigurationProducer(KotlinRunConfigurationType.getInstance()) { +class KotlinRunConfigurationProducer : LazyRunConfigurationProducer() { override fun setupConfigurationFromContext( configuration: KotlinRunConfiguration, context: ConfigurationContext, @@ -111,4 +112,6 @@ class KotlinRunConfigurationProducer : RunConfigurationProducer KotlinIcons.SMALL_LOGO)); } - private static class KotlinRunConfigurationFactory extends ConfigurationFactory { - protected KotlinRunConfigurationFactory(@NotNull ConfigurationType type) { - super(type); - } - - @NotNull - @Override - public RunConfiguration createTemplateConfiguration(@NotNull Project project) { - return new KotlinRunConfiguration("", new JavaRunConfigurationModule(project, true), this); - } + @NotNull + @Override + public RunConfiguration createTemplateConfiguration(@NotNull Project project) { + return new KotlinRunConfiguration("", new JavaRunConfigurationModule(project, true), this); } } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationProducer.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationProducer.kt index eae161686b6..57a91e25dfa 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationProducer.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationProducer.kt @@ -6,14 +6,15 @@ package org.jetbrains.kotlin.idea.run.script.standalone import com.intellij.execution.actions.ConfigurationContext -import com.intellij.execution.actions.RunConfigurationProducer +import com.intellij.execution.actions.LazyRunConfigurationProducer +import com.intellij.execution.configurations.ConfigurationFactory import com.intellij.openapi.util.Ref import com.intellij.psi.PsiElement import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.psiUtil.getParentOfType class KotlinStandaloneScriptRunConfigurationProducer : - RunConfigurationProducer(KotlinStandaloneScriptRunConfigurationType.instance) { + LazyRunConfigurationProducer() { override fun setupConfigurationFromContext( configuration: KotlinStandaloneScriptRunConfiguration, context: ConfigurationContext, @@ -41,4 +42,6 @@ class KotlinStandaloneScriptRunConfigurationProducer : return script.containingKtFile.virtualFile.canonicalPath } } + + override fun getConfigurationFactory(): ConfigurationFactory = KotlinStandaloneScriptRunConfigurationType.instance } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationType.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationType.kt index 9c7a1b6b50e..3b9322ae8a7 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationType.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfigurationType.kt @@ -5,24 +5,21 @@ package org.jetbrains.kotlin.idea.run.script.standalone -import com.intellij.execution.configurations.* +import com.intellij.execution.configurations.ConfigurationTypeUtil +import com.intellij.execution.configurations.RunConfiguration +import com.intellij.execution.configurations.SimpleConfigurationType import com.intellij.openapi.project.Project +import com.intellij.openapi.util.NotNullLazyValue import org.jetbrains.kotlin.idea.KotlinIcons -class KotlinStandaloneScriptRunConfigurationType : ConfigurationTypeBase( +class KotlinStandaloneScriptRunConfigurationType : SimpleConfigurationType( "KotlinStandaloneScriptRunConfigurationType", "Kotlin script", "Run Kotlin script", - KotlinIcons.SMALL_LOGO + NotNullLazyValue.createValue { KotlinIcons.SMALL_LOGO } ) { - init { - addFactory(Factory(this)) - } - - private class Factory(type: ConfigurationType) : ConfigurationFactory(type) { - override fun createTemplateConfiguration(project: Project): RunConfiguration { - return KotlinStandaloneScriptRunConfiguration(project, this, "") - } + override fun createTemplateConfiguration(project: Project): RunConfiguration { + return KotlinStandaloneScriptRunConfiguration(project, this, "") } companion object {