diff: shows the whole file, changes highlighted
A hunk nav-URI like diff:ast/BAST.c#L362 (the U link bro emits on each diff hunk) currently opens a FILE-SCOPED diff: that shows only that file's changed hunks, scrolled to the line. For a single file the user wants the opposite of the dir/tree view: render the WHOLE file content with the changed lines highlighted in place (like git diff --color over the full file, a review pane), so a change reads in full surrounding context. Tree/dir diff: keeps showing only changed hunks. Method: Issues.
diff: is URI-driven (graf/DIFFREF.c: "file or whole tree, ref vs wt orref vs ref"). A file path scopes to that file; today it emits only the file's changed hunks.
U nav-URI per hunk carrying a #L<n> line anchor (dog/HUNK.c
fragment grammar; built via HUNKu8sMakeURI, graf/WEAVE.c). Clicking it re-dispatches diff:<path>#L<n> — the entry point for this view.
diff: (changed-hunks-only), which must NOT change.be diff:<file>#L<n> (file-scoped) renders the FULL file, every line, with
added/removed/changed lines highlighted in place and the #L<n> anchor honored for scroll/jump.
diff: (no single-file path) stays changed-hunks-only.changed-hunks-only) keyed off file-vs-tree URI scope; bro owns the change highlighting/presentation — producers must not decide presentation.
graf/DIFFREF.c,
graf/WEAVE.c); emit unchanged context lines tagged so bro highlights.
abc/ untouched; read-only dog/HUNK stream; all four URI slots compose.diff: URI should makeDIFFREF emit all file lines (change-tagged), not just hunks — confirm the branch/flag, and whether the ref-vs-ref line cap must lift for one file.
dog/HUNK tok tags bro already has for add/del/change lines, and whether full-file context needs an "unchanged" tag.
diff:; keep tree/dir scopechanged-hunks-only.
#L<n> anchor for jump/scroll in the full-file view.diff:<file>#L<n> output contains an UNCHANGED line
far from any change AND the highlighted changed line, in Plain/Color/TLV; tree-scope diff: still hunks-only (regression).
need a file-scope override (verify the BNOROOM-class limits).
eaa75793: file-scope diff: reuses the cat: emitter
WEAVEEmitFull (change-tagged, no windowing) via a b8 full flag threaded through GRAFDiff2Layer; tree-scope keeps windowed WEAVEEmitDiff.
WEAVEEmitFull gained a scheme param so dog/HUNK routes the full-file
hunk to the unified +/- formatter (cat: passes empty → byte-identical). Test test/diff/11-file-scope-full; 373/373 green.