feat(editor): numbered bookmarks — Alt+1-9 jump, Shift+Alt+1-9 set/clear - #114
Conversation
|
Warning Review limit reached
Next review available in: 21 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR adds numbered bookmarks with Alt/Shift+Alt digit shortcuts, per-song localStorage persistence, waveform markers, command routing, tests, and changelog notes. ChangesNumbered bookmarks
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant KeyHandler
participant CommandDispatcher
participant EditorActions
participant LocalStorage
User->>KeyHandler: Shift+Alt+Digit
KeyHandler->>CommandDispatcher: setBookmark:<n>
CommandDispatcher->>EditorActions: _editorSetBookmark(n)
EditorActions->>LocalStorage: save bookmark map
EditorActions-->>User: status update and redraw
User->>KeyHandler: Alt+Digit
KeyHandler->>CommandDispatcher: gotoBookmark:<n>
CommandDispatcher->>EditorActions: _editorGotoBookmark(n)
EditorActions->>LocalStorage: read bookmark map
EditorActions-->>User: seek to stored time
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Roadmap 2.3 parity cluster. Nine per-song time markers for hopping between
working spots in a long chart:
- Shift+Alt+1-9 sets/clears a bookmark at the cursor (toggle-set: setting
a slot at its own spot clears it); Alt+1-9 jumps via _editorSeekToTime.
- Numbered green flags render over the waveform band (same typeof-guarded
hook as the onset strip, so drawWaveform stays test-extractable).
- Key matching uses e.code (physical digit keys) so the shifted digit row
('!','@',...) resolves on any layout; plain digits still set frets.
- Editor authoring state only: one localStorage entry per song (parse is
junk-proof), cached per filename so the draw path never parses per
frame; never pack data (design section 6).
Tests: tests/bookmarks.test.js (7 cases) — storage/parse/toggle semantics +
both shortcut profiles dispatch. Full JS suite 42 files green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JEoFeTPSnz4NpwwCG52hnu
a99cba4 to
ca61556
Compare
Panel rows for the ready digit-range commands (gotoBookmarkDigit / setBookmarkDigit) rendered as enabled buttons but _editorRunEofCommand only handles the per-digit forms, so the clicks were silently inert (same latent pattern as setFretDigit). Route digit-range panel clicks through a new pure hint helper so they show which keys to press. Adds a regression test that fails on pre-fix screen.js. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
@coderabbitai review |
✅ Action performedReview finished.
|
# Conflicts: # CHANGELOG.md
Roadmap 2.3 (parity cluster, final item alongside #113): numbered bookmarks for hopping between working spots in a long chart.
What
_editorSeekToTime(scroll-into-view + mid-playback restart included).drawWaveformstays extractable by the render test.e.code Digit1–9): with Shift held the digit row produces!,@,… on most layouts, soe.keymatching would break. Plain digits still set frets; Ctrl+Alt+digit stays unclaimed. Registry rows in both profiles (gotoBookmark:/setBookmark:prefix commands, thesetFretDigit:pattern).Tests
tests/bookmarks.test.js(7 cases): per-song key, junk-proof parsing (bad JSON, arrays, out-of-range slots, negative times), toggle-set semantics + input-map immutability + identity-skip, and dispatch through both real shortcut-profile resolvers including the shifted-digit case. Full JS suite: 42 files green;node --checkclean.Fresh region vs the open queue — waveform-band draw hook, seek helpers region, registry rows.
🤖 Generated with Claude Code
https://claude.ai/code/session_01JEoFeTPSnz4NpwwCG52hnu
Summary by CodeRabbit
New Features
Bug Fixes
Tests