From 65f8911e62081f7da7b34150f76974ace4f31eb9 Mon Sep 17 00:00:00 2001 From: Niklas Krieger Date: Fri, 19 Dec 2025 19:10:39 +0100 Subject: [PATCH] fix: respect isRegExp option in WorkspaceSearchProvider --- .../search-providers/workspace-search-provider.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/service-override/tools/search-providers/workspace-search-provider.ts b/src/service-override/tools/search-providers/workspace-search-provider.ts index a46ba315..5f67b89c 100644 --- a/src/service-override/tools/search-providers/workspace-search-provider.ts +++ b/src/service-override/tools/search-providers/workspace-search-provider.ts @@ -1,5 +1,5 @@ import { BaseWorkspaceSearchProvider } from '../search-utils/base-provider' -import { fuzzyContains, splitLines } from 'vs/base/common/strings' +import { fuzzyContains, splitLines, createRegExp } from 'vs/base/common/strings' import type { URI } from 'vs/base/common/uri' import * as glob from 'vs/base/common/glob' import type { @@ -270,12 +270,13 @@ export class WorkspaceSearchProvider */ private createSearchRegex(contentPattern: ITextQuery['contentPattern']): RegExp { try { - return new RegExp( - contentPattern.pattern || '', - (contentPattern.isCaseSensitive ? 'g' : 'gi') + - (contentPattern.isMultiline ? 'm' : '') + - (contentPattern.isUnicode ? 'u' : '') - ) + return createRegExp(contentPattern.pattern || '', !!contentPattern.isRegExp, { + wholeWord: contentPattern.isWordMatch, + global: true, + matchCase: contentPattern.isCaseSensitive, + multiline: contentPattern.isMultiline, + unicode: contentPattern.isUnicode + }) } catch (regexError) { this.logger.error(`Invalid regex pattern: ${contentPattern.pattern}`, regexError as Error) const searchError = new SearchError(