From baf5cf45c3d4c39d5e7691e1f936c19f97793355 Mon Sep 17 00:00:00 2001 From: Anouar Touati Date: Mon, 6 Jan 2025 16:43:03 -0500 Subject: [PATCH 1/2] fixes: #5270 regex case-sensitive should behave like monaco --- addons/addon-search/src/SearchAddon.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/addons/addon-search/src/SearchAddon.ts b/addons/addon-search/src/SearchAddon.ts index 79ed31ba5f..6bc1ae76e2 100644 --- a/addons/addon-search/src/SearchAddon.ts +++ b/addons/addon-search/src/SearchAddon.ts @@ -499,12 +499,18 @@ export class SearchAddon extends Disposable implements ITerminalAddon , ISearchA const [stringLine, offsets] = cache; const offset = this._bufferColsToStringOffset(row, col); - const searchTerm = searchOptions.caseSensitive ? term : term.toLowerCase(); - const searchStringLine = searchOptions.caseSensitive ? stringLine : stringLine.toLowerCase(); + let searchTerm: string = term; + let searchStringLine: string = stringLine; + if (searchOptions.regex === false){ + searchTerm = searchOptions.caseSensitive ? term : term.toLowerCase(); + searchStringLine = searchOptions.caseSensitive ? stringLine : stringLine.toLowerCase(); + } let resultIndex = -1; if (searchOptions.regex) { - const searchRegex = RegExp(searchTerm, 'g'); + let regexFlags = 'g'; + searchOptions.caseSensitive !== true ? regexFlags+='i':''; + const searchRegex = RegExp(searchTerm, regexFlags); let foundTerm: RegExpExecArray | null; if (isReverseSearch) { // This loop will get the resultIndex of the _last_ regex match in the range 0..offset From 763d2e773aad78c0d928dc74cca14f5052cdf1a1 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 7 Jan 2025 05:38:11 -0800 Subject: [PATCH 2/2] Match coding style of repo --- addons/addon-search/src/SearchAddon.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/addons/addon-search/src/SearchAddon.ts b/addons/addon-search/src/SearchAddon.ts index 6bc1ae76e2..77cf9b16a9 100644 --- a/addons/addon-search/src/SearchAddon.ts +++ b/addons/addon-search/src/SearchAddon.ts @@ -499,18 +499,16 @@ export class SearchAddon extends Disposable implements ITerminalAddon , ISearchA const [stringLine, offsets] = cache; const offset = this._bufferColsToStringOffset(row, col); - let searchTerm: string = term; - let searchStringLine: string = stringLine; - if (searchOptions.regex === false){ + let searchTerm = term; + let searchStringLine = stringLine; + if (!searchOptions.regex) { searchTerm = searchOptions.caseSensitive ? term : term.toLowerCase(); searchStringLine = searchOptions.caseSensitive ? stringLine : stringLine.toLowerCase(); } let resultIndex = -1; if (searchOptions.regex) { - let regexFlags = 'g'; - searchOptions.caseSensitive !== true ? regexFlags+='i':''; - const searchRegex = RegExp(searchTerm, regexFlags); + const searchRegex = RegExp(searchTerm, searchOptions.caseSensitive ? 'g' : 'gi'); let foundTerm: RegExpExecArray | null; if (isReverseSearch) { // This loop will get the resultIndex of the _last_ regex match in the range 0..offset