all repos — todo.txt-go @ 9a7f2eff7040a7900e3775f9e03bcb88c4c4e2e1

CLI tool for todo.txt files written in Go

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}