From 08159ae502f04f459106521267c808ff08d15f99 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 17 Mar 2024 09:55:35 -0700 Subject: [PATCH] Reuse write code in _onProcessData --- .../terminal/browser/terminalInstance.ts | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 84bde0d8006..b24312642f4 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1459,23 +1459,22 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { } private _onProcessData(ev: IProcessDataEvent): void { - const messageId = ++this._latestXtermWriteData; if (ev.trackCommit) { - ev.writePromise = new Promise(r => { - this.xterm?.raw.write(ev.data, () => { - this._latestXtermParseData = messageId; - this._processManager.acknowledgeDataEvent(ev.data.length); - r(); - }); - }); + ev.writePromise = new Promise(r => this._writeProcessData(ev, r)); } else { - this.xterm?.raw.write(ev.data, () => { - this._latestXtermParseData = messageId; - this._processManager.acknowledgeDataEvent(ev.data.length); - }); + this._writeProcessData(ev); } } + private _writeProcessData(ev: IProcessDataEvent, cb?: () => void) { + const messageId = ++this._latestXtermWriteData; + this.xterm?.raw.write(ev.data, () => { + this._latestXtermParseData = messageId; + this._processManager.acknowledgeDataEvent(ev.data.length); + cb?.(); + }); + } + /** * Called when either a process tied to a terminal has exited or when a terminal renderer * simulates a process exiting (e.g. custom execution task).