mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
restore ansi coloring after dumping (IDEA-150444)
This commit is contained in:
+2
-3
@@ -18,7 +18,6 @@ package com.intellij.execution.testframework.sm.runner.states;
|
||||
import com.intellij.execution.process.ProcessOutputTypes;
|
||||
import com.intellij.execution.testframework.CompositePrintable;
|
||||
import com.intellij.execution.testframework.Printer;
|
||||
import com.intellij.execution.testframework.sm.runner.ui.TestsPresentationUtil;
|
||||
import com.intellij.execution.testframework.stacktrace.DiffHyperlink;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -68,14 +67,14 @@ public class TestComparisionFailedState extends TestFailedState {
|
||||
printer.mark();
|
||||
|
||||
// Error msg
|
||||
TestsPresentationUtil.printWithAnsiColoring(printer, myErrorMsgPresentation, ProcessOutputTypes.STDERR);
|
||||
printer.printWithAnsiColoring(myErrorMsgPresentation, ProcessOutputTypes.STDERR);
|
||||
|
||||
// Diff link
|
||||
myHyperlink.printOn(printer);
|
||||
|
||||
// Stacktrace
|
||||
printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT);
|
||||
TestsPresentationUtil.printWithAnsiColoring(printer, myStacktracePresentation, ProcessOutputTypes.STDERR);
|
||||
printer.printWithAnsiColoring(myStacktracePresentation, ProcessOutputTypes.STDERR);
|
||||
printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT);
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -18,7 +18,6 @@ package com.intellij.execution.testframework.sm.runner.states;
|
||||
import com.intellij.execution.process.ProcessOutputTypes;
|
||||
import com.intellij.execution.testframework.CompositePrintable;
|
||||
import com.intellij.execution.testframework.Printer;
|
||||
import com.intellij.execution.testframework.sm.runner.ui.TestsPresentationUtil;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -79,7 +78,7 @@ public class TestFailedState extends AbstractState {
|
||||
printer.mark();
|
||||
addMark = false;
|
||||
}
|
||||
TestsPresentationUtil.printWithAnsiColoring(printer, errorText, ProcessOutputTypes.STDERR);
|
||||
printer.printWithAnsiColoring(errorText, ProcessOutputTypes.STDERR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-14
@@ -472,18 +472,4 @@ 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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -356,7 +356,7 @@ public class CompositePrintable implements Printable, Disposable {
|
||||
for (ConsoleViewContentType contentType : ConsoleViewContentType.OUTPUT_TYPES) {
|
||||
final String prefix = contentType.toString();
|
||||
if (line.startsWith(prefix)) {
|
||||
printer.print(line.substring(prefix.length()), contentType);
|
||||
printer.printWithAnsiColoring(line.substring(prefix.length()), contentType);
|
||||
myLastSelected = contentType;
|
||||
printed = true;
|
||||
break;
|
||||
@@ -368,7 +368,7 @@ public class CompositePrintable implements Printable, Disposable {
|
||||
.printOn(printer);
|
||||
}
|
||||
else {
|
||||
printer.print(line, myLastSelected != null ? myLastSelected : ConsoleViewContentType.NORMAL_OUTPUT);
|
||||
printer.printWithAnsiColoring(line, myLastSelected != null ? myLastSelected : ConsoleViewContentType.NORMAL_OUTPUT);
|
||||
}
|
||||
}
|
||||
lineNum++;
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
package com.intellij.execution.testframework;
|
||||
|
||||
import com.intellij.execution.filters.HyperlinkInfo;
|
||||
import com.intellij.execution.process.AnsiEscapeDecoder;
|
||||
import com.intellij.execution.process.ProcessOutputTypes;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface Printer {
|
||||
@@ -24,4 +27,32 @@ public interface Printer {
|
||||
void onNewAvailable(@NotNull Printable printable);
|
||||
void printHyperlink(String text, HyperlinkInfo info);
|
||||
void mark();
|
||||
|
||||
default void printWithAnsiColoring(@NotNull String text, @NotNull 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);
|
||||
}
|
||||
print(text, contentType);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
default void printWithAnsiColoring(@NotNull String text, @NotNull ConsoleViewContentType contentType) {
|
||||
AnsiEscapeDecoder decoder = new AnsiEscapeDecoder();
|
||||
decoder.escapeText(text, ProcessOutputTypes.STDOUT, new AnsiEscapeDecoder.ColoredTextAcceptor() {
|
||||
@Override
|
||||
public void coloredTextAvailable(String text, Key attributes) {
|
||||
ConsoleViewContentType viewContentType = ConsoleViewContentType.getConsoleViewType(attributes);
|
||||
if (viewContentType == null) {
|
||||
viewContentType = contentType;
|
||||
}
|
||||
print(text, viewContentType);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
-4
@@ -22,17 +22,13 @@ import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.filters.*;
|
||||
import com.intellij.execution.filters.Filter;
|
||||
import com.intellij.execution.impl.ConsoleBuffer;
|
||||
import com.intellij.execution.impl.RunManagerImpl;
|
||||
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl;
|
||||
import com.intellij.execution.testframework.*;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.UserDataHolder;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import org.jdom.Attribute;
|
||||
|
||||
Reference in New Issue
Block a user