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 Undo 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"), ), Undo: key.NewBinding( key.WithKeys("u"), key.WithHelp("undo", "Undo"), ), } }