mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
fix: Enable disableFuzzySearch config option propagation (#7002)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
This commit is contained in:
@@ -532,6 +532,7 @@ export async function loadCliConfig(
|
||||
respectGeminiIgnore: settings.fileFiltering?.respectGeminiIgnore,
|
||||
enableRecursiveFileSearch:
|
||||
settings.fileFiltering?.enableRecursiveFileSearch,
|
||||
disableFuzzySearch: settings.fileFiltering?.disableFuzzySearch,
|
||||
},
|
||||
checkpointing: argv.checkpointing || settings.checkpointing?.enabled,
|
||||
proxy:
|
||||
|
||||
@@ -101,6 +101,7 @@ class RecursiveFileSearch implements FileSearch {
|
||||
|
||||
async initialize(): Promise<void> {
|
||||
this.ignore = loadIgnoreRules(this.options);
|
||||
|
||||
this.allFiles = await crawl({
|
||||
crawlDirectory: this.options.projectRoot,
|
||||
cwd: this.options.projectRoot,
|
||||
@@ -116,7 +117,11 @@ class RecursiveFileSearch implements FileSearch {
|
||||
pattern: string,
|
||||
options: SearchOptions = {},
|
||||
): Promise<string[]> {
|
||||
if (!this.resultCache || !this.fzf || !this.ignore) {
|
||||
if (
|
||||
!this.resultCache ||
|
||||
(!this.fzf && !this.options.disableFuzzySearch) ||
|
||||
!this.ignore
|
||||
) {
|
||||
throw new Error('Engine not initialized. Call initialize() first.');
|
||||
}
|
||||
|
||||
@@ -131,7 +136,7 @@ class RecursiveFileSearch implements FileSearch {
|
||||
filteredCandidates = candidates;
|
||||
} else {
|
||||
let shouldCache = true;
|
||||
if (pattern.includes('*') || this.options.disableFuzzySearch) {
|
||||
if (pattern.includes('*') || !this.fzf) {
|
||||
filteredCandidates = await filter(candidates, pattern, options.signal);
|
||||
} else {
|
||||
filteredCandidates = await this.fzf
|
||||
@@ -175,12 +180,14 @@ class RecursiveFileSearch implements FileSearch {
|
||||
|
||||
private buildResultCache(): void {
|
||||
this.resultCache = new ResultCache(this.allFiles);
|
||||
// The v1 algorithm is much faster since it only looks at the first
|
||||
// occurence of the pattern. We use it for search spaces that have >20k
|
||||
// files, because the v2 algorithm is just too slow in those cases.
|
||||
this.fzf = new AsyncFzf(this.allFiles, {
|
||||
fuzzy: this.allFiles.length > 20000 ? 'v1' : 'v2',
|
||||
});
|
||||
if (!this.options.disableFuzzySearch) {
|
||||
// The v1 algorithm is much faster since it only looks at the first
|
||||
// occurence of the pattern. We use it for search spaces that have >20k
|
||||
// files, because the v2 algorithm is just too slow in those cases.
|
||||
this.fzf = new AsyncFzf(this.allFiles, {
|
||||
fuzzy: this.allFiles.length > 20000 ? 'v1' : 'v2',
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user