From 08f8f51adee6dfbfa19e1e6cbf6a377da456719a Mon Sep 17 00:00:00 2001 From: rishab Date: Sat, 25 Apr 2020 17:33:48 -0700 Subject: [PATCH] handle wrap back with find previous wrap back search selection to last selected result when we hit top --- addons/xterm-addon-search/src/SearchAddon.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/addons/xterm-addon-search/src/SearchAddon.ts b/addons/xterm-addon-search/src/SearchAddon.ts index e22c8b7c..f5505689 100644 --- a/addons/xterm-addon-search/src/SearchAddon.ts +++ b/addons/xterm-addon-search/src/SearchAddon.ts @@ -110,14 +110,11 @@ export class SearchAddon implements ITerminalAddon { } } - // If there is only one result, wrap back and return selection if exists. + // If there is only one result, wrap back and return selection if it exists. if (!result && currentSelection) { searchPosition.startRow = currentSelection.startRow; searchPosition.startCol = 0; result = this._findInLine(term, searchPosition, searchOptions); - if (result) { - return this._selectResult(result); - } } // Set selection and scroll if a result was found @@ -182,7 +179,7 @@ export class SearchAddon implements ITerminalAddon { } // If we hit the top and didn't search from the very bottom wrap back down if (!result && startRow !== (this._terminal.buffer.active.baseY + this._terminal.rows)) { - for (let y = (this._terminal.buffer.active.baseY + this._terminal.rows); y > startRow; y--) { + for (let y = (this._terminal.buffer.active.baseY + this._terminal.rows); y >= startRow; y--) { searchPosition.startRow = y; result = this._findInLine(term, searchPosition, searchOptions, isReverseSearch); if (result) {