From 83b52bb109ad1371335bb394d1067175eb1b3d8a Mon Sep 17 00:00:00 2001 From: Gia Thuan Lam Date: Sat, 23 May 2020 20:44:40 +0200 Subject: [PATCH] Enable Input Redirection for KotlinRunConfiguration #KT-28854 Fixed (cherry picked from commit 6e55010767b1c1a7c8d23d337bdbd5824dfa2906) --- .../idea/run/KotlinRunConfiguration.java | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java index c99ff9fa10c..d5978f4eef0 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/KotlinRunConfiguration.java @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.run; import com.intellij.codeInsight.daemon.impl.analysis.JavaModuleGraphUtil; import com.intellij.diagnostic.logging.LogConfigurationPanel; import com.intellij.execution.*; +import com.intellij.execution.application.ApplicationConfigurationType; import com.intellij.execution.application.BaseJavaApplicationCommandLineState; import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.execution.configurations.*; @@ -68,12 +69,38 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode; import java.util.*; @SuppressWarnings("deprecation") -public class KotlinRunConfiguration extends JetRunConfiguration { +public class KotlinRunConfiguration extends JetRunConfiguration implements InputRedirectAware { public String VM_PARAMETERS; public String PROGRAM_PARAMETERS; public boolean ALTERNATIVE_JRE_PATH_ENABLED; public String ALTERNATIVE_JRE_PATH; public boolean PASS_PARENT_ENVS = true; + public ConfigurationType APPLICATION_CONFIGURATION_TYPE = new ApplicationConfigurationType(); + public InputRedirectOptions INPUT_REDIRECT_OPTIONS = new InputRedirectOptions() { + private boolean redirectInput = false; + private String redirectInputPath = null; + + @Override + public boolean isRedirectInput() { + return redirectInput; + } + + @Override + public void setRedirectInput(boolean redirectInput) { + this.redirectInput = redirectInput; + } + + @Nullable + @Override + public String getRedirectInputPath() { + return redirectInputPath; + } + + @Override + public void setRedirectInputPath(String redirectInputPath) { + this.redirectInputPath = redirectInputPath; + } + }; private Map myEnvs = new LinkedHashMap(); @@ -336,6 +363,18 @@ public class KotlinRunConfiguration extends JetRunConfiguration { return null; } + @NotNull + @Override + public ConfigurationType getType() { + return APPLICATION_CONFIGURATION_TYPE; + } + + @NotNull + @Override + public InputRedirectOptions getInputRedirectOptions() { + return INPUT_REDIRECT_OPTIONS; + } + private static class MyJavaCommandLineState extends BaseJavaApplicationCommandLineState { public MyJavaCommandLineState(@NotNull KotlinRunConfiguration configuration, ExecutionEnvironment environment) { super(environment, configuration);