diff --git a/crates/nu-cli/src/completion/engine.rs b/crates/nu-cli/src/completion/engine.rs index f99a6c1fa..7bece6993 100644 --- a/crates/nu-cli/src/completion/engine.rs +++ b/crates/nu-cli/src/completion/engine.rs @@ -203,7 +203,8 @@ pub fn completion_location(line: &str, block: &Block, pos: usize) -> Vec Vec vec![loc], + _ => vec![loc.clone()], }; } else if pos < loc.span.start() { break; @@ -236,14 +254,25 @@ pub fn completion_location(line: &str, block: &Block, pos: usize) -> Vec { let path_completer = PathCompleter; + let prepend = Span::new(pos, location.span.start()).slice(line); const QUOTE_CHARS: &[char] = &['\'', '"', '`']; @@ -103,7 +104,11 @@ impl NuCompleter { } .into_iter() .map(|s| Suggestion { - replacement: requote(s.suggestion.replacement), + replacement: format!( + "{}{}", + prepend, + requote(s.suggestion.replacement) + ), display: s.suggestion.display, }) .collect()