mirror of
https://github.com/Microsoft/vscode
synced 2024-09-19 18:48:00 +00:00
Fix #36548 - add search.followSymlinks
This commit is contained in:
parent
5ba128e167
commit
1ec704e19a
|
@ -55,6 +55,7 @@ export interface ICommonQueryOptions {
|
|||
useRipgrep?: boolean;
|
||||
disregardIgnoreFiles?: boolean;
|
||||
disregardExcludeSettings?: boolean;
|
||||
ignoreSymlinks?: boolean;
|
||||
}
|
||||
|
||||
export interface IQueryOptions extends ICommonQueryOptions {
|
||||
|
@ -173,6 +174,7 @@ export interface ISearchConfiguration extends IFilesConfiguration {
|
|||
exclude: glob.IExpression;
|
||||
useRipgrep: boolean;
|
||||
useIgnoreFilesByDefault: boolean;
|
||||
followSymlinks: boolean;
|
||||
};
|
||||
editor: {
|
||||
wordSeparators: string;
|
||||
|
|
|
@ -371,6 +371,11 @@ configurationRegistry.registerConfiguration({
|
|||
'type': 'boolean',
|
||||
'description': nls.localize('search.quickOpen.includeSymbols', "Configure to include results from a global symbol search in the file results for Quick Open."),
|
||||
'default': false
|
||||
},
|
||||
'search.followSymlinks': {
|
||||
'type': 'boolean',
|
||||
'description': nls.localize('search.followSymlinks', "Controls whether to follow symlinks while searching."),
|
||||
'default': true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -60,6 +60,8 @@ export class QueryBuilder {
|
|||
return folderConfig.search.useRipgrep;
|
||||
});
|
||||
|
||||
const ignoreSymlinks = !this.configurationService.getConfiguration<ISearchConfiguration>().search.followSymlinks;
|
||||
|
||||
const query = <ISearchQuery>{
|
||||
type,
|
||||
folderQueries,
|
||||
|
@ -74,7 +76,8 @@ export class QueryBuilder {
|
|||
contentPattern: contentPattern,
|
||||
useRipgrep,
|
||||
disregardIgnoreFiles: options.disregardIgnoreFiles,
|
||||
disregardExcludeSettings: options.disregardExcludeSettings
|
||||
disregardExcludeSettings: options.disregardExcludeSettings,
|
||||
ignoreSymlinks
|
||||
};
|
||||
|
||||
// Filter extraFileResources against global include/exclude patterns - they are already expected to not belong to a workspace
|
||||
|
|
|
@ -80,7 +80,8 @@ export interface IWorkbenchSearchConfiguration extends ISearchConfiguration {
|
|||
},
|
||||
exclude: glob.IExpression,
|
||||
useRipgrep: boolean,
|
||||
useIgnoreFilesByDefault: boolean
|
||||
useIgnoreFilesByDefault: boolean,
|
||||
followSymlinks: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,9 @@ function getRgArgs(config: IRawSearch, folderQuery: IFolderSearch, includePatter
|
|||
}
|
||||
|
||||
// Follow symlinks
|
||||
if (!config.ignoreSymlinks) {
|
||||
args.push('--follow');
|
||||
}
|
||||
|
||||
if (config.exists) {
|
||||
args.push('--quiet');
|
||||
|
|
|
@ -493,7 +493,9 @@ function getRgArgs(config: IRawSearch): IRgGlobResult {
|
|||
}
|
||||
|
||||
// Follow symlinks
|
||||
if (!config.ignoreSymlinks) {
|
||||
args.push('--follow');
|
||||
}
|
||||
|
||||
// Set default encoding if only one folder is opened
|
||||
if (config.folderQueries.length === 1 && config.folderQueries[0].fileEncoding && config.folderQueries[0].fileEncoding !== 'utf8') {
|
||||
|
|
|
@ -19,6 +19,7 @@ export interface IFolderSearch {
|
|||
|
||||
export interface IRawSearch {
|
||||
folderQueries: IFolderSearch[];
|
||||
ignoreSymlinks?: boolean;
|
||||
extraFiles?: string[];
|
||||
filePattern?: string;
|
||||
excludePattern?: IExpression;
|
||||
|
|
|
@ -270,7 +270,8 @@ export class DiskSearch implements ISearchResultProvider {
|
|||
sortByScore: query.sortByScore,
|
||||
cacheKey: query.cacheKey,
|
||||
useRipgrep: query.useRipgrep,
|
||||
disregardIgnoreFiles: query.disregardIgnoreFiles
|
||||
disregardIgnoreFiles: query.disregardIgnoreFiles,
|
||||
ignoreSymlinks: query.ignoreSymlinks
|
||||
};
|
||||
|
||||
if (query.folderQueries) {
|
||||
|
|
Loading…
Reference in a new issue