Skip to content

Commit 50e7d7f

Browse files
authored
Merge pull request #2 from cp90-pixel/codex/add-partial-case-insensitive-file-search
Make file search case insensitive
2 parents de64f5f + e1a808e commit 50e7d7f

File tree

1 file changed

+31
-1
lines changed
  • codex-rs/file-search/src

1 file changed

+31
-1
lines changed

codex-rs/file-search/src/lib.rs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ fn create_worker_count(num_workers: NonZero<usize>) -> WorkerCount {
363363
fn create_pattern(pattern: &str) -> Pattern {
364364
Pattern::new(
365365
pattern,
366-
CaseMatching::Smart,
366+
CaseMatching::Ignore,
367367
Normalization::Smart,
368368
AtomKind::Fuzzy,
369369
)
@@ -403,4 +403,34 @@ mod tests {
403403

404404
assert_eq!(matches, expected);
405405
}
406+
407+
#[test]
408+
fn lowercase_query_matches_uppercase_filename() {
409+
let mut matcher = Matcher::new(nucleo_matcher::Config::DEFAULT);
410+
let mut utf32buf = Vec::<char>::new();
411+
let haystack: Utf32Str<'_> = Utf32Str::new("TODOS.md", &mut utf32buf);
412+
let pattern = create_pattern("tod");
413+
414+
let score = pattern.score(haystack, &mut matcher);
415+
416+
assert!(
417+
score.is_some(),
418+
"expected lowercase query to match uppercase filename"
419+
);
420+
}
421+
422+
#[test]
423+
fn lowercase_query_matches_uppercase_segment_in_path() {
424+
let mut matcher = Matcher::new(nucleo_matcher::Config::DEFAULT);
425+
let mut utf32buf = Vec::<char>::new();
426+
let haystack: Utf32Str<'_> = Utf32Str::new("docs/TODOS.md", &mut utf32buf);
427+
let pattern = create_pattern("tod");
428+
429+
let score = pattern.score(haystack, &mut matcher);
430+
431+
assert!(
432+
score.is_some(),
433+
"expected lowercase query to match uppercase segment within a path"
434+
);
435+
}
406436
}

0 commit comments

Comments
 (0)