jesseduffield.lazygit/pkg/integration/tests
Uzair Aftab c3c346e430 Don't delete a suggestion when there is no suggestion selected
Deleting the last entry in the shell command history leaves the
suggestions list focused but empty. An empty list reports its selected
index as -1 (ListCursor.clampValue), and the delete keybinding passes
that index straight to HandleDeleteSuggestion, which subscripts
GetItems() with it. Pressing delete a second time panics and takes
lazygit down with it.

To reproduce: press ":" and run any command, press ":" again, tab into
the suggestions, then press "d" twice.

The handler two lines below already returns early on a -1, with a
comment saying it should never happen. That index comes from lo.IndexOf,
so this one never got the same scrutiny.

We guard the binding the way ConfirmSuggestion directly above it is
already guarded, with singleItemSelected. The key is then disabled with
the usual reason instead of firing on an empty list
2026-09-01 12:48:34 +02:00
..
bisect Make integration tests using commits more robust 2026-07-09 11:56:27 +02:00
branch Auto-select the conflicted commit when stopping in rebase 2026-08-15 15:24:36 +02:00
cherry_pick Auto-select the conflicted commit when stopping in rebase 2026-08-15 15:24:36 +02:00
commit Show renames when diffing a directory that a file was moved into or out of 2026-08-17 09:32:30 +02:00
config Test per-repo side panel config and re-application on repo switch 2026-06-23 14:15:18 +02:00
conflicts Keep showing files whose conflicts have been resolved 2026-08-16 16:45:50 +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 Show renames when diffing a directory that a file was moved into or out of 2026-08-17 09:32:30 +02:00
filter_and_search Filter the keybindings menu as you type 2026-08-31 20:41:22 +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 Fix scrolling back when dragging a commit 2026-08-27 08:22:55 +02:00
misc Filter the recent repositories menu as you type 2026-08-31 20:41:22 +02:00
patch_building Auto-select the conflicted commit when stopping in rebase 2026-08-15 15:24:36 +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 Don't delete a suggestion when there is no suggestion selected 2026-09-01 12:48:34 +02:00
staging Add RefreshBlockingInput to buffer keypresses until a refresh has landed 2026-07-22 08:31:11 +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 Auto-select the conflicted commit when stopping in rebase 2026-08-15 15:24:36 +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 Filter the keybindings menu as you type 2026-08-31 20:41:22 +02:00
undo Switch to branches view when checking out a commit 2025-11-16 21:23:40 +01:00
worktree Add test for how we show a worktree that is inside the main work tree 2026-08-15 11:26:58 +02:00
test_list.go Don't delete a suggestion when there is no suggestion selected 2026-09-01 12:48:34 +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