keymap.go (view raw)
1package main
2
3import "github.com/charmbracelet/bubbles/key"
4
5type keyMap struct {
6 Up key.Binding
7 Down key.Binding
8 Priority key.Binding
9 ClearPriority key.Binding
10 Help key.Binding
11 Quit key.Binding
12 Check key.Binding
13 Clean key.Binding
14 Add key.Binding
15 Edit key.Binding
16 OrderUp key.Binding
17 OrderDown key.Binding
18 SortByPriority key.Binding
19 SortByDate key.Binding
20}
21
22// ShortHelp returns keybindings to be shown in the mini help view. It's part
23// of the key.Map interface.
24func (k keyMap) ShortHelp() []key.Binding {
25 return []key.Binding{k.Check, k.Add, k.SortByPriority, k.Help}
26}
27
28// FullHelp returns keybindings for the expanded help view. It's part of the
29// key.Map interface.
30func (k keyMap) FullHelp() [][]key.Binding {
31 return [][]key.Binding{
32 {k.Check, k.Priority, k.Up, k.Down, k.OrderUp, k.OrderDown},
33 {k.Add, k.ClearPriority, k.Clean},
34 {k.SortByPriority, k.SortByDate, k.Quit},
35 }
36}
37
38var keys = keyMap{
39 Up: key.NewBinding(
40 key.WithKeys("up", "k"),
41 key.WithHelp("↑|k", "Move up"),
42 ),
43 Down: key.NewBinding(
44 key.WithKeys("down", "j"),
45 key.WithHelp("↓|j", "Move down"),
46 ),
47 Priority: key.NewBinding(
48 key.WithKeys("a", "b", "c", "d"),
49 key.WithHelp("a|b|c|d", "Set priority"),
50 ),
51 ClearPriority: key.NewBinding(
52 key.WithKeys("z"),
53 key.WithHelp("z", "Clear priority"),
54 ),
55 Add: key.NewBinding(
56 key.WithKeys("A", "+"),
57 key.WithHelp("A|+", "Add new task"),
58 ),
59 Edit: key.NewBinding(
60 key.WithKeys("e", "enter"),
61 key.WithHelp("e|Enter", "Edit task"),
62 ),
63 OrderUp: key.NewBinding(
64 key.WithKeys("shift+up"),
65 key.WithHelp("shift+↑", "Move up task"),
66 ),
67 OrderDown: key.NewBinding(
68 key.WithKeys("shift+down"),
69 key.WithHelp("shift+↓", "Move down task"),
70 ),
71 SortByPriority: key.NewBinding(
72 key.WithKeys("p"),
73 key.WithHelp("p", "Sort by priority"),
74 ),
75 SortByDate: key.NewBinding(
76 key.WithKeys("s"),
77 key.WithHelp("s", "Sort by date"),
78 ),
79 Help: key.NewBinding(
80 key.WithKeys("?"),
81 key.WithHelp("?", "More help"),
82 ),
83 Check: key.NewBinding(
84 key.WithKeys(" ", "x"),
85 key.WithHelp("space", "Check task"),
86 ),
87 Clean: key.NewBinding(
88 key.WithKeys("u"),
89 key.WithHelp("u", "Clean completed tasks"),
90 ),
91 Quit: key.NewBinding(
92 key.WithKeys("ctrl+c", "q"),
93 key.WithHelp("q", "Quit"),
94 ),
95}