Skip to content

Commit 23fe766

Browse files
authored
Merge pull request microsoft#184922 from jeanp413/fix-184921
Fix xterm search addon is loaded twice in vscode in browser
2 parents 13e7d80 + 4a3fb62 commit 23fe766

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -404,18 +404,20 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II
404404
};
405405
}
406406

407-
private async _getSearchAddon(): Promise<SearchAddonType> {
408-
if (this._searchAddon) {
409-
return this._searchAddon;
410-
}
411-
const AddonCtor = await this._getSearchAddonConstructor();
412-
this._searchAddon = new AddonCtor({ highlightLimit: XtermTerminalConstants.SearchHighlightLimit });
413-
this.raw.loadAddon(this._searchAddon);
414-
this._searchAddon.onDidChangeResults((results: { resultIndex: number; resultCount: number }) => {
415-
this._lastFindResult = results;
416-
this._onDidChangeFindResults.fire(results);
417-
});
418-
return this._searchAddon;
407+
private _searchAddonPromise: Promise<SearchAddonType> | undefined;
408+
private _getSearchAddon(): Promise<SearchAddonType> {
409+
if (!this._searchAddonPromise) {
410+
this._searchAddonPromise = this._getSearchAddonConstructor().then((AddonCtor) => {
411+
this._searchAddon = new AddonCtor({ highlightLimit: XtermTerminalConstants.SearchHighlightLimit });
412+
this.raw.loadAddon(this._searchAddon);
413+
this._searchAddon.onDidChangeResults((results: { resultIndex: number; resultCount: number }) => {
414+
this._lastFindResult = results;
415+
this._onDidChangeFindResults.fire(results);
416+
});
417+
return this._searchAddon;
418+
});
419+
}
420+
return this._searchAddonPromise;
419421
}
420422

421423
clearSearchDecorations(): void {

0 commit comments

Comments
 (0)