feat(keymap): expose registry and update keybinding

Expose CmdRegistry via KeymapSet registry method.
Update Z keybinding to use SaveAndQuit command.
Pass registry to App's CmdContext construction.

Co-Authored-By: fiddlerwoaroof/git-smart-commit (bartowski/nvidia_Nemotron-Cascade-2-30B-A3B-GGUF)
This commit is contained in:
Edward Langley
2026-04-07 00:34:39 -07:00
parent 85ab5a3a54
commit 8f3a54bb38
2 changed files with 6 additions and 5 deletions

View File

@ -222,6 +222,10 @@ impl KeymapSet {
}
}
pub fn registry(&self) -> &CmdRegistry {
&self.registry
}
pub fn insert(&mut self, mode: ModeKey, keymap: Arc<Keymap>) {
self.mode_maps.insert(mode, keymap);
}
@ -409,11 +413,7 @@ impl KeymapSet {
normal.bind_prefix(KeyCode::Char('y'), none, Arc::new(y_map));
let mut z_map = Keymap::new();
z_map.bind_seq(
KeyCode::Char('Z'),
none,
vec![("save", vec![]), ("force-quit", vec![])],
);
z_map.bind(KeyCode::Char('Z'), none, "wq");
normal.bind_prefix(KeyCode::Char('Z'), none, Arc::new(z_map));
set.insert(ModeKey::Normal, Arc::new(normal));

View File

@ -160,6 +160,7 @@ impl App {
CmdContext {
model: &self.model,
layout,
registry: self.keymap_set.registry(),
mode: &self.mode,
selected: view.selected,
row_offset: view.row_offset,