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 }