1package list
 2
 3import (
 4	"github.com/charmbracelet/bubbles/v2/key"
 5)
 6
 7type KeyMap struct {
 8	Down,
 9	Up,
10	DownOneItem,
11	UpOneItem,
12	PageDown,
13	PageUp,
14	HalfPageDown,
15	HalfPageUp,
16	Home,
17	End key.Binding
18}
19
20func DefaultKeyMap() KeyMap {
21	return KeyMap{
22		Down: key.NewBinding(
23			key.WithKeys("down", "ctrl+j", "ctrl+n", "j"),
24			key.WithHelp("↓", "down"),
25		),
26		Up: key.NewBinding(
27			key.WithKeys("up", "ctrl+k", "ctrl+p", "k"),
28			key.WithHelp("↑", "up"),
29		),
30		UpOneItem: key.NewBinding(
31			key.WithKeys("shift+up", "K"),
32			key.WithHelp("shift+↑", "up one item"),
33		),
34		DownOneItem: key.NewBinding(
35			key.WithKeys("shift+down", "J"),
36			key.WithHelp("shift+↓", "down one item"),
37		),
38		HalfPageDown: key.NewBinding(
39			key.WithKeys("d"),
40			key.WithHelp("d", "half page down"),
41		),
42		PageDown: key.NewBinding(
43			key.WithKeys("pgdown", " ", "f"),
44			key.WithHelp("f/pgdn", "page down"),
45		),
46		PageUp: key.NewBinding(
47			key.WithKeys("pgup", "b"),
48			key.WithHelp("b/pgup", "page up"),
49		),
50		HalfPageUp: key.NewBinding(
51			key.WithKeys("u"),
52			key.WithHelp("u", "half page up"),
53		),
54		Home: key.NewBinding(
55			key.WithKeys("g", "home"),
56			key.WithHelp("g", "home"),
57		),
58		End: key.NewBinding(
59			key.WithKeys("G", "end"),
60			key.WithHelp("G", "end"),
61		),
62	}
63}