-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathhelp.go
More file actions
93 lines (87 loc) · 2.12 KB
/
help.go
File metadata and controls
93 lines (87 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package main
import (
"charm.land/bubbles/v2/help"
"charm.land/bubbles/v2/key"
"charm.land/lipgloss/v2"
)
type keyMap struct {
Up key.Binding
Down key.Binding
Connect key.Binding
Disconnect key.Binding
Import key.Binding
Rename key.Binding
Delete key.Binding
Help key.Binding
Quit key.Binding
ForceQuit key.Binding
}
func newKeyMap() keyMap {
return keyMap{
Up: key.NewBinding(
key.WithKeys("k", "up"),
key.WithHelp("↑/k", "move up"),
),
Down: key.NewBinding(
key.WithKeys("j", "down"),
key.WithHelp("↓/j", "move down"),
),
Connect: key.NewBinding(
key.WithKeys("enter"),
key.WithHelp("enter", "connect"),
),
Disconnect: key.NewBinding(
key.WithKeys("d"),
key.WithHelp("d", "disconnect"),
),
Import: key.NewBinding(
key.WithKeys("i"),
key.WithHelp("i", "import config"),
),
Rename: key.NewBinding(
key.WithKeys("r"),
key.WithHelp("r", "rename config"),
),
Delete: key.NewBinding(
key.WithKeys("x"),
key.WithHelp("x", "delete config"),
),
Help: key.NewBinding(
key.WithKeys("?"),
key.WithHelp("?", "toggle help"),
),
Quit: key.NewBinding(
key.WithKeys("q"),
key.WithHelp("q", "quit"),
),
ForceQuit: key.NewBinding(
key.WithKeys("ctrl+c"),
key.WithHelp("ctrl+c", "force quit"),
),
}
}
func (k keyMap) ShortHelp() []key.Binding {
return []key.Binding{k.Connect, k.Disconnect, k.Import, k.Help, k.Quit}
}
func (k keyMap) FullHelp() [][]key.Binding {
return [][]key.Binding{
{k.Up, k.Down},
{k.Connect, k.Disconnect},
{k.Import, k.Rename, k.Delete},
{k.Help, k.Quit, k.ForceQuit},
}
}
func newHelp() help.Model {
h := help.New()
s := help.DefaultDarkStyles()
s.ShortKey = lipgloss.NewStyle().Foreground(accent).Bold(true)
s.ShortDesc = lipgloss.NewStyle().Foreground(dimCol)
s.ShortSeparator = lipgloss.NewStyle().Foreground(borderCol)
s.FullKey = lipgloss.NewStyle().Foreground(accent).Bold(true)
s.FullDesc = lipgloss.NewStyle().Foreground(textCol)
s.FullSeparator = lipgloss.NewStyle().Foreground(borderCol)
h.Styles = s
h.ShortSeparator = " │ "
h.FullSeparator = " │ "
return h
}