jesseduffield.lazygit/pkg/gui/controllers
Stefan Haller 3d18ee8f91 Use a slice of keys for each binding
This is a pure refactor in preparation for letting users configure multiple
alternate bindings for a single command. Every Binding still has exactly one
key, so nothing changes visibly: the cheatsheet, the on-screen options bar,
and the keybindings menu all render identically.

When a Binding ends up with multiple keys, the on-screen options bar will
show only the first (to avoid clutter); the cheatsheet will show all of them (in
a later commit). For now both paths take Key[0].

MenuItem.Key is changed in the same way, it also has a slice of keys now.

In this commit we keep the name `Key` in Binding, KeybindingOpts and MenuItem,
instead of renaming them to `Keys` right away, in order to keep the diff a bit
more readable. We'll do the rename separately in the next commit.
2026-05-25 15:18:18 +02:00
..
helpers Use a slice of keys for each binding 2026-05-25 15:18:18 +02:00
attach.go Add OnQuit hook for controllers 2026-04-21 11:25:29 +02:00
base_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
basic_commits_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
bisect_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
branches_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
command_log_controller.go Remove return value of Focus-related functions 2024-09-06 08:45:48 +02:00
commit_description_controller.go Move modifiers into Key 2026-04-30 22:22:53 +02:00
commit_message_controller.go Move modifiers into Key 2026-04-30 22:22:53 +02:00
commits_files_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
common.go lots of changes 2023-04-30 13:19:53 +10:00
confirmation_controller.go Refactor: add a separate Prompt view 2025-09-05 10:42:03 +02:00
context_lines_controller.go Cleanup: use CurrentSide() instead of private currentSidePanel 2026-03-09 19:42:28 +01:00
custom_patch_options_menu_action.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
diffing_menu_action.go Remove TrimSpace calls that are no longer needed 2025-11-15 15:38:24 +01:00
files_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
filter_controller.go Introduce filtered list view model 2023-07-03 12:54:13 +10:00
filtering_menu_action.go Remove TrimSpace calls that are no longer needed 2025-11-15 15:38:24 +01:00
git_flow_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
global_controller.go Remove OptionMenuAlt1 2026-05-25 15:18:18 +02:00
jump_to_side_window_controller.go Remove dead Modifier field from keybindings 2026-05-06 09:51:23 +02:00
list_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
list_controller_trait.go Enable nolintlint linter, and fix warnings 2025-06-30 18:30:11 +02:00
local_commits_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
local_commits_controller_test.go Move isFixupCommit to FixupHelper 2026-01-24 16:04:35 +01:00
main_view_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
menu_controller.go Call OnMenuPress(nil) when hitting esc in a menu 2026-04-01 09:13:55 +02:00
menu_key.go Use a slice of keys for each binding 2026-05-25 15:18:18 +02:00
merge_conflicts_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
options_menu_action.go Rename KeepConfirmKeybindings to KeepConflictingKeybindings 2025-12-22 09:37:06 +01:00
patch_building_controller.go Cleanup: remove unnecessary function Label() 2026-04-30 22:14:26 +02:00
patch_explorer_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
patch_explorer_controller_test.go Strip the '+' and '-' characters when copying parts of a diff to the clipboard 2025-04-29 11:33:47 +02:00
prompt_controller.go Use a slice of keys for each binding 2026-05-25 15:18:18 +02:00
quit_actions.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
reflog_commits_controller.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
remote_branches_controller.go Add a prompt for the sort order menus for branches 2025-07-09 13:16:42 +02:00
remotes_controller.go Show PushUrls for selected remote if there are any 2026-05-04 13:09:47 +02:00
remotes_controller_test.go feat: add fork remote command 2025-11-16 17:26:00 +01:00
rename_similarity_threshold_controller.go Cleanup: use CurrentSide() instead of private currentSidePanel 2026-03-09 19:42:28 +01:00
screen_mode_actions.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
scroll_off_margin.go Replace min/max helpers with built-in min/max 2024-04-07 23:24:10 +08:00
scroll_off_margin_test.go Add tests for scroll-off margin of zero 2023-08-21 08:10:28 +02:00
search_controller.go Introduce filtered list view model 2023-07-03 12:54:13 +10:00
search_prompt_controller.go Use a slice of keys for each binding 2026-05-25 15:18:18 +02:00
shell_command_action.go Strip leading/trailing whitespace from prompt input 2025-11-15 15:38:24 +01:00
side_window_controller.go Remove dead Modifier field from keybindings 2026-05-06 09:51:23 +02:00
snake_controller.go Cleanup: get rid of the variadic parameter of ContextMgr.Push 2025-04-08 16:08:25 +02:00
staging_controller.go Cleanup: remove unnecessary function Label() 2026-04-30 22:14:26 +02:00
stash_controller.go Localize "Dropping stash" log 2026-04-06 19:06:25 +02:00
status_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
sub_commits_controller.go Use async refresh rather than manual OnWorker call 2025-07-02 16:10:04 +02:00
submodules_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
suggestions_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
switch_to_diff_files_controller.go Rename GetOnClick (et al) to GetOnDoubleClick 2026-03-25 14:58:53 +01:00
switch_to_focused_main_view_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
switch_to_sub_commits_controller.go Rename GetOnClick (et al) to GetOnDoubleClick 2026-03-25 14:58:53 +01:00
sync_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
tags_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
toggle_whitespace_action.go Move IgnoreWhitespaceInDiffView to user config 2025-07-09 13:15:03 +02:00
undo_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
vertical_scroll_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
view_selection_controller.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
workspace_reset_controller.go Add menuKey helper to reduce noise on menu item literals 2026-05-25 15:18:18 +02:00
worktree_options_controller.go Remove unnecessary type arguments 2025-03-03 21:24:49 +01:00
worktrees_controller.go Rename GetOnClick (et al) to GetOnDoubleClick 2026-03-25 14:58:53 +01:00