From f1df42e176cf3f23c10da7b0155c115ff35b9ac3 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Thu, 17 Mar 2016 02:18:05 +0300 Subject: [PATCH] DBE-2463 Can't view multiline errors: suppress terminal \r emulation --- .../src/com/intellij/execution/impl/ConsoleBuffer.java | 8 +++++++- .../src/com/intellij/execution/impl/ConsoleViewImpl.java | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java index 8ad45fc099cc..ecd32dc726e0 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleBuffer.java @@ -110,6 +110,8 @@ public class ConsoleBuffer { private final List myDeferredTokens = new ArrayList(); private final Set myDeferredTypes = new HashSet(); + private boolean myKeepSlashR = true; + public ConsoleBuffer() { this(useCycleBuffer(), getCycleBufferSize(), DEFAULT_CYCLIC_BUFFER_UNIT_SIZE); } @@ -144,6 +146,10 @@ public class ConsoleBuffer { return myCyclicBufferSize; } + void setKeepSlashR(boolean keep) { + myKeepSlashR = keep; + } + public boolean isEmpty() { return myDeferredOutput.isEmpty() || (myDeferredOutput.size() == 1 && myDeferredOutput.getFirst().length() <= 0); } @@ -286,7 +292,7 @@ public class ConsoleBuffer { myDeferredTypes.add(contentType); - s = StringUtil.convertLineSeparators(s, true); + s = StringUtil.convertLineSeparators(s, myKeepSlashR); myDeferredOutputLength += s.length(); StringBuilder bufferToUse; diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java index 26c721d2484f..5f0b6a10bc50 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ConsoleViewImpl.java @@ -454,6 +454,10 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo return myOutputPaused; } + public void setEmulateCarriageReturn(boolean emulate) { + myBuffer.setKeepSlashR(emulate); + } + @Override public boolean hasDeferredOutput() { synchronized (LOCK) {