From 9ed0aa6c914c6e0c2e94b7e47125a77e423d0b45 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 16 Mar 2021 10:51:40 -0700 Subject: [PATCH] Fix type ahead issue in relaunched terminals Phantom characters were showing up because type ahead was installing a second onBeforeProcessData listener. The root cause was a refactor to move and encapsulate the relaunching logic/concept inside TerminalProcessManager. Fixes #118804 Co-authored-by: Megan Rogge --- src/vs/workbench/contrib/terminal/browser/terminalInstance.ts | 2 +- .../contrib/terminal/browser/terminalTypeAheadAddon.ts | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index f949b76a88b..8165f72dd16 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1167,7 +1167,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { this._processManager.relaunch(this._shellLaunchConfig, this._cols, this._rows, this._accessibilityService.isScreenReaderOptimized(), reset); - this._xtermTypeAhead?.reset(this._processManager); + this._xtermTypeAhead?.reset(); } @debounce(1000) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalTypeAheadAddon.ts b/src/vs/workbench/contrib/terminal/browser/terminalTypeAheadAddon.ts index 835915af1b9..e59ee62c274 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalTypeAheadAddon.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalTypeAheadAddon.ts @@ -1330,10 +1330,8 @@ export class TypeAheadAddon extends Disposable implements ITerminalAddon { })); } - public reset(processManager: ITerminalProcessManager) { + public reset() { this.lastRow = undefined; - this.processManager = processManager; - this._register(this.processManager.onBeforeProcessData(e => this.onBeforeProcessData(e))); } private deferClearingPredictions() {