This commit is contained in:
ysthakur
2024-08-26 16:45:05 -04:00
parent b9376c1156
commit c07ef04993
2 changed files with 36 additions and 12 deletions

View File

@ -91,21 +91,20 @@ fn complete_rec(
want_directory, want_directory,
isdir, isdir,
)); ));
// For https://github.com/nushell/nushell/issues/13204
if options.match_algorithm == MatchAlgorithm::Prefix {
let exact_match = if options.case_sensitive {
entry_name.eq(base)
} else {
entry_name.to_folded_case().eq(&base.to_folded_case())
};
if exact_match {
break;
}
}
} else { } else {
completions.push(built); completions.push(built);
} }
// For https://github.com/nushell/nushell/issues/13204
if isdir && options.match_algorithm == MatchAlgorithm::Prefix {
let exact_match = if options.case_sensitive {
entry_name.eq(base)
} else {
entry_name.to_folded_case().eq(&base.to_folded_case())
};
if exact_match {
break;
}
}
} }
None => { None => {
completions.push(built); completions.push(built);

View File

@ -1295,6 +1295,31 @@ fn sort_fuzzy_completions_in_alphabetical_order(mut fuzzy_alpha_sort_completer:
); );
} }
#[test]
fn exact_match() {
let (dir, _, engine, stack) = new_partial_engine();
let mut completer = NuCompleter::new(Arc::new(engine), Arc::new(stack));
let target_dir = format!("open {}", folder(dir.join("pArTiAL")));
let suggestions = completer.complete(&target_dir, target_dir.len());
// Since it's an exact match, only 'partial' should be suggested, not
// 'partial-a' and stuff. Implemented in #13302
match_suggestions(
&vec![file(dir.join("partial").join("hello.txt"))],
&suggestions,
);
let target_dir = format!("open {}", file(dir.join("pArTiAL").join("hello")));
let suggestions = completer.complete(&target_dir, target_dir.len());
match_suggestions(
&vec![file(dir.join("partial").join("hello.txt"))],
&suggestions,
);
}
#[ignore = "was reverted, still needs fixing"] #[ignore = "was reverted, still needs fixing"]
#[rstest] #[rstest]
fn alias_offset_bug_7648() { fn alias_offset_bug_7648() {