Skip to content

Canonicalize key aliases so equivalent chords match - #164

Merged
matt-edmondson merged 3 commits into
mainfrom
copilot/fix-ctrl-esc-keybinding-issue
Oct 3, 2026
Merged

matt-edmondson merged 3 commits into
mainfrom
copilot/fix-ctrl-esc-keybinding-issue

Conversation

Copilot AI commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Bindings such as Ctrl+Esc did not match Ctrl+Escape because only modifier aliases were normalized. The mismatch also affected arrow keys, other special keys, and ConsoleKey digit names.

  • Normalization: Map common aliases to canonical names based on SpecialKeys; map D0–D9 to digits and Option/Super to Alt/Meta.
  • Stored bindings: Apply the same normalization when profile notes are loaded, so alias spellings match runtime chords.
  • Regression coverage: Cover chord equality, hashing, and execution from a loaded profile.
Chord.Parse("Ctrl+Esc") == Chord.Parse("Ctrl+Escape") // true

Copilot AI and others added 2 commits October 1, 2026 10:07
Co-authored-by: matt-edmondson <19528727+matt-edmondson@users.noreply.github.com>
Co-authored-by: matt-edmondson <19528727+matt-edmondson@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix Ctrl+Esc keybinding to match Ctrl+Escape and others Canonicalize key aliases so equivalent chords match Oct 1, 2026
Copilot AI requested a review from matt-edmondson October 1, 2026 10:10
@matt-edmondson
matt-edmondson marked this pull request as ready for review October 2, 2026 13:01
@sonarqubecloud

sonarqubecloud Bot commented Oct 2, 2026

Copy link
Copy Markdown

@matt-edmondson
matt-edmondson merged commit 3dfd02e into main Oct 3, 2026
14 checks passed
@matt-edmondson
matt-edmondson deleted the copilot/fix-ctrl-esc-keybinding-issue branch October 3, 2026 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Ctrl+Esc" never matches "Ctrl+Escape" (nor Up/UpArrow, Return/Enter, Del/Delete, 1/D1): only modifier aliases are canonicalized

2 participants