summaryrefslogtreecommitdiff
path: root/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java')
-rw-r--r--platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java
index 7cb42773f735..d36250191b09 100644
--- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java
+++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java
@@ -15,14 +15,19 @@
*/
package com.intellij.execution.testframework.sm.runner.ui;
+import com.intellij.execution.process.AnsiEscapeDecoder;
+import com.intellij.execution.process.ProcessOutputTypes;
import com.intellij.execution.testframework.PoolOfTestIcons;
+import com.intellij.execution.testframework.Printer;
import com.intellij.execution.testframework.TestConsoleProperties;
import com.intellij.execution.testframework.TestsUIUtil;
import com.intellij.execution.testframework.sm.SMTestsRunnerBundle;
import com.intellij.execution.testframework.sm.runner.SMTestProxy;
import com.intellij.execution.testframework.sm.runner.states.TestStateInfo;
import com.intellij.execution.testframework.ui.TestsProgressAnimator;
+import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.icons.AllIcons;
+import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.ColoredTableCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
@@ -448,4 +453,18 @@ public class TestsPresentationUtil {
break;
}
}
+
+ public static void printWithAnsiColoring(@NotNull final Printer printer, @NotNull String text, @NotNull final Key processOutputType) {
+ AnsiEscapeDecoder decoder = new AnsiEscapeDecoder();
+ decoder.escapeText(text, ProcessOutputTypes.STDOUT, new AnsiEscapeDecoder.ColoredTextAcceptor() {
+ @Override
+ public void coloredTextAvailable(String text, Key attributes) {
+ ConsoleViewContentType contentType = ConsoleViewContentType.getConsoleViewType(attributes);
+ if (contentType == null || contentType == ConsoleViewContentType.NORMAL_OUTPUT) {
+ contentType = ConsoleViewContentType.getConsoleViewType(processOutputType);
+ }
+ printer.print(text, contentType);
+ }
+ });
+ }
}