jesseduffield.lazygit/pkg/gui/controllers/helpers
Stefan Haller f7e26fec4e Make the patch-building secondary pane's space remove the right lines, disable its discard
The focused-main-view rework made the secondary pane actionable, but the old
patch-building explorer's secondary was inert, so its actions were never thought
through. Pressing space there routed through the same toggle handler as the main
pane, resolving the selection against the secondary's diff and mapping it to
patch-builder indices by line number. But the secondary shows the *aggregated*
custom patch, which renumbers included additions whenever an earlier addition in
the same hunk is excluded (Transform recomputes each hunk's +start). So the
shifted number resolved to the wrong line in the original diff — often adding an
unrelated line instead of removing the selected one.

Resolve the secondary selection by its *ordinal* among the change lines shown
instead: the custom-patch view renders exactly the included change lines in
order, so the k-th change line of a file is that file's k-th included change line
(PatchBuilder.IncludedChangeLineIndices), independent of the renumbering. Space
in the secondary now only ever removes, mirroring how space in the staging view's
staged pane unstages.

Discarding from the commit (the remove key) makes no sense in the custom-patch
preview — it would act on lines shown only as the patch, and space already
removes them — so it's disabled there.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-08 12:59:00 +02:00
..
amend_helper.go Allow passing refresh scope to WithGpgHandling 2025-03-24 08:41:58 +01:00
app_status_helper.go Decouple hiding the working tree state from blocking input 2026-08-05 17:29:20 +02:00
bisect_helper.go Remove the RefreshMode field 2026-07-17 12:32:32 +02:00
branches_helper.go Don't auto-forward branches when the repo was switched during the fetch 2026-07-20 17:07:39 +02:00
cherry_pick_helper.go Decouple hiding the working tree state from blocking input 2026-08-05 17:29:20 +02:00
commit_files_helper.go WIP FocusedMainViewSnapshot approach 2026-08-08 12:58:59 +02:00
commits_helper.go Rename Key to Keys in Binding, KeybindingsOpts, and MenuItem 2026-05-25 15:18:18 +02:00
commits_helper_test.go Remove hard line breaks when rewording commits 2024-03-09 10:00:44 +01:00
confirmation_helper.go Remove the now-dead PopupMutex 2026-07-17 12:35:54 +02:00
credentials_helper.go Remove the RefreshMode field 2026-07-17 12:32:32 +02:00
diff_helper.go Extend the raw-diff fallback to the commit/stash/patch-building panels 2026-08-08 12:59:00 +02:00
diff_line_navigation.go Select the clicked hunk when clicking into the main view in hunk mode 2026-08-08 12:59:00 +02:00
diff_line_navigation_test.go Navigate the focused main view by file and hunk 2026-08-08 12:58:59 +02:00
diff_line_parser.go Add a batch buffer-diff parser that parses each file section once 2026-08-08 12:58:59 +02:00
diff_line_parser_test.go Use pager-emitted OSC diff metadata as the highest-fidelity line-info backend 2026-08-08 12:58:59 +02:00
drag_autoscroller.go Add DragAutoScroller helper 2026-07-31 08:26:35 +02:00
drag_autoscroller_test.go Add DragAutoScroller helper 2026-07-31 08:26:35 +02:00
files_helper.go Cleanup: remove unused interfaces for helpers 2025-04-08 16:08:25 +02:00
fixup_helper.go Suppress command logs for git calls related to the ctrl+f command 2026-07-19 19:22:48 +02:00
fixup_helper_test.go Ignore fixup commits for a found base commit when doing ctrl-f 2026-01-24 16:04:35 +01:00
gpg_helper.go Remove the RefreshMode field 2026-07-17 12:32:32 +02:00
helpers.go Extract some functions from CommitFilesController to a new CommitFilesHelper 2026-08-08 12:58:59 +02:00
host_helper.go Cleanup: remove unused interfaces for helpers 2025-04-08 16:08:25 +02:00
inline_status_helper.go Update comments that still describe the removed blocking refresh mode 2026-07-21 22:23:58 +02:00
menu_key.go Use a slice of keys for each binding 2026-05-25 15:18:18 +02:00
merge_and_rebase_helper.go Check for exec todos on the UI thread 2026-07-17 12:35:54 +02:00
merge_conflicts_helper.go Make the conflict marker size a parameter of our marker matching 2026-08-08 12:43:42 +02:00
mode_helper.go Scroll the selection into view after a filtering mode change 2026-08-05 17:29:20 +02:00
patch_building_helper.go Return to the focused main view when escaping the staged half too 2026-08-08 12:58:59 +02:00
record_directory_helper.go split context common from helper common 2023-04-30 13:19:53 +10:00
refresh_helper.go Build a custom patch from the commits / sub-commits / stash main views 2026-08-08 12:59:00 +02:00
refresh_helper_test.go Restore commit selection even when the commit's TODO status changed 2026-06-23 09:20:05 +02:00
refs_helper.go Show the inline status again when checking out a newly created remote branch 2026-07-21 22:23:57 +02:00
repos_helper.go Remember how to get back to a repo we entered a submodule from 2026-08-08 11:15:01 +02:00
search_helper.go Cleanup: remove unnecessary function Label() 2026-04-30 22:14:26 +02:00
signal_handling.go Implement suspending the app using ctrl-z 2025-08-14 20:41:46 +02:00
signal_handling_windows.go Implement suspending the app using ctrl-z 2025-08-14 20:41:46 +02:00
snake_helper.go Bump gocui and adapt lazygit code 2024-12-01 10:40:08 +01:00
staging_helper.go Make the patch-building secondary pane's space remove the right lines, disable its discard 2026-08-08 12:59:00 +02:00
sub_commits_helper.go Remove refresh mutexes made redundant by bouncing 2026-07-07 18:09:33 +02:00
suggestions_helper.go Hold the file-path suggestions trie outside the model 2026-07-17 12:35:54 +02:00
suspend_resume_helper.go Implement suspending the app using ctrl-z 2025-08-14 20:41:46 +02:00
tags_helper.go Convert keybinding fields to Keybinding 2026-05-25 15:32:47 +02:00
update_helper.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
upstream_helper.go Cleanup: remove unused interfaces for helpers 2025-04-08 16:08:25 +02:00
upstream_helper_test.go Standardise on using lo for slice functions 2023-07-30 18:51:23 +10:00
view_helper.go standardise helper args 2023-04-30 13:19:53 +10:00
window_arrangement_helper.go Add gui.shrinkSidePanelsToContent option 2026-07-03 19:25:01 +02:00
window_arrangement_helper_test.go Add gui.shrinkSidePanelsToContent option 2026-07-03 19:25:01 +02:00
window_helper.go Drive the side panel layout from gui.sidePanels 2026-06-23 14:15:18 +02:00
working_tree_helper.go Remove the RefreshMode field 2026-07-17 12:32:32 +02:00
worktree_helper.go Remove the RefreshMode field 2026-07-17 12:32:32 +02:00
worktree_helper_test.go Add helper to compute candidate worktree parent directories 2026-07-03 18:53:05 +02:00