提交 b59fd519 编写于 作者: R Rob Lourens

Change `search.useRipgrep: false` to enable the PCRE2 search option instead

上级 b59a4513
...@@ -302,6 +302,7 @@ export class OneLineRange extends SearchRange { ...@@ -302,6 +302,7 @@ export class OneLineRange extends SearchRange {
export interface ISearchConfigurationProperties { export interface ISearchConfigurationProperties {
exclude: glob.IExpression; exclude: glob.IExpression;
useRipgrep: boolean; useRipgrep: boolean;
disableRipgrep: boolean;
/** /**
* Use ignore file for file search. * Use ignore file for file search.
*/ */
......
...@@ -70,6 +70,11 @@ export class QueryBuilder { ...@@ -70,6 +70,11 @@ export class QueryBuilder {
const searchConfig = this.configurationService.getValue<ISearchConfiguration>(); const searchConfig = this.configurationService.getValue<ISearchConfiguration>();
contentPattern.wordSeparators = searchConfig.editor.wordSeparators; contentPattern.wordSeparators = searchConfig.editor.wordSeparators;
const fallbackToPCRE = !folderResources || folderResources.some(folder => {
const folderConfig = this.configurationService.getValue<ISearchConfiguration>({ resource: folder });
return !folderConfig.search.useRipgrep;
});
const commonQuery = this.commonQuery(folderResources, options); const commonQuery = this.commonQuery(folderResources, options);
return <ITextQuery>{ return <ITextQuery>{
...commonQuery, ...commonQuery,
...@@ -77,7 +82,7 @@ export class QueryBuilder { ...@@ -77,7 +82,7 @@ export class QueryBuilder {
contentPattern, contentPattern,
previewOptions: options && options.previewOptions, previewOptions: options && options.previewOptions,
maxFileSize: options && options.maxFileSize, maxFileSize: options && options.maxFileSize,
usePCRE2: searchConfig.search.usePCRE2 usePCRE2: searchConfig.search.usePCRE2 || fallbackToPCRE
}; };
} }
...@@ -111,7 +116,7 @@ export class QueryBuilder { ...@@ -111,7 +116,7 @@ export class QueryBuilder {
const useRipgrep = !folderResources || folderResources.every(folder => { const useRipgrep = !folderResources || folderResources.every(folder => {
const folderConfig = this.configurationService.getValue<ISearchConfiguration>({ resource: folder }); const folderConfig = this.configurationService.getValue<ISearchConfiguration>({ resource: folder });
return folderConfig.search.useRipgrep; return !folderConfig.search.disableRipgrep;
}); });
const queryProps: ICommonQueryProps<uri> = { const queryProps: ICommonQueryProps<uri> = {
......
...@@ -586,9 +586,16 @@ configurationRegistry.registerConfiguration({ ...@@ -586,9 +586,16 @@ configurationRegistry.registerConfiguration({
}, },
'search.useRipgrep': { 'search.useRipgrep': {
type: 'boolean', type: 'boolean',
description: nls.localize('useRipgrep', "Controls whether to use ripgrep in text and file search."), description: nls.localize('useRipgrep', "Deprecated. This setting now falls back on \"search.usePCRE2\"."),
deprecationMessage: nls.localize('useRipgrepDeprecated', "Deprecated. Consider \"search.usePCRE2\" for advanced regex feature support."),
default: true default: true
}, },
'search.disableRipgrep': {
type: 'boolean',
description: nls.localize('disableRipgrep', "Deprecated. Controls whether to use ripgrep in text and file search."),
deprecationMessage: nls.localize('disableRipgrepDeprecated', "Deprecated. Consider \"search.usePCRE2\" for advanced regex feature support."),
default: false
},
'search.useIgnoreFiles': { 'search.useIgnoreFiles': {
type: 'boolean', type: 'boolean',
markdownDescription: nls.localize('useIgnoreFiles', "Controls whether to use `.gitignore` and `.ignore` files when searching for files."), markdownDescription: nls.localize('useIgnoreFiles', "Controls whether to use `.gitignore` and `.ignore` files when searching for files."),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册