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,12 +91,8 @@ fn complete_rec(
want_directory, want_directory,
isdir, isdir,
)); ));
} else {
completions.push(built);
}
// For https://github.com/nushell/nushell/issues/13204 // For https://github.com/nushell/nushell/issues/13204
if isdir && options.match_algorithm == MatchAlgorithm::Prefix { if options.match_algorithm == MatchAlgorithm::Prefix {
let exact_match = if options.case_sensitive { let exact_match = if options.case_sensitive {
entry_name.eq(base) entry_name.eq(base)
} else { } else {
@@ -106,6 +102,9 @@ fn complete_rec(
break; break;
} }
} }
} else {
completions.push(built);
}
} }
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() {