You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bugfix: Detect conflicts for compound-scope shortcuts
- `scope-hierarchy.ts` only knew simple scopes, so `getActiveScopes('Main window/File list')` (and every other compound scope) returned `[]`, and `scopesOverlap` short-circuits to false on an empty chain. The 48 compound-scope commands could never conflict with anything, including each other: binding the same combo to two File-list commands showed no warning.
- Unify on one scope vocabulary: `scope-hierarchy.ts` now re-exports `CommandScope` from `commands/types.ts`, dropping the legacy simple-scope-only type (`File list`, `Navigation`, `Selection`, `Edit`, `View`, `Help`, `Settings window` — none of which the registry uses).
- Give compound scopes correct ancestry chains: `Brief mode` / `Full mode` sit under `Main window/File list` (the list renders in both modes, so a mode key collides with a File-list key), while Brief and Full stay siblings (the default `←`/`→` pairs must not conflict). `Network` / `Share browser` / `Volume chooser` are siblings of the file list (a pane shows one INSTEAD of the list).
- Drop the now-redundant `as CommandScope` casts in `conflict-detector.ts` and `KeyboardShortcutsSection.svelte`.
- Add a regression test over the full registry: default bindings produce zero conflicts.
0 commit comments