Problem: highlight_hunk applied DiffsClear extmarks across 5 scattered
sites with ad-hoc column arithmetic. highlight_hunk_vim_syntax duplicated
the inline vim syntax path, and the deferred pass in init.lua double-called
it, creating duplicate scratch buffers and extmarks.
Solution: reorganize highlight_hunk into two clean phases:
- Phase 1: multi-line syntax computation (treesitter, vim syntax, diff
grammar, header context text) — sets syntax extmarks only
- Phase 2: per-line chrome (DiffsClear, backgrounds, gutter, overlays,
intra-line) — all non-syntax extmarks in one unified pass
Hoist new_code to function scope (needed by highlight_text outside the
use_ts block). Hoist at_raw_line so Phase 1d and Phase 2b share it.
Delete highlight_hunk_vim_syntax (redundant with inline path). Remove
the double-call from the deferred pass in init.lua.