fix: can't combine Shift and Down #641 #672
Open
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.
Fixes #641
Changes
Modified: command.go
Keep the Shift modifier held while typing navigation keys so
Shift+Arrow/Page/Home/End
fire the correct rod key codes.Modified: parser/parser.go
Allow Shift commands to consume navigation tokens (Arrow, Page, Home, End) in addition to the existing literals.
Modified: parser/parser_test.go
Add coverage for parsing
Shift+Down
andShift+Tab
.Modified: record.go
Map Shift+Arrow escape sequences, sort substitutions by length to avoid partial matches, and preserve Shift-prefixed commands during sanitization.
Modified: record_test.go
Verify that the recorder now turns Shift+Arrow escape sequences into
Shift+…
commands.Why
Shifted navigation keys were emitted as plain text (
Down
,Up
) or broken intoEscape
fragments, so we couldn’t replay selections made with Shift while recording or parsing tapes. These changes teach the recorder, parser, and executor to treat shifted navigation as first-class commands.How to reproduce
Before the fix
After the fix