@@ -1,6 +1,9 @@
11package list
22
3−import "github.com/charmbracelet/bubbles/v2/key"
3+import (
4+ "github.com/charmbracelet/bubbles/v2/key"
5+ "github.com/opencode-ai/opencode/internal/tui/layout"
6+)
47
58type KeyMap struct {
69 Down,
@@ -12,8 +15,7 @@ type KeyMap struct {
1215 HalfPageDown,
1316 HalfPageUp,
1417 Home,
15− End,
16− Submit key.Binding
18+ End key.Binding
1719}
1820
1921func DefaultKeymap() KeyMap {
@@ -48,23 +50,24 @@ func DefaultKeymap() KeyMap {
4850 End: key.NewBinding(
4951 key.WithKeys("shift+g", "end"),
5052 ),
51− Submit: key.NewBinding(
52− key.WithKeys("enter", "space"),
53− key.WithHelp("enter/space", "select"),
54− ),
5553 }
5654}
5755
5856// FullHelp implements help.KeyMap.
59−func (k KeyMap) FullHelp() [][]key.Binding { return nil }
57+func (k KeyMap) FullHelp() [][]key.Binding {
58+ m := [][]key.Binding{}
59+ slice := layout.KeyMapToSlice(k)
60+ for i := 0; i < len(slice); i += 4 {
61+ end := min(i+4, len(slice))
62+ m = append(m, slice[i:end])
63+ }
64+ return m
65+}
6066
6167// ShortHelp implements help.KeyMap.
6268func (k KeyMap) ShortHelp() []key.Binding {
6369 return []key.Binding{
64− key.NewBinding(
65− key.WithKeys("up", "down"),
66− key.WithHelp("↓↑", "navigate"),
67− ),
68− k.Submit,
70+ k.Up,
71+ k.Down,
6972 }
7073}