Replace ConfigurationFactory with SimpleConfigurationType

#KT-36781 Fixed
This commit is contained in:
Dmitry Gridin
2020-03-12 17:58:56 +07:00
parent 43d6ddd405
commit b9ffed3f04
4 changed files with 32 additions and 29 deletions
@@ -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<KotlinRunConfiguration>(KotlinRunConfigurationType.getInstance()) {
class KotlinRunConfigurationProducer : LazyRunConfigurationProducer<KotlinRunConfiguration>() {
override fun setupConfigurationFromContext(
configuration: KotlinRunConfiguration,
context: ConfigurationContext,
@@ -111,4 +112,6 @@ class KotlinRunConfigurationProducer : RunConfigurationProducer<KotlinRunConfigu
return element as KtDeclarationContainer?
}
}
override fun getConfigurationFactory(): ConfigurationFactory = KotlinRunConfigurationType.getInstance()
}
@@ -16,31 +16,31 @@
package org.jetbrains.kotlin.idea.run;
import com.intellij.execution.configurations.*;
import com.intellij.execution.configurations.ConfigurationTypeUtil;
import com.intellij.execution.configurations.JavaRunConfigurationModule;
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.annotations.NotNull;
import org.jetbrains.kotlin.idea.KotlinIcons;
import org.jetbrains.kotlin.idea.KotlinLanguage;
public class KotlinRunConfigurationType extends ConfigurationTypeBase {
public class KotlinRunConfigurationType extends SimpleConfigurationType {
public static KotlinRunConfigurationType getInstance() {
return ConfigurationTypeUtil.findConfigurationType(KotlinRunConfigurationType.class);
}
public KotlinRunConfigurationType() {
super("JetRunConfigurationType", KotlinLanguage.NAME, KotlinLanguage.NAME, KotlinIcons.SMALL_LOGO);
addFactory(new KotlinRunConfigurationFactory(this));
super("JetRunConfigurationType",
KotlinLanguage.NAME,
KotlinLanguage.NAME,
NotNullLazyValue.createValue(() -> 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);
}
}
@@ -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<KotlinStandaloneScriptRunConfiguration>(KotlinStandaloneScriptRunConfigurationType.instance) {
LazyRunConfigurationProducer<KotlinStandaloneScriptRunConfiguration>() {
override fun setupConfigurationFromContext(
configuration: KotlinStandaloneScriptRunConfiguration,
context: ConfigurationContext,
@@ -41,4 +42,6 @@ class KotlinStandaloneScriptRunConfigurationProducer :
return script.containingKtFile.virtualFile.canonicalPath
}
}
override fun getConfigurationFactory(): ConfigurationFactory = KotlinStandaloneScriptRunConfigurationType.instance
}
@@ -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 {