headway:headway/seat-earth-stand, which follows headway:headway/print-wisdom-average. Below are three ways to quiet the band between the card title and the diff. Each one is drawn on the same commit as the screenshot. All three also get two fixes: the peek pill sits on a solid band, and a ba fence draws as a Before | After pair. Pick one. Point 4 (the same point made three times) is a separate question at the end.
Paren keys through a walk
A commit's code walk is a reading order through its diff: an intro, then one violet note above each hunk it cites. The review pane already had keys for every other list: n/p for cards, ]/[ for files, }/{ for commits. Walking the notes still meant scrolling and hunting for the next violet card. Now ) scrolls the diff so the next walk note is the first row under the pinned file header, and ( goes back. Back from the first note goes to the top, where the intro is. At either end a notice says so ("No later walk note", "No earlier walk note") instead of doing nothing.
A code walk is a reading order through its diff, but reaching the next walk note meant scrolling until a violet card showed up. `)` now scrolls the review diff so the next walk note is the first row under the pinned file header, and `(` goes back; back from the first note goes to the top, where the walk's intro is drawn. At either end a notice says so ("No later walk note", "No earlier walk note").
notedeck_ui's patch view gains PatchScroll::StickyNote(NoteStep), landing a note's first row the way File(n) lands a header. It steps only notes that pin (PatchNote::pins: sticky and AboveHunk), so line comments are passed over.
The change adds a generic scroll to the patch widget in crates/notedeck_ui/src/diff/patch_view.rs that lands the next or previous pinning note, then wires Headway's )/( to it. Read the widget first (the variant, the row math, the search, the resolve), then the keymap syntax that makes (/) bindable, then Headway's tool, pane state and notice, and the tests last.
Explainer
Paren keys through a walk
A commit's code walk is a reading order through its diff: an intro, then one violet note above each hunk it cites. The review pane already had keys for every other list: n/p for cards, ]/[ for files, }/{ for commits. Walking the notes still meant scrolling and hunting for the next violet card. Now ) scrolls the diff so the next walk note is the first row under the pinned file header, and ( goes back. Back from the first note goes to the top, where the intro is. At either end a notice says so ("No later walk note", "No earlier walk note") instead of doing nothing.
Commit
headway: review pane — ) and ( step through a commit's code-walk notes
A code walk is a reading order through its diff, but reaching the next walk note meant scrolling until a violet card showed up. `)` now scrolls the review diff so the next walk note is the first row under the pinned file header, and `(` goes back; back from the first note goes to the top, where the walk's intro is drawn.
notedeck_ui's patch view gains PatchScroll::StickyNote(NoteStep), landing a note's first row the way File(n) lands a header.
The change adds a generic scroll to the patch widget in crates/notedeck_ui/src/diff/patch_view.rs that lands the next or previous pinning note, then wires Headway's )/( to it. Read the widget first (the variant, the row math, the search, the resolve), then the keymap syntax that makes (/) bindable, then Headway's tool, pane state and notice, and the tests last.
A commit's code walk is a reading order through its diff: an intro, then one violet note above each hunk it cites. The review pane already had keys for every other list: n/p for cards, ]/[ for files, }/{ for commits. Walking the notes still meant scrolling and hunting for the next violet card. Now ) scrolls the diff so the next walk note is the first row under the pinned file header, and ( goes back. Back from the first note goes to the top, where the intro is. At either end a notice says so ("No later walk note", "No earlier walk note") instead of doing nothing.
A code walk is a reading order through its diff, but reaching the next walk note meant scrolling until a violet card showed up. `)` now scrolls the review diff so the next walk note is the first row under the pinned file header, and `(` goes back; back from the first note goes to the top, where the walk's intro is drawn. At either end a notice says so ("No later walk note", "No earlier walk note").
notedeck_ui's patch view gains PatchScroll::StickyNote(NoteStep), landing a note's first row the way File(n) lands a header. It steps only notes that pin (PatchNote::pins: sticky and AboveHunk), so line comments are passed over.
The change adds a generic scroll to the patch widget in crates/notedeck_ui/src/diff/patch_view.rs that lands the next or previous pinning note, then wires Headway's )/( to it. Read the widget first (the variant, the row math, the search, the resolve), then the keymap syntax that makes (/) bindable, then Headway's tool, pane state and notice, and the tests last.