From bc5e69a390750e3c6058236e5ece420155d5b9bb Mon Sep 17 00:00:00 2001 From: Semyon Kolton Date: Tue, 24 Dec 2019 12:31:52 +0300 Subject: [PATCH] CPP-16921 Allow specifying BaseOutputReader options for RemoteProcessHandler GitOrigin-RevId: 0e780630f04d1035859fcd5fef9bb8728ca46f67 --- .../remote/BaseRemoteProcessHandler.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/remote/BaseRemoteProcessHandler.java b/platform/platform-impl/src/com/intellij/remote/BaseRemoteProcessHandler.java index e3249301256f..a69bf46678ac 100644 --- a/platform/platform-impl/src/com/intellij/remote/BaseRemoteProcessHandler.java +++ b/platform/platform-impl/src/com/intellij/remote/BaseRemoteProcessHandler.java @@ -40,6 +40,15 @@ public class BaseRemoteProcessHandler extends BaseProce super(process, commandLine, charset); } + /** + * Override this method to fine-tune {@link BaseOutputReader} behavior. + */ + @NotNull + protected BaseOutputReader.Options readerOptions() { + return new BaseOutputReader.Options(); + } + + @Override protected void destroyProcessImpl() { if (!myProcess.killProcessTree()) { @@ -55,7 +64,7 @@ public class BaseRemoteProcessHandler extends BaseProce @Override public void startNotified(@NotNull final ProcessEvent event) { try { - final RemoteOutputReader stdoutReader = new RemoteOutputReader(myProcess.getInputStream(), getCharset(), myProcess, myCommandLine) { + final RemoteOutputReader stdoutReader = new RemoteOutputReader(myProcess.getInputStream(), getCharset(), myProcess, myCommandLine, readerOptions()) { @Override protected void onTextAvailable(@NotNull String text) { notifyTextAvailable(text, ProcessOutputTypes.STDOUT); @@ -68,7 +77,7 @@ public class BaseRemoteProcessHandler extends BaseProce } }; - final RemoteOutputReader stderrReader = new RemoteOutputReader(myProcess.getErrorStream(), getCharset(), myProcess, myCommandLine) { + final RemoteOutputReader stderrReader = new RemoteOutputReader(myProcess.getErrorStream(), getCharset(), myProcess, myCommandLine, readerOptions()) { @Override protected void onTextAvailable(@NotNull String text) { notifyTextAvailable(text, ProcessOutputTypes.STDERR); @@ -113,8 +122,12 @@ public class BaseRemoteProcessHandler extends BaseProce @NotNull private final RemoteProcess myRemoteProcess; private boolean myClosed; - RemoteOutputReader(@NotNull InputStream inputStream, Charset charset, @NotNull RemoteProcess remoteProcess, @NotNull String commandLine) { - super(inputStream, charset); + RemoteOutputReader(@NotNull InputStream inputStream, + Charset charset, + @NotNull RemoteProcess remoteProcess, + @NotNull String commandLine, + @NotNull Options options) { + super(inputStream, charset, options); myRemoteProcess = remoteProcess;