keys.go

 1package chat
 2
 3import (
 4	"charm.land/bubbles/v2/key"
 5)
 6
 7type KeyMap struct {
 8	NewSession    key.Binding
 9	AddAttachment key.Binding
10	Cancel        key.Binding
11	Tab           key.Binding
12	Details       key.Binding
13	TogglePills   key.Binding
14	PillLeft      key.Binding
15	PillRight     key.Binding
16}
17
18func DefaultKeyMap() KeyMap {
19	return KeyMap{
20		NewSession: key.NewBinding(
21			key.WithKeys("ctrl+n"),
22			key.WithHelp("ctrl+n", "new session"),
23		),
24		AddAttachment: key.NewBinding(
25			key.WithKeys("ctrl+f"),
26			key.WithHelp("ctrl+f", "add attachment"),
27		),
28		Cancel: key.NewBinding(
29			key.WithKeys("esc", "alt+esc"),
30			key.WithHelp("esc", "cancel"),
31		),
32		Tab: key.NewBinding(
33			key.WithKeys("tab"),
34			key.WithHelp("tab", "change focus"),
35		),
36		Details: key.NewBinding(
37			key.WithKeys("ctrl+d"),
38			key.WithHelp("ctrl+d", "toggle details"),
39		),
40		TogglePills: key.NewBinding(
41			key.WithKeys("ctrl+space"),
42			key.WithHelp("ctrl+space", "toggle tasks"),
43		),
44		PillLeft: key.NewBinding(
45			key.WithKeys("left"),
46			key.WithHelp("←/→", "switch section"),
47		),
48		PillRight: key.NewBinding(
49			key.WithKeys("right"),
50			key.WithHelp("←/→", "switch section"),
51		),
52	}
53}