keys.go (1634B)
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 } 17 18 func defaultKeyMap() keyMap { 19 return keyMap{ 20 Up: key.NewBinding( 21 key.WithKeys("up"), 22 key.WithHelp("↑", "up"), 23 ), 24 Down: key.NewBinding( 25 key.WithKeys("down"), 26 key.WithHelp("↓", "down"), 27 ), 28 TabNext: key.NewBinding( 29 key.WithKeys("tab", "right"), 30 key.WithHelp("tab/→", "next tab"), 31 ), 32 TabPrev: key.NewBinding( 33 key.WithKeys("shift+tab", "left"), 34 key.WithHelp("shift+tab/←", "prev tab"), 35 ), 36 Open: key.NewBinding( 37 key.WithKeys("enter"), 38 key.WithHelp("enter", "open/toggle"), 39 ), 40 Back: key.NewBinding( 41 key.WithKeys("esc"), 42 key.WithHelp("esc", "back/close"), 43 ), 44 Help: key.NewBinding( 45 key.WithKeys("?"), 46 key.WithHelp("?", "help"), 47 ), 48 Quit: key.NewBinding( 49 key.WithKeys("q", "ctrl+c"), 50 key.WithHelp("q", "quit"), 51 ), 52 PageDown: key.NewBinding( 53 key.WithKeys("pgdown", "f", "shift+down"), 54 key.WithHelp("pgdn", "scroll down"), 55 ), 56 PageUp: key.NewBinding( 57 key.WithKeys("pgup", "b", "shift+up"), 58 key.WithHelp("pgup", "scroll up"), 59 ), 60 } 61 } 62 63 func (k keyMap) ShortHelp() []key.Binding { 64 return []key.Binding{k.TabPrev, k.TabNext, k.Up, k.Down, k.Open, k.Back, k.Help, k.Quit} 65 } 66 67 func (k keyMap) FullHelp() [][]key.Binding { 68 return [][]key.Binding{{k.TabPrev, k.TabNext, k.Up, k.Down, k.PageUp, k.PageDown}, {k.Open, k.Back, k.Help, k.Quit}} 69 }