package common import ( "github.com/charmbracelet/bubbles/key" ) // Keymap is a collection of key bindings. type Keymap struct { Quit key.Binding Back key.Binding Ok key.Binding Input key.Binding Add key.Binding Edit key.Binding Up key.Binding Down key.Binding Left key.Binding Right key.Binding SetReport key.Binding SetContext key.Binding SetProject key.Binding Select key.Binding Insert key.Binding } // NewKeymap creates a new Keymap. func NewKeymap() *Keymap { return &Keymap{ Quit: key.NewBinding( key.WithKeys("q", "ctrl+c"), key.WithHelp("q, ctrl+c", "Quit"), ), Back: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "Back"), ), Ok: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "Ok"), ), Input: key.NewBinding( key.WithKeys(":"), key.WithHelp(":", "Input"), ), Add: key.NewBinding( key.WithKeys("a"), key.WithHelp("a", "Add new task"), ), Edit: key.NewBinding( key.WithKeys("e"), key.WithHelp("e", "Edit task"), ), Up: key.NewBinding( key.WithKeys("k", "up"), key.WithHelp("↑/k", "Up"), ), Down: key.NewBinding( key.WithKeys("j", "down"), key.WithHelp("↓/j", "Down"), ), Left: key.NewBinding( key.WithKeys("h", "left"), key.WithHelp("←/h", "Left"), ), Right: key.NewBinding( key.WithKeys("l", "right"), key.WithHelp("→/l", "Right"), ), SetReport: key.NewBinding( key.WithKeys("r"), key.WithHelp("r", "Set report"), ), SetContext: key.NewBinding( key.WithKeys("c"), key.WithHelp("c", "Set context"), ), SetProject: key.NewBinding( key.WithKeys("p"), key.WithHelp("p", "Set project"), ), Select: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "Select"), ), Insert: key.NewBinding( key.WithKeys("i"), key.WithHelp("insert", "Insert mode"), ), } }