mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-11 08:06:25 -04:00
A rendered row can carry several diff-metadata records back-to-back with nothing painted in between: difftastic's per-hunk banner emits the file's f immediately followed by the hunk's h, and a modification row collapsed to a single column emits its d immediately followed by its a (spec 6.1/6.2). The escape interpreter kept only one accumulating payload and reset it when the next record started, so every record but the last was silently dropped -- the banner resolved as a bare hunk header, and staging a collapsed modification row staged only the addition half. Orphan an unconsumed payload instead of dropping it: when a new record starts (or the line ends) before any cell consumed the current payload, hand it to the write loop, which materializes it as a content-less zero-width carrier cell -- the same trick finishLine already used for delta's metadata-only blank lines, now generalized. Carrier cells hold their place in left-to-right payload order and are invisible: drawing paints a transient space that the next cell immediately overwrites at the same x, and their zero width keeps wrap accounting unchanged. DiffLineMetadataPayloads thus reports every record of such a row, so ChangeLinesInViewRange stages both halves of a collapsed modification row; DiffLineMetadataInLine reports the first (the f of a banner, the d of a collapsed row), matching the two-column convention. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| app | ||
| cheatsheet | ||
| commands | ||
| common | ||
| config | ||
| constants | ||
| env | ||
| fakes | ||
| gocui | ||
| gui | ||
| i18n | ||
| integration | ||
| jsonschema | ||
| logs | ||
| snake | ||
| tasks | ||
| theme | ||
| updates | ||
| utils | ||