diff --git a/pkg/config/user_config_validation.go b/pkg/config/user_config_validation.go index 41e63ab86..83b2a7c5a 100644 --- a/pkg/config/user_config_validation.go +++ b/pkg/config/user_config_validation.go @@ -68,5 +68,14 @@ func validateKeybindingsRecurse(path string, node any) error { } func validateKeybindings(keybindingConfig KeybindingConfig) error { - return validateKeybindingsRecurse("", keybindingConfig) + if err := validateKeybindingsRecurse("", keybindingConfig); err != nil { + return err + } + + if len(keybindingConfig.Universal.JumpToBlock) != 5 { + return fmt.Errorf("keybinding.universal.jumpToBlock must have 5 elements; found %d.", + len(keybindingConfig.Universal.JumpToBlock)) + } + + return nil } diff --git a/pkg/config/user_config_validation_test.go b/pkg/config/user_config_validation_test.go index f49b3479b..8069b13be 100644 --- a/pkg/config/user_config_validation_test.go +++ b/pkg/config/user_config_validation_test.go @@ -1,6 +1,7 @@ package config import ( + "strings" "testing" "github.com/stretchr/testify/assert" @@ -42,6 +43,19 @@ func TestUserConfigValidate_enums(t *testing.T) { {value: "invalid_value", valid: false}, }, }, + { + name: "JumpToBlock keybinding", + setup: func(config *UserConfig, value string) { + config.Keybinding.Universal.JumpToBlock = strings.Split(value, ",") + }, + testCases: []testCase{ + {value: "", valid: false}, + {value: "1,2,3", valid: false}, + {value: "1,2,3,4,5", valid: true}, + {value: "1,2,3,4,invalid", valid: false}, + {value: "1,2,3,4,5,6", valid: false}, + }, + }, } for _, s := range scenarios {