Move the hardcoded keytip sequence list into keytip_table.rs as the single source of truth for both the matcher and the ribbon badge painter. - Generalize Action::Home into Action::Tab(&'static str); the legacy Edit/Format prefix special-case in lib.rs is absorbed into the table. - Badge helpers: tab_sequence (tabs), group_extension (menu anchors), item_letter (menu items), control_badges (command controls). - Add tab letters for Insert (N), Page Layout (P), Formulas (M), Data (A), Review (R), View (W); Draw/Automate stay unbadged until contextual letters land. - Tests: 5 table unit tests + tab_letters_switch_to_their_ribbon_tabs integration test. All 7 xtask ci gates green.
This commit is contained in:
parent
e90ebbbbe2
commit
82cf8a6bb3
|
|
@ -298,12 +298,13 @@ fn held_keys_do_not_toggle_twice_or_leak_repeated_letters() {
|
|||
#[test]
|
||||
fn tab_letters_switch_to_their_ribbon_tabs() {
|
||||
let mut h = harness(blank());
|
||||
for (k, tab) in [(Key::N, "Insert"), (Key::P, "Page Layout"), (Key::M, "Formulas"), (Key::A, "Data"), (Key::R, "Review")] {
|
||||
for (k, tab) in [(Key::N, "Insert"), (Key::P, "Page Layout"), (Key::M, "Formulas"), (Key::A, "Data"), (Key::R, "Review"), (Key::W, "View")] {
|
||||
key(&mut h, Key::F10); // arm
|
||||
letter(&mut h, k, false);
|
||||
assert_eq!(h.state().ui.ribbon_tab, tab, "letter {k:?}");
|
||||
assert_eq!(h.state().keytips.prefix(), None, "terminal tab units finish cleanly");
|
||||
assert!(h.state().editor.is_none(), "tab letters must not begin a cell edit");
|
||||
key(&mut h, Key::F10); // disarm
|
||||
assert_eq!(h.state().keytips.prefix(), None);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue