Enable Input Redirection for KotlinRunConfiguration

#KT-28854 Fixed

(cherry picked from commit 6e55010767b1c1a7c8d23d337bdbd5824dfa2906)
This commit is contained in:
Gia Thuan Lam
2020-05-23 20:44:40 +02:00
committed by Vladimir Dolzhenko
parent 69e8abfe3c
commit 83b52bb109
@@ -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<String, String> myEnvs = new LinkedHashMap<String, String>();
@@ -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<KotlinRunConfiguration> {
public MyJavaCommandLineState(@NotNull KotlinRunConfiguration configuration, ExecutionEnvironment environment) {
super(environment, configuration);