fix(keymap): honor command-mode aliases across navigation contexts - #274
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Mapping
;toEnterMode = "Command"worked in normal editor mode, but embedded composers and transcripts consumed it as a character-search repeat. Visual modes also failed to inherit the command-entry binding.Resolve configured command-entry actions before panel and workspace navigation, and inherit them in visual modes while respecting explicit visual-mode overrides. Insert-mode text, search queries, workspace filters, and unfinished Vim commands retain their input. The default
;character-search behavior is unchanged when no alias is configured.Adds nine regression tests in
src/editor/command_mode.rsand documents the existing keymap configuration; no new setting is required.How to Test
Add this binding to the user config and run
cargo run:Press
;in normal mode, then in each visual mode (v,V, andCtrl-v). The command prompt should open; visual selections should retain the'<,'>command range.Open the agent pane, enter a draft, press Escape to enter composer normal mode, then press
;. Escape should return without changing the draft or focus. Repeat from transcript navigation and from:GitDashboard.Check that
;still types normally in insert mode and search/filter fields. In normal mode,f;must search for a semicolon rather than open the command prompt. An explicit[keys.visual]override should take precedence.Run
cargo test -p red --lib command_mode::tests -- --test-threads=1to exercise the focused regressions.Validation
cargo clippy --all-targets --all-features -- -D warningspassed.