jesseduffield.lazygit/pkg/integration/tests
Stefan Haller 67ba1899b4 Build a custom patch from the focused main view of a commit's files
Pressing space in the commit-files focused main view now toggles the
selected line(s)/hunk into or out of the custom patch, instead of being a
no-op. It's the patch-building counterpart of working-tree staging from
the main view: the selection is resolved to change-line identities the
same way (ChangeLinesInViewRange), then mapped to the patch builder's
per-file line indices and added or removed.

The crux is that the commit's diff is unchanged by a toggle — only the
inclusion set changes — so unlike staging there's no async re-render to
ride. Membership is shown by an on-demand inclusion gutter: a reserved
left column painted with a marker on every change line currently in the
patch, recomputed synchronously after each toggle and on focusing the
main view, over the existing pager output. This is what lets patch
building work over a restructuring pager at all, where the old green
first-char overlay (which rewrites the rendered bytes) can't.

space routes to staging or patch building based on which handler the
panel beneath registers, via a new onTogglePatchFocusedMainView channel
(kept separate from staging because the post-action differs: sync gutter
repaint vs async reveal). Scoped to the commit-files panel for now;
commits/sub-commits/stash and the whole-commit multi-file diff follow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-08 12:59:00 +02:00
..
bisect Make integration tests using commits more robust 2026-07-09 11:56:27 +02:00
branch Change list section headers to a slightly more elegant design 2026-07-31 08:03:40 +02:00
cherry_pick Change list section headers to a slightly more elegant design 2026-07-31 08:03:40 +02:00
commit Change list section headers to a slightly more elegant design 2026-07-31 08:03:40 +02:00
config Test per-repo side panel config and re-application on repo switch 2026-06-23 14:15:18 +02:00
conflicts Honor the conflict-marker-size gitattribute 2026-08-08 12:43:42 +02:00
custom_commands Make integration tests using commits more robust 2026-07-09 11:56:27 +02:00
demo Move the new-worktree keybinding from worktrees to universal 2026-07-03 18:53:05 +02:00
diff Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
file Only prompt to continue a rebase/merge if we started it 2026-07-03 18:28:07 +02:00
filter_and_search Change list section headers to a slightly more elegant design 2026-07-31 08:03:40 +02:00
filter_by_author Make integration tests using commits more robust 2026-07-09 11:56:27 +02:00
filter_by_path When entering a commit in path filtering mode, select the filtered path 2025-10-09 09:58:15 +02:00
interactive_rebase Cancel commit drags with escape 2026-07-31 08:37:28 +02:00
misc Open the repo when lazygit is started in its .git dir 2026-08-08 11:15:01 +02:00
patch_building Build a custom patch from the focused main view of a commit's files 2026-08-08 12:59:00 +02:00
reflog Un-deprecate UserConfig.Git.Log.Order and ShowGraph 2025-07-09 13:15:03 +02:00
remote feat: add fork remote command 2025-11-16 17:26:00 +01:00
shared Add tests demonstrating that we ignore the conflict-marker-size gitattribute 2026-08-08 12:43:42 +02:00
shell_commands Rename "Custom Command" to "Shell Command" 2024-08-17 10:56:03 +02:00
staging Preserve the change-line ordinal in the post-stage reveal 2026-08-08 12:59:00 +02:00
stash Fix dropping a range of stashes in filtered mode 2025-08-25 18:41:06 +02:00
status Add backward cycling support for all branches log view 2026-03-08 17:06:17 +01:00
submodule Remember how to get back to a repo we entered a submodule from 2026-08-08 11:15:01 +02:00
sync Change list section headers to a slightly more elegant design 2026-07-31 08:03:40 +02:00
tag Fix deleting a remote tag when a remote branch with the same name exists 2025-11-27 19:52:18 +01:00
ui Keep range drags moving at panel edges 2026-07-31 08:32:43 +02:00
undo Switch to branches view when checking out a commit 2025-11-16 21:23:40 +01:00
worktree Tell git where the repo is when it can't find it itself 2026-08-08 11:15:01 +02:00
test_list.go Build a custom patch from the focused main view of a commit's files 2026-08-08 12:59:00 +02:00
test_list_generator.go Fix typos 2025-01-03 10:50:36 +11:00
tests.go Set working directory in lazygit test command 2024-01-12 19:59:31 +11:00