jesseduffield.lazygit/pkg/commands
Stefan Haller 473f83ec49 Support git's own word diff as a metadata-emitting diff renderer
git now emits the diff line metadata records itself, for the word-diff
formats -- the ones whose output can't be read back from its own text,
which is the same reason we need records out of delta and difftastic. So
a rawGit renderer configured with --color-words is no longer a diff we
have to give up on: it names every row it shows, as a patched pager does.

Two things stood in the way. The probe only knew how to ask a stdin
filter or an external diff driver and reported false for anything else,
so git's own records were never looked for; and the focused main view
treated a rawGit renderer with arguments as unresolvable by definition,
re-rendering it raw whatever the probe said.

So probe git the way we will run it, with the renderer's own arguments,
and look for an actual record rather than the handshake the other probes
settle for. git annotates only some of its formats, so an installed git
that doesn't speak the protocol and arguments that select no word diff
both leave us without records, and looking for a record answers both at
once. Arguments that aren't a word diff (-U10, --stat) therefore keep
rendering raw when focused, as they did before.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 12:59:00 +02:00
..
direnv Offer direnv .envrc approval from inside lazygit 2026-06-04 09:05:01 +02:00
git_commands Support git's own word diff as a metadata-emitting diff renderer 2026-08-08 12:59:00 +02:00
git_config Pin the cached git config's commands to the repo directory 2026-07-20 17:07:39 +02:00
hosting_service Optimize regex compilations 2026-05-10 15:28:14 +02:00
models Make the conflict marker size a parameter of our marker matching 2026-08-08 12:43:42 +02:00
oscommands Start all commands of a pipeline before waiting for any of them 2026-08-06 14:34:47 +02:00
patch Render the custom-patch secondary pane through the pager, via a real git diff 2026-08-08 12:59:00 +02:00
testdata Support opening lazygit in a submodule 2019-05-12 17:59:49 +10:00
git.go Create the custom-patch temp dir under lazygit's configured temp dir 2026-08-08 12:59:00 +02:00
git_cmd_obj_builder.go Tell git where the repo is when it can't find it itself 2026-08-08 11:15:01 +02:00
git_cmd_obj_builder_test.go Tell git where the repo is when it can't find it itself 2026-08-08 11:15:01 +02:00
git_cmd_obj_runner.go Back off exponentially between lock-error retries 2026-07-15 10:08:44 +02:00
git_cmd_obj_runner_test.go Back off exponentially between lock-error retries 2026-07-15 10:08:44 +02:00