prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

keys.go (1935B)


      1 package tui
      2 
      3 import "github.com/charmbracelet/bubbles/key"
      4 
      5 type keyMap struct {
      6 	Up       key.Binding
      7 	Down     key.Binding
      8 	TabNext  key.Binding
      9 	TabPrev  key.Binding
     10 	Open     key.Binding
     11 	Back     key.Binding
     12 	Help     key.Binding
     13 	Quit     key.Binding
     14 	PageDown key.Binding
     15 	PageUp   key.Binding
     16 	Left     key.Binding
     17 	Right    key.Binding
     18 }
     19 
     20 func defaultKeyMap() keyMap {
     21 	return keyMap{
     22 		Up: key.NewBinding(
     23 			key.WithKeys("up"),
     24 			key.WithHelp("↑", "up"),
     25 		),
     26 		Down: key.NewBinding(
     27 			key.WithKeys("down"),
     28 			key.WithHelp("↓", "down"),
     29 		),
     30 		TabNext: key.NewBinding(
     31 			key.WithKeys("tab", "right"),
     32 			key.WithHelp("tab/→", "next tab"),
     33 		),
     34 		TabPrev: key.NewBinding(
     35 			key.WithKeys("shift+tab", "left"),
     36 			key.WithHelp("shift+tab/←", "prev tab"),
     37 		),
     38 		Open: key.NewBinding(
     39 			key.WithKeys("enter"),
     40 			key.WithHelp("enter", "open/toggle"),
     41 		),
     42 		Back: key.NewBinding(
     43 			key.WithKeys("esc"),
     44 			key.WithHelp("esc", "back/close"),
     45 		),
     46 		Help: key.NewBinding(
     47 			key.WithKeys("?"),
     48 			key.WithHelp("?", "help"),
     49 		),
     50 		Quit: key.NewBinding(
     51 			key.WithKeys("q", "ctrl+c"),
     52 			key.WithHelp("q", "quit"),
     53 		),
     54 		PageDown: key.NewBinding(
     55 			key.WithKeys("pgdown", "f", "shift+down"),
     56 			key.WithHelp("pgdn", "scroll down"),
     57 		),
     58 		PageUp: key.NewBinding(
     59 			key.WithKeys("pgup", "b", "shift+up"),
     60 			key.WithHelp("pgup", "scroll up"),
     61 		),
     62 		Left: key.NewBinding(
     63 			key.WithKeys("h", "shift+left"),
     64 			key.WithHelp("←/→ h/l", "scroll readme sideways"),
     65 		),
     66 		Right: key.NewBinding(
     67 			key.WithKeys("l", "shift+right"),
     68 			key.WithHelp("←/→ h/l", "scroll readme sideways"),
     69 		),
     70 	}
     71 }
     72 
     73 func (k keyMap) ShortHelp() []key.Binding {
     74 	return []key.Binding{k.TabPrev, k.TabNext, k.Up, k.Down, k.Open, k.Back, k.Help, k.Quit}
     75 }
     76 
     77 func (k keyMap) FullHelp() [][]key.Binding {
     78 	return [][]key.Binding{{k.TabPrev, k.TabNext, k.Up, k.Down, k.PageUp, k.PageDown, k.Right}, {k.Open, k.Back, k.Help, k.Quit}}
     79 }