on master help sign in
Fix command-mode completion behavior when input is escaped
140df92Michael Davis
helix-term/src/commands/typed.rs+4−1
@@ -2216,12 +2216,15 @@ pub(super) fn command_mode(cx: &mut Context) {
2216 ..
2216 ..
2217 }) = typed::TYPABLE_COMMAND_MAP.get(&parts[0] as &str)
2217 }) = typed::TYPABLE_COMMAND_MAP.get(&parts[0] as &str)
2218 {
2218 {
2219+ let part_len = shellwords::escape(part.clone()).len();
2220+
2219 completer(editor, part)
2221 completer(editor, part)
2220 .into_iter()
2222 .into_iter()
2221 .map(|(range, file)| {
2223 .map(|(range, file)| {
2222 let file = shellwords::escape(file);
2224 let file = shellwords::escape(file);
2225+
2223 // offset ranges to input
2226 // offset ranges to input
2224− let offset = input.len() - part.len();
2227+ let offset = input.len() - part_len;
2225 let range = (range.start + offset)..;
2228 let range = (range.start + offset)..;
2226 (range, file)
2229 (range, file)
2227 })
2230 })