mirror of
https://github.com/helix-editor/helix
synced 2024-11-10 10:34:45 +01:00
Make parse_macro work for "-" outside "<..>" (#8475)
* Translate to when a part of the outher string in * Changed the if a little
This commit is contained in:
parent
07a006d1d5
commit
574f821308
@ -549,7 +549,7 @@ pub fn parse_macro(keys_str: &str) -> anyhow::Result<Vec<KeyEvent>> {
|
||||
if c == ">" {
|
||||
keys_res = Err(anyhow!("Unmatched '>'"));
|
||||
} else if c != "<" {
|
||||
keys.push(c);
|
||||
keys.push(if c == "-" { keys::MINUS } else { c });
|
||||
i += end_i;
|
||||
} else {
|
||||
match s.find('>').context("'>' expected") {
|
||||
@ -813,6 +813,64 @@ mod test {
|
||||
},
|
||||
])
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
parse_macro(":w aa-bb.txt<ret>").ok(),
|
||||
Some(vec![
|
||||
KeyEvent {
|
||||
code: KeyCode::Char(':'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('w'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char(' '),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('a'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('a'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('-'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('b'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('b'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('.'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('t'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('x'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Char('t'),
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
KeyEvent {
|
||||
code: KeyCode::Enter,
|
||||
modifiers: KeyModifiers::NONE,
|
||||
},
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
Loading…
Reference in New Issue
Block a user