diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-10-10 16:49:31 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-10 16:49:31 +1100 |
commit | 16f7b01fec5111146bff8c9d5c1eb5a63e78f14d (patch) | |
tree | 07cbb5325cffcdcb058ff6ba09bb742d007c3d66 | |
parent | c39fafe6ec6fb64d1510adef8980e93aebb334d5 (diff) | |
parent | 421c6565f9340bba2e30c1f87ff333bbea48cf31 (diff) |
Add disabled compat for user config (#2833) (#3060)
-rw-r--r-- | docs/Config.md | 6 | ||||
-rw-r--r-- | pkg/config/user_config.go | 2 | ||||
-rw-r--r-- | pkg/gui/keybindings/keybindings.go | 4 | ||||
-rw-r--r-- | pkg/integration/tests/misc/disabled_keybindings.go | 26 | ||||
-rw-r--r-- | pkg/integration/tests/test_list.go | 1 |
5 files changed, 34 insertions, 5 deletions
diff --git a/docs/Config.md b/docs/Config.md index 5bdcaed98..b37745b44 100644 --- a/docs/Config.md +++ b/docs/Config.md @@ -163,7 +163,7 @@ keybinding: jumpToBlock: ['1', '2', '3', '4', '5'] # goto the Nth block / panel nextMatch: 'n' prevMatch: 'N' - optionMenu: null # show help menu + optionMenu: <disabled> # show help menu optionMenu-alt1: '?' # show help menu select: '<space>' goInto: '<enter>' @@ -462,12 +462,12 @@ Supported versions are "2" and "3". The deprecated config `showIcons` sets the v For all possible keybinding options, check [Custom_Keybindings.md](https://github.com/jesseduffield/lazygit/blob/master/docs/keybindings/Custom_Keybindings.md) -You can disable certain key bindings by specifying `null`. +You can disable certain key bindings by specifying `<disabled>`. ```yaml keybinding: universal: - edit: null # disable 'edit file' + edit: <disabled> # disable 'edit file' ``` ### Example Keybindings For Colemak Users diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go index d3d77b666..de0495466 100644 --- a/pkg/config/user_config.go +++ b/pkg/config/user_config.go @@ -691,7 +691,7 @@ func GetDefaultConfig() *UserConfig { NextMatch: "n", PrevMatch: "N", StartSearch: "/", - OptionMenu: "", + OptionMenu: "<disabled>", OptionMenuAlt1: "?", Select: "<space>", GoInto: "<enter>", diff --git a/pkg/gui/keybindings/keybindings.go b/pkg/gui/keybindings/keybindings.go index 4204dc4e1..fd8c694cf 100644 --- a/pkg/gui/keybindings/keybindings.go +++ b/pkg/gui/keybindings/keybindings.go @@ -100,7 +100,9 @@ func LabelFromKey(key types.Key) string { func GetKey(key string) types.Key { runeCount := utf8.RuneCountInString(key) - if runeCount > 1 { + if key == "<disabled>" { + return nil + } else if runeCount > 1 { binding, ok := keyByLabel[strings.ToLower(key)] if !ok { log.Fatalf("Unrecognized key %s for keybinding. For permitted values see %s", strings.ToLower(key), constants.Links.Docs.CustomKeybindings) diff --git a/pkg/integration/tests/misc/disabled_keybindings.go b/pkg/integration/tests/misc/disabled_keybindings.go new file mode 100644 index 000000000..55e07034d --- /dev/null +++ b/pkg/integration/tests/misc/disabled_keybindings.go @@ -0,0 +1,26 @@ +package misc + +import ( + "github.com/jesseduffield/lazygit/pkg/config" + . "github.com/jesseduffield/lazygit/pkg/integration/components" +) + +var DisabledKeybindings = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Confirms you can disable keybindings by setting them to <disabled>", + ExtraCmdArgs: []string{}, + Skip: false, + SetupConfig: func(config *config.AppConfig) { + config.UserConfig.Keybinding.Universal.PrevItem = "<disabled>" + config.UserConfig.Keybinding.Universal.NextItem = "<disabled>" + config.UserConfig.Keybinding.Universal.NextTab = "<up>" + config.UserConfig.Keybinding.Universal.PrevTab = "<down>" + }, + SetupRepo: func(shell *Shell) {}, + Run: func(t *TestDriver, keys config.KeybindingConfig) { + t.Views().Files(). + IsFocused(). + Press("<up>") + + t.Views().Worktrees().IsFocused() + }, +}) diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go index 89019719a..7759dcda7 100644 --- a/pkg/integration/tests/test_list.go +++ b/pkg/integration/tests/test_list.go @@ -170,6 +170,7 @@ var tests = []*components.IntegrationTest{ interactive_rebase.SwapWithConflict, misc.ConfirmOnQuit, misc.CopyToClipboard, + misc.DisabledKeybindings, misc.InitialOpen, misc.RecentReposOnLaunch, patch_building.Apply, |