Mountain/Command/Keybinding.rs
1#![allow(non_snake_case)]
2
3//! # Keybinding (Tauri command surface)
4//!
5//! Bridges keyboard-shortcut UI requests from Sky into the
6//! `KeybindingProvider` registry. Five wire-bound commands, each in its
7//! own file (file name = Tauri command identifier per the
8//! Naming-Convention exception):
9//!
10//! - `GetResolvedKeybinding::GetResolvedKeybinding` - final resolved bindings
11//! after merging defaults + extension contributions + user.
12//! - `GetUserKeybindings::GetUserKeybindings` - user overrides (stub).
13//! - `RegisterExtensionKeybindings::RegisterExtensionKeybindings` (stub).
14//! - `UnregisterExtensionKeybindings::UnregisterExtensionKeybindings` (stub).
15//! - `CheckKeybindingConflicts::CheckKeybindingConflicts` - chord overlap
16//! detection (stub).
17//!
18//! Errors propagate as `Result<Value, String>` for direct frontend
19//! display.
20//!
21//! VS Code reference:
22//! `vs/workbench/services/keybinding/browser/keybindingService.ts`,
23//! `vs/platform/keybinding/common/keybindingResolver.ts`.
24//!
25//! TODO: weighted resolution (user > extension > default), persistence
26//! to ApplicationState, when-clause contexts, chord (multi-stroke)
27//! sequences, platform-specific bindings, conflict-resolution UI.
28
29pub mod CheckKeybindingConflicts;
30pub mod GetResolvedKeybinding;
31pub mod GetUserKeybindings;
32pub mod RegisterExtensionKeybindings;
33pub mod UnregisterExtensionKeybindings;