summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Gulakov2023-05-18 06:27:29 +0000
committerGitHub2023-05-18 06:27:29 +0000
commit2cccb3f09c52824bf070e127c0b196ed8d8e7555 (patch)
treed10d02e809afbb04b29dc90d5f619ab8e252e011
parentb0705337bec836604bdb97689d0a44940c6bddae (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.rs11
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)
})