aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parser.rs31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/parser.rs b/src/parser.rs
index a7a565b..51e15d8 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -631,7 +631,36 @@ mod tests {
}
#[test]
fn action_parses_map_with_multiple_modifiers() {
- // "one<C-l>two<D-s>three"
+ let text = "<C-A-g><D-S-s><D-A-C-S-Home>";
+
+ let expected = Action::Map(vec![
+ KeyboardKeyWithModifiers::new(
+ KeyboardKey::Character(Character::new('g')),
+ Some(vec![
+ Flag::Control,
+ Flag::Alt,
+ ]),
+ ),
+ KeyboardKeyWithModifiers::new(
+ KeyboardKey::Character(Character::new('s')),
+ Some(vec![
+ Flag::Meta,
+ Flag::Shift,
+ ]),
+ ),
+ KeyboardKeyWithModifiers::new(
+ KeyboardKey::KeyCode(KeyCode::new(autopilot::key::KeyCode::Home)),
+ Some(vec![
+ Flag::Meta,
+ Flag::Alt,
+ Flag::Control,
+ Flag::Shift,
+ ]),
+ ),
+ ]);
+ let result = action_map().easy_parse(text).map(|t| t.0);
+
+ assert_eq!(result, Ok(expected));
}
#[test]