diff --git a/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineState.java b/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineState.java index 48119d297d0d..e0c60ee3846d 100644 --- a/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineState.java +++ b/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineState.java @@ -39,7 +39,11 @@ public abstract class JavaCommandLineState extends CommandLineState implements J @NotNull protected OSProcessHandler startProcess() throws ExecutionException { - return JavaCommandLineStateUtil.startProcess(createCommandLine()); + return JavaCommandLineStateUtil.startProcess(createCommandLine(), ansiColoringEnabled()); + } + + protected boolean ansiColoringEnabled() { + return false; } protected abstract JavaParameters createJavaParameters() throws ExecutionException; diff --git a/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineStateUtil.java b/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineStateUtil.java index a2aacbb27fa4..750d5b6dfca2 100644 --- a/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineStateUtil.java +++ b/java/execution/openapi/src/com/intellij/execution/configurations/JavaCommandLineStateUtil.java @@ -15,6 +15,7 @@ */ package com.intellij.execution.configurations; +import com.intellij.execution.process.ColoredProcessHandler; import com.intellij.execution.process.DefaultJavaProcessHandler; import com.intellij.execution.process.OSProcessHandler; import com.intellij.execution.process.ProcessTerminatedListener; @@ -30,7 +31,15 @@ public class JavaCommandLineStateUtil { @NotNull public static OSProcessHandler startProcess(@NotNull final GeneralCommandLine commandLine) throws ExecutionException { - final DefaultJavaProcessHandler processHandler = new DefaultJavaProcessHandler(commandLine); + return startProcess(commandLine, false); + } + + @NotNull + public static OSProcessHandler startProcess(@NotNull final GeneralCommandLine commandLine, + final boolean ansiColoring) throws ExecutionException { + + final OSProcessHandler processHandler = ansiColoring ? new ColoredProcessHandler(commandLine) + : new DefaultJavaProcessHandler(commandLine); ProcessTerminatedListener.attach(processHandler); return processHandler; } diff --git a/platform/platform-impl/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java b/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java similarity index 100% rename from platform/platform-impl/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java rename to platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java diff --git a/platform/platform-impl/src/com/intellij/execution/process/ColoredProcessHandler.java b/platform/platform-api/src/com/intellij/execution/process/ColoredProcessHandler.java similarity index 91% rename from platform/platform-impl/src/com/intellij/execution/process/ColoredProcessHandler.java rename to platform/platform-api/src/com/intellij/execution/process/ColoredProcessHandler.java index 61ed1859c47a..fea53e6bb3f5 100644 --- a/platform/platform-impl/src/com/intellij/execution/process/ColoredProcessHandler.java +++ b/platform/platform-api/src/com/intellij/execution/process/ColoredProcessHandler.java @@ -16,6 +16,8 @@ package com.intellij.execution.process; +import com.intellij.execution.ExecutionException; +import com.intellij.execution.configurations.GeneralCommandLine; import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.colors.TextAttributesKey; import com.intellij.openapi.editor.markup.TextAttributes; @@ -45,6 +47,10 @@ public class ColoredProcessHandler extends OSProcessHandler { // TODO use new Maia API in ConsoleViewContentType to apply ANSI color changes without // restarting RM / Idea + Ruby Plugin + public ColoredProcessHandler(final GeneralCommandLine commandLine) throws ExecutionException { + this(commandLine.createProcess(), commandLine.getCommandLineString(), commandLine.getCharset()); + } + public ColoredProcessHandler(Process process, String commandLine) { this(process, commandLine, null); } diff --git a/platform/platform-impl/src/com/intellij/execution/process/ConsoleHighlighter.java b/platform/platform-api/src/com/intellij/execution/process/ConsoleHighlighter.java similarity index 100% rename from platform/platform-impl/src/com/intellij/execution/process/ConsoleHighlighter.java rename to platform/platform-api/src/com/intellij/execution/process/ConsoleHighlighter.java