v0.1.0 initial commit
This commit is contained in:
+93
@@ -0,0 +1,93 @@
|
||||
package terminal
|
||||
|
||||
// keyToName maps Key constants to canonical config string names
|
||||
var keyToName = map[Key]string{
|
||||
KeyEscape: "escape",
|
||||
KeyEnter: "enter",
|
||||
KeyTab: "tab",
|
||||
KeyBacktab: "backtab",
|
||||
KeyBackspace: "backspace",
|
||||
KeyDelete: "delete",
|
||||
KeySpace: "space",
|
||||
|
||||
KeyUp: "up",
|
||||
KeyDown: "down",
|
||||
KeyLeft: "left",
|
||||
KeyRight: "right",
|
||||
KeyHome: "home",
|
||||
KeyEnd: "end",
|
||||
KeyPageUp: "page_up",
|
||||
KeyPageDown: "page_down",
|
||||
KeyInsert: "insert",
|
||||
|
||||
KeyF1: "f1",
|
||||
KeyF2: "f2",
|
||||
KeyF3: "f3",
|
||||
KeyF4: "f4",
|
||||
KeyF5: "f5",
|
||||
KeyF6: "f6",
|
||||
KeyF7: "f7",
|
||||
KeyF8: "f8",
|
||||
KeyF9: "f9",
|
||||
KeyF10: "f10",
|
||||
KeyF11: "f11",
|
||||
KeyF12: "f12",
|
||||
|
||||
KeyCtrlA: "ctrl_a",
|
||||
KeyCtrlB: "ctrl_b",
|
||||
KeyCtrlC: "ctrl_c",
|
||||
KeyCtrlD: "ctrl_d",
|
||||
KeyCtrlE: "ctrl_e",
|
||||
KeyCtrlF: "ctrl_f",
|
||||
KeyCtrlG: "ctrl_g",
|
||||
KeyCtrlH: "ctrl_h",
|
||||
KeyCtrlI: "ctrl_i",
|
||||
KeyCtrlJ: "ctrl_j",
|
||||
KeyCtrlK: "ctrl_k",
|
||||
KeyCtrlL: "ctrl_l",
|
||||
KeyCtrlM: "ctrl_m",
|
||||
KeyCtrlN: "ctrl_n",
|
||||
KeyCtrlO: "ctrl_o",
|
||||
KeyCtrlP: "ctrl_p",
|
||||
KeyCtrlQ: "ctrl_q",
|
||||
KeyCtrlR: "ctrl_r",
|
||||
KeyCtrlS: "ctrl_s",
|
||||
KeyCtrlT: "ctrl_t",
|
||||
KeyCtrlU: "ctrl_u",
|
||||
KeyCtrlV: "ctrl_v",
|
||||
KeyCtrlW: "ctrl_w",
|
||||
KeyCtrlX: "ctrl_x",
|
||||
KeyCtrlY: "ctrl_y",
|
||||
KeyCtrlZ: "ctrl_z",
|
||||
KeyCtrlSpace: "ctrl_space",
|
||||
KeyCtrlBackslash: "ctrl_backslash",
|
||||
KeyCtrlBracketLeft: "ctrl_bracket_left",
|
||||
KeyCtrlBracketRight: "ctrl_bracket_right",
|
||||
KeyCtrlCaret: "ctrl_caret",
|
||||
KeyCtrlUnderscore: "ctrl_underscore",
|
||||
}
|
||||
|
||||
// nameToKey is the reverse lookup, built from keyToName
|
||||
var nameToKey map[string]Key
|
||||
|
||||
func init() {
|
||||
nameToKey = make(map[string]Key, len(keyToName))
|
||||
for k, v := range keyToName {
|
||||
nameToKey[v] = k
|
||||
}
|
||||
// Aliases
|
||||
nameToKey["shift_tab"] = KeyBacktab
|
||||
}
|
||||
|
||||
// KeyName returns the canonical string name for a Key constant
|
||||
// Returns empty string for KeyNone and KeyRune
|
||||
func KeyName(k Key) string {
|
||||
return keyToName[k]
|
||||
}
|
||||
|
||||
// KeyByName resolves a canonical name to a Key constant
|
||||
// Returns KeyNone and false if name is unknown
|
||||
func KeyByName(name string) (Key, bool) {
|
||||
k, ok := nameToKey[name]
|
||||
return k, ok
|
||||
}
|
||||
Reference in New Issue
Block a user