Enable Input Redirection for KotlinRunConfiguration
#KT-28854 Fixed (cherry picked from commit 6e55010767b1c1a7c8d23d337bdbd5824dfa2906)
This commit is contained in:
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.codeInsight.daemon.impl.analysis.JavaModuleGraphUtil;
|
||||||
import com.intellij.diagnostic.logging.LogConfigurationPanel;
|
import com.intellij.diagnostic.logging.LogConfigurationPanel;
|
||||||
import com.intellij.execution.*;
|
import com.intellij.execution.*;
|
||||||
|
import com.intellij.execution.application.ApplicationConfigurationType;
|
||||||
import com.intellij.execution.application.BaseJavaApplicationCommandLineState;
|
import com.intellij.execution.application.BaseJavaApplicationCommandLineState;
|
||||||
import com.intellij.execution.configuration.EnvironmentVariablesComponent;
|
import com.intellij.execution.configuration.EnvironmentVariablesComponent;
|
||||||
import com.intellij.execution.configurations.*;
|
import com.intellij.execution.configurations.*;
|
||||||
@@ -68,12 +69,38 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class KotlinRunConfiguration extends JetRunConfiguration {
|
public class KotlinRunConfiguration extends JetRunConfiguration implements InputRedirectAware {
|
||||||
public String VM_PARAMETERS;
|
public String VM_PARAMETERS;
|
||||||
public String PROGRAM_PARAMETERS;
|
public String PROGRAM_PARAMETERS;
|
||||||
public boolean ALTERNATIVE_JRE_PATH_ENABLED;
|
public boolean ALTERNATIVE_JRE_PATH_ENABLED;
|
||||||
public String ALTERNATIVE_JRE_PATH;
|
public String ALTERNATIVE_JRE_PATH;
|
||||||
public boolean PASS_PARENT_ENVS = true;
|
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>();
|
private Map<String, String> myEnvs = new LinkedHashMap<String, String>();
|
||||||
|
|
||||||
@@ -336,6 +363,18 @@ public class KotlinRunConfiguration extends JetRunConfiguration {
|
|||||||
return null;
|
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> {
|
private static class MyJavaCommandLineState extends BaseJavaApplicationCommandLineState<KotlinRunConfiguration> {
|
||||||
public MyJavaCommandLineState(@NotNull KotlinRunConfiguration configuration, ExecutionEnvironment environment) {
|
public MyJavaCommandLineState(@NotNull KotlinRunConfiguration configuration, ExecutionEnvironment environment) {
|
||||||
super(environment, configuration);
|
super(environment, configuration);
|
||||||
|
|||||||
Reference in New Issue
Block a user