package main import "github.com/charmbracelet/bubbles/key" type keyMap struct { Up key.Binding Down key.Binding Priority key.Binding ClearPriority key.Binding Help key.Binding SaveQuit key.Binding Quit key.Binding Check key.Binding Clean key.Binding Add key.Binding SortByPriority key.Binding SortByDate key.Binding } // ShortHelp returns keybindings to be shown in the mini help view. It's part // of the key.Map interface. func (k keyMap) ShortHelp() []key.Binding { return []key.Binding{k.Check, k.Add, k.SortByPriority, k.SaveQuit, k.Help} } // FullHelp returns keybindings for the expanded help view. It's part of the // key.Map interface. func (k keyMap) FullHelp() [][]key.Binding { return [][]key.Binding{ {k.Check, k.Priority, k.Up}, {k.Add, k.ClearPriority, k.Clean, k.Down}, {k.SortByPriority, k.SortByDate, k.SaveQuit, k.Quit}, } } var keys = keyMap{ Up: key.NewBinding( key.WithKeys("up", "k"), key.WithHelp("↑/k", "Move up"), ), Down: key.NewBinding( key.WithKeys("down", "j"), key.WithHelp("↓/j", "Move down"), ), Priority: key.NewBinding( key.WithKeys("a", "b", "c", "d"), key.WithHelp("a|b|c", "Set priority"), ), ClearPriority: key.NewBinding( key.WithKeys("z"), key.WithHelp("z", "Clear priority"), ), Add: key.NewBinding( key.WithKeys("A", "+"), key.WithHelp("A|+", "Add new task"), ), SortByPriority: key.NewBinding( key.WithKeys("p"), key.WithHelp("p", "Sort by priority"), ), SortByDate: key.NewBinding( key.WithKeys("s"), key.WithHelp("s", "Sort by date"), ), Help: key.NewBinding( key.WithKeys("?"), key.WithHelp("?", "More help"), ), Check: key.NewBinding( key.WithKeys(" ", "enter"), key.WithHelp("space", "Check task"), ), Clean: key.NewBinding( key.WithKeys("u"), key.WithHelp("u", "Clean completed tasks"), ), SaveQuit: key.NewBinding( key.WithKeys("q", "esc"), key.WithHelp("q", "Save & quit"), ), Quit: key.NewBinding( key.WithKeys("ctrl+c"), key.WithHelp("ctrl+c", "Cancel & quit"), ), }