diff options
author | Ivan Gulakov | 2023-05-18 06:27:29 +0000 |
---|---|---|
committer | GitHub | 2023-05-18 06:27:29 +0000 |
commit | 2cccb3f09c52824bf070e127c0b196ed8d8e7555 (patch) | |
tree | d10d02e809afbb04b29dc90d5f619ab8e252e011 | |
parent | b0705337bec836604bdb97689d0a44940c6bddae (diff) |
Fix completion on paths containing spaces (#6779)
There was an issue with autocompletion of a path with a space in it.
Before:
:o test\ dir -> <TAB> -> test\ dirfile1
After:
:o test\ dir -> <TAB> -> test\ dir\file1
-rw-r--r-- | helix-term/src/commands/typed.rs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/helix-term/src/commands/typed.rs b/helix-term/src/commands/typed.rs index 16ee83d7..81a24059 100644 --- a/helix-term/src/commands/typed.rs +++ b/helix-term/src/commands/typed.rs @@ -2847,13 +2847,10 @@ pub(super) fn command_mode(cx: &mut Context) { } else { // Otherwise, use the command's completer and the last shellword // as completion input. - let (part, part_len) = if words.len() == 1 || shellwords.ends_with_whitespace() { + let (word, word_len) = if words.len() == 1 || shellwords.ends_with_whitespace() { (&Cow::Borrowed(""), 0) } else { - ( - words.last().unwrap(), - shellwords.parts().last().unwrap().len(), - ) + (words.last().unwrap(), words.last().unwrap().len()) }; let argument_number = argument_number_of(&shellwords); @@ -2862,13 +2859,13 @@ pub(super) fn command_mode(cx: &mut Context) { .get(&words[0] as &str) .map(|tc| tc.completer_for_argument_number(argument_number)) { - completer(editor, part) + completer(editor, word) .into_iter() .map(|(range, file)| { let file = shellwords::escape(file); // offset ranges to input - let offset = input.len() - part_len; + let offset = input.len() - word_len; let range = (range.start + offset)..; (range, file) }) |