What do you want to change?
Add a go-to-line flow to the review UI. Pressing : opens a small line-number prompt in the status bar (same inline-input pattern as the / file filter). A bare number jumps to that line in the selected file by the current file's numbering — the same R side the note labels use — while an l prefix (e.g. :l42) targets the source file's numbering (the L side). Enter jumps the current-line cursor there so c can annotate directly, Escape cancels, and a line outside the diff reports a notice naming the side instead of jumping.
Why?
#662 added a current-line cursor and anchored notes to it, but moving that cursor is still line-by-line (j/k) or by mouse. In a large changeset, annotating a specific line you already know — e.g. from a stack trace, a CI log, or a colleague's comment — means dozens of j presses or reaching for the mouse. A vim-style :42 makes keyboard-driven annotation precise in one motion, which was the original motivation of #436.
How? (optional)
- Register
hunk.review.gotoLine (default key :) in the shared command catalog, remappable via [keybindings] like every other command.
- The prompt reuses the status bar's inline prompt input; digits plus an optional leading side letter.
- On submit, resolve the typed line through the existing shared
revealLine(fileId, side, n) path — the same one the session navigate command uses — so scrolling, selection, and the line cursor all land consistently. A line with no rendered row degrades to its hunk or reports "not part of the diff"; no new navigation machinery is introduced.
- I have this implemented with AppHost interaction tests and a PTY test (jump to line 62 across hunks, then anchor a note at R62), plus the one integration fallout handled: the bundled vim-navigation example's
: command-line moves to ;, since built-ins shadow extension chords by design.
What do you want to change?
Add a go-to-line flow to the review UI. Pressing
:opens a small line-number prompt in the status bar (same inline-input pattern as the/file filter). A bare number jumps to that line in the selected file by the current file's numbering — the sameRside the note labels use — while anlprefix (e.g.:l42) targets the source file's numbering (theLside). Enter jumps the current-line cursor there soccan annotate directly, Escape cancels, and a line outside the diff reports a notice naming the side instead of jumping.Why?
#662 added a current-line cursor and anchored notes to it, but moving that cursor is still line-by-line (
j/k) or by mouse. In a large changeset, annotating a specific line you already know — e.g. from a stack trace, a CI log, or a colleague's comment — means dozens ofjpresses or reaching for the mouse. A vim-style:42makes keyboard-driven annotation precise in one motion, which was the original motivation of #436.How? (optional)
hunk.review.gotoLine(default key:) in the shared command catalog, remappable via[keybindings]like every other command.revealLine(fileId, side, n)path — the same one the sessionnavigatecommand uses — so scrolling, selection, and the line cursor all land consistently. A line with no rendered row degrades to its hunk or reports "not part of the diff"; no new navigation machinery is introduced.:command-line moves to;, since built-ins shadow extension chords by design.