4 "charm.land/bubbles/v2/key"
18 isClaudeAuthChoiceHelp bool
19 isClaudeOAuthHelp bool
20 isClaudeOAuthURLState bool
21 isClaudeOAuthHelpComplete bool
24func DefaultKeyMap() KeyMap {
26 Select: key.NewBinding(
27 key.WithKeys("enter", "ctrl+y"),
28 key.WithHelp("enter", "choose"),
31 key.WithKeys("down", "ctrl+n"),
32 key.WithHelp("↓", "next item"),
34 Previous: key.NewBinding(
35 key.WithKeys("up", "ctrl+p"),
36 key.WithHelp("↑", "previous item"),
38 Choose: key.NewBinding(
39 key.WithKeys("left", "right", "h", "l"),
40 key.WithHelp("←→", "choose"),
44 key.WithHelp("tab", "toggle type"),
46 Close: key.NewBinding(
47 key.WithKeys("esc", "alt+esc"),
48 key.WithHelp("esc", "exit"),
53// KeyBindings implements layout.KeyMapProvider
54func (k KeyMap) KeyBindings() []key.Binding {
64// FullHelp implements help.KeyMap.
65func (k KeyMap) FullHelp() [][]key.Binding {
66 m := [][]key.Binding{}
67 slice := k.KeyBindings()
68 for i := 0; i < len(slice); i += 4 {
69 end := min(i+4, len(slice))
70 m = append(m, slice[i:end])
75// ShortHelp implements help.KeyMap.
76func (k KeyMap) ShortHelp() []key.Binding {
77 if k.isClaudeAuthChoiceHelp {
80 key.WithKeys("left", "right", "h", "l"),
81 key.WithHelp("←→", "choose"),
84 key.WithKeys("enter"),
85 key.WithHelp("enter", "accept"),
89 key.WithHelp("esc", "back"),
93 if k.isClaudeOAuthHelp {
94 if k.isClaudeOAuthHelpComplete {
97 key.WithKeys("enter"),
98 key.WithHelp("enter", "close"),
103 enterHelp := "submit"
104 if k.isClaudeOAuthURLState {
108 bindings := []key.Binding{
110 key.WithKeys("enter"),
111 key.WithHelp("enter", enterHelp),
115 if k.isClaudeOAuthURLState {
116 bindings = append(bindings, key.NewBinding(
118 key.WithHelp("c", "copy url"),
122 bindings = append(bindings, key.NewBinding(
124 key.WithHelp("esc", "back"),
129 if k.isAPIKeyHelp && !k.isAPIKeyValid {
130 return []key.Binding{
132 key.WithKeys("enter"),
133 key.WithHelp("enter", "submit"),
137 } else if k.isAPIKeyValid {
138 return []key.Binding{
142 return []key.Binding{
144 key.WithKeys("down", "up"),
145 key.WithHelp("↑↓", "choose"),
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list