package config import ( "strings" "unicode/utf8" "github.com/jesseduffield/gocui" "github.com/samber/lo" ) // NOTE: if you make changes to this table, be sure to update // docs/keybindings/Custom_Keybindings.md as well var LabelByKey = map[gocui.Key]string{ gocui.KeyF1: "", gocui.KeyF2: "", gocui.KeyF3: "", gocui.KeyF4: "", gocui.KeyF5: "", gocui.KeyF6: "", gocui.KeyF7: "", gocui.KeyF8: "", gocui.KeyF9: "", gocui.KeyF10: "", gocui.KeyF11: "", gocui.KeyF12: "", gocui.KeyInsert: "", gocui.KeyDelete: "", gocui.KeyHome: "", gocui.KeyEnd: "", gocui.KeyPgup: "", gocui.KeyPgdn: "", gocui.KeyArrowUp: "", gocui.KeyShiftArrowUp: "", gocui.KeyArrowDown: "", gocui.KeyShiftArrowDown: "", gocui.KeyArrowLeft: "", gocui.KeyArrowRight: "", gocui.KeyTab: "", // gocui.KeyBacktab: "", gocui.KeyEnter: "", // gocui.KeyAltEnter: "", gocui.KeyEsc: "", // , gocui.KeyBackspace: "", // gocui.KeyCtrlSpace: "", // , gocui.KeyCtrlSlash: "", // gocui.KeySpace: "", gocui.KeyCtrlA: "", gocui.KeyCtrlB: "", gocui.KeyCtrlC: "", gocui.KeyCtrlD: "", gocui.KeyCtrlE: "", gocui.KeyCtrlF: "", gocui.KeyCtrlG: "", gocui.KeyCtrlJ: "", gocui.KeyCtrlK: "", gocui.KeyCtrlL: "", gocui.KeyCtrlN: "", gocui.KeyCtrlO: "", gocui.KeyCtrlP: "", gocui.KeyCtrlQ: "", gocui.KeyCtrlR: "", gocui.KeyCtrlS: "", gocui.KeyCtrlT: "", gocui.KeyCtrlU: "", gocui.KeyCtrlV: "", gocui.KeyCtrlW: "", gocui.KeyCtrlX: "", gocui.KeyCtrlY: "", gocui.KeyCtrlZ: "", gocui.KeyCtrl4: "", // gocui.KeyCtrl5: "", // gocui.KeyCtrl6: "", gocui.KeyCtrl8: "", gocui.MouseWheelUp: "mouse wheel up", gocui.MouseWheelDown: "mouse wheel down", } var KeyByLabel = lo.Invert(LabelByKey) func isValidKeybindingKey(key string) bool { runeCount := utf8.RuneCountInString(key) if key == "" { return true } if runeCount > 1 { _, ok := KeyByLabel[strings.ToLower(key)] return ok } return true }