package keymaps import "github.com/charmbracelet/bubbles/v2/key" // KeyMap defines all keyboard shortcuts type KeyMap struct { Quit key.Binding Help key.Binding ToggleMarkdown key.Binding Submit key.Binding Clear key.Binding ScrollUp key.Binding ScrollDown key.Binding PageUp key.Binding PageDown key.Binding } // ShortHelp returns a short help message func (k KeyMap) ShortHelp() []key.Binding { return []key.Binding{k.Help, k.Quit} } // FullHelp returns complete help information func (k KeyMap) FullHelp() [][]key.Binding { return [][]key.Binding{ {k.Help}, {k.Quit}, {k.ToggleMarkdown}, {k.Submit}, {k.Clear}, {k.ScrollUp, k.ScrollDown}, {k.PageUp, k.PageDown}, } } // Default returns the default key bindings var Default = KeyMap{ Quit: key.NewBinding( key.WithKeys("ctrl+c"), key.WithHelp("ctrl+c", "quit"), ), Help: key.NewBinding( key.WithKeys("ctrl+h"), key.WithHelp("ctrl+h", "help"), ), ToggleMarkdown: key.NewBinding( key.WithKeys("tab"), key.WithHelp("tab", "toggle view"), ), Submit: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "send"), ), Clear: key.NewBinding( key.WithKeys("ctrl+l"), key.WithHelp("ctrl+l", "clear"), ), ScrollUp: key.NewBinding( key.WithKeys("up", "k"), key.WithHelp("↑/k", "scroll up"), ), ScrollDown: key.NewBinding( key.WithKeys("down", "j"), key.WithHelp("↓/j", "scroll down"), ), PageUp: key.NewBinding( key.WithKeys("pgup"), key.WithHelp("PgUp", "page up"), ), PageDown: key.NewBinding( key.WithKeys("pgdown"), key.WithHelp("PgDn", "page down"), ), }