1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-04-23 12:18:51 +02:00

Add disabled compat for user config (#2833)

Treat <disabled> setting as equivalent to "null"
in keybindings user configs.
This commit is contained in:
Karim Khaleel 2023-10-09 22:06:32 +03:00
parent c39fafe6ec
commit d02deeefd8
5 changed files with 34 additions and 5 deletions

View File

@ -163,7 +163,7 @@ keybinding:
jumpToBlock: ['1', '2', '3', '4', '5'] # goto the Nth block / panel jumpToBlock: ['1', '2', '3', '4', '5'] # goto the Nth block / panel
nextMatch: 'n' nextMatch: 'n'
prevMatch: 'N' prevMatch: 'N'
optionMenu: null # show help menu optionMenu: <disabled> # show help menu
optionMenu-alt1: '?' # show help menu optionMenu-alt1: '?' # show help menu
select: '<space>' select: '<space>'
goInto: '<enter>' 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) 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 ```yaml
keybinding: keybinding:
universal: universal:
edit: null # disable 'edit file' edit: <disabled> # disable 'edit file'
``` ```
### Example Keybindings For Colemak Users ### Example Keybindings For Colemak Users

View File

@ -691,7 +691,7 @@ func GetDefaultConfig() *UserConfig {
NextMatch: "n", NextMatch: "n",
PrevMatch: "N", PrevMatch: "N",
StartSearch: "/", StartSearch: "/",
OptionMenu: "", OptionMenu: "<disabled>",
OptionMenuAlt1: "?", OptionMenuAlt1: "?",
Select: "<space>", Select: "<space>",
GoInto: "<enter>", GoInto: "<enter>",

View File

@ -100,7 +100,9 @@ func LabelFromKey(key types.Key) string {
func GetKey(key string) types.Key { func GetKey(key string) types.Key {
runeCount := utf8.RuneCountInString(key) runeCount := utf8.RuneCountInString(key)
if runeCount > 1 { if key == "<disabled>" {
return nil
} else if runeCount > 1 {
binding, ok := keyByLabel[strings.ToLower(key)] binding, ok := keyByLabel[strings.ToLower(key)]
if !ok { if !ok {
log.Fatalf("Unrecognized key %s for keybinding. For permitted values see %s", strings.ToLower(key), constants.Links.Docs.CustomKeybindings) log.Fatalf("Unrecognized key %s for keybinding. For permitted values see %s", strings.ToLower(key), constants.Links.Docs.CustomKeybindings)

View File

@ -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 set keybindings to blank to disable them",
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()
},
})

View File

@ -170,6 +170,7 @@ var tests = []*components.IntegrationTest{
interactive_rebase.SwapWithConflict, interactive_rebase.SwapWithConflict,
misc.ConfirmOnQuit, misc.ConfirmOnQuit,
misc.CopyToClipboard, misc.CopyToClipboard,
misc.DisabledKeybindings,
misc.InitialOpen, misc.InitialOpen,
misc.RecentReposOnLaunch, misc.RecentReposOnLaunch,
patch_building.Apply, patch_building.Apply,