diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java b/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java index 54e85df555f5..a3634bb4aaf9 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java @@ -5,27 +5,51 @@ import com.intellij.execution.DefaultExecutionResult; import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionResult; import com.intellij.execution.Executor; +import com.intellij.execution.application.JavaConsoleDecorator; import com.intellij.execution.configurations.RemoteConnection; import com.intellij.execution.configurations.RemoteState; +import com.intellij.execution.configurations.RunConfigurationBase; import com.intellij.execution.impl.ConsoleViewImpl; import com.intellij.execution.runners.ProgramRunner; +import com.intellij.execution.ui.ConsoleView; import com.intellij.openapi.project.Project; import com.intellij.xdebugger.DapMode; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class RemoteStateState implements RemoteState { private final Project myProject; private final RemoteConnection myConnection; private final boolean myAutoRestart; + private final @Nullable RunConfigurationBase myRunConfiguration; public RemoteStateState(Project project, RemoteConnection connection) { - this(project, connection, false); + this(project, connection, false, null); } public RemoteStateState(Project project, RemoteConnection connection, boolean autoRestart) { + this(project, connection, autoRestart, null); + } + + public RemoteStateState(Project project, RemoteConnection connection, @NotNull RunConfigurationBase runConfiguration) { + this(project, connection, false, runConfiguration); + } + + public RemoteStateState(Project project, + RemoteConnection connection, + @NotNull RunConfigurationBase runConfiguration, + boolean autoRestart) { + this(project, connection, autoRestart, runConfiguration); + } + + private RemoteStateState(Project project, + RemoteConnection connection, + boolean autoRestart, + @Nullable RunConfigurationBase runConfiguration) { myProject = project; myConnection = connection; myAutoRestart = autoRestart; + myRunConfiguration = runConfiguration; } @Override @@ -34,7 +58,10 @@ public class RemoteStateState implements RemoteState { if (DapMode.isDap()) { return new DefaultExecutionResult(null, process); } - ConsoleViewImpl consoleView = new ConsoleViewImpl(myProject, false); + ConsoleView consoleView = new ConsoleViewImpl(myProject, false); + if (myRunConfiguration != null) { + consoleView = JavaConsoleDecorator.decorate(consoleView, myRunConfiguration, executor); + } consoleView.attachToProcess(process); return new DefaultExecutionResult(consoleView, process); } diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/attach/JavaAttachDebuggerProvider.java b/java/debugger/impl/src/com/intellij/debugger/impl/attach/JavaAttachDebuggerProvider.java index c1f7b0e73789..00b1268a6a72 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/attach/JavaAttachDebuggerProvider.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/attach/JavaAttachDebuggerProvider.java @@ -512,7 +512,7 @@ public class JavaAttachDebuggerProvider implements XAttachDebuggerProvider { @Override public @Nullable RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment environment) throws ExecutionException { - return new RemoteStateState(getProject(), myAttachInfo.createConnection()); + return new RemoteStateState(getProject(), myAttachInfo.createConnection(), this); } } diff --git a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java index 6a2f8327ea47..a53ac7b77f92 100644 --- a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java +++ b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java @@ -72,7 +72,7 @@ public class RemoteConfiguration extends ModuleBasedConfiguration