on main help sign in
feat: update implementation to main
c31760bRaphael Amorim
internal/tui/components/chat/chat.go+1−1
@@ -500,6 +500,6 @@ func (m *messageListCmp) IsFocused() bool {
500}
500}
501
501
502func (m *messageListCmp) Bindings() []key.Binding {
502func (m *messageListCmp) Bindings() []key.Binding {
503− bindings := layout.KeyMapToSlice(m.defaultListKeyMap)
503+ bindings := m.defaultListKeyMap.KeyBindings()
504 return bindings
504 return bindings
505}
505}
internal/tui/components/chat/editor/editor.go+1−8
@@ -18,7 +18,6 @@ import (
18 "github.com/charmbracelet/crush/internal/session"
18 "github.com/charmbracelet/crush/internal/session"
19 "github.com/charmbracelet/crush/internal/tui/components/chat"
19 "github.com/charmbracelet/crush/internal/tui/components/chat"
20 "github.com/charmbracelet/crush/internal/tui/components/completions"
20 "github.com/charmbracelet/crush/internal/tui/components/completions"
21− "github.com/charmbracelet/crush/internal/tui/components/core/layout"
22 "github.com/charmbracelet/crush/internal/tui/components/dialogs"
21 "github.com/charmbracelet/crush/internal/tui/components/dialogs"
23 "github.com/charmbracelet/crush/internal/tui/components/dialogs/filepicker"
22 "github.com/charmbracelet/crush/internal/tui/components/dialogs/filepicker"
24 "github.com/charmbracelet/crush/internal/tui/components/dialogs/quit"
23 "github.com/charmbracelet/crush/internal/tui/components/dialogs/quit"
@@ -49,12 +48,6 @@ type editorCmp struct {
49 isCompletionsOpen bool
48 isCompletionsOpen bool
50}
49}
51
50
52−type DeleteAttachmentKeyMaps struct {
53− AttachmentDeleteMode key.Binding
54− Escape key.Binding
55− DeleteAllAttachments key.Binding
56−}
57−
58var DeleteKeyMaps = DeleteAttachmentKeyMaps{
51var DeleteKeyMaps = DeleteAttachmentKeyMaps{
59 AttachmentDeleteMode: key.NewBinding(
52 AttachmentDeleteMode: key.NewBinding(
60 key.WithKeys("ctrl+r"),
53 key.WithKeys("ctrl+r"),
@@ -372,7 +365,7 @@ func (c *editorCmp) IsFocused() bool {
372}
365}
373
366
374func (c *editorCmp) Bindings() []key.Binding {
367func (c *editorCmp) Bindings() []key.Binding {
375− return layout.KeyMapToSlice(c.keyMap)
368+ return c.keyMap.KeyBindings()
376}
369}
377
370
378func NewEditorCmp(app *app.App) util.Model {
371func NewEditorCmp(app *app.App) util.Model {
internal/tui/components/chat/editor/keys.go+9
@@ -27,6 +27,15 @@ func DefaultEditorKeyMap() EditorKeyMap {
27 }
27 }
28}
28}
29
29
30+// KeyBindings implements layout.KeyMapProvider
31+func (k EditorKeyMap) KeyBindings() []key.Binding {
32+ return []key.Binding{
33+ k.AddFile,
34+ k.SendMessage,
35+ k.OpenEditor,
36+ }
37+}
38+
30type DeleteAttachmentKeyMaps struct {
39type DeleteAttachmentKeyMaps struct {
31 AttachmentDeleteMode key.Binding
40 AttachmentDeleteMode key.Binding
32 Escape key.Binding
41 Escape key.Binding
internal/tui/components/core/layout/layout.go−2
@@ -1,8 +1,6 @@
1package layout
1package layout
2
2
3import (
3import (
4− "reflect"
5−
6 "github.com/charmbracelet/bubbles/v2/key"
4 "github.com/charmbracelet/bubbles/v2/key"
7 tea "github.com/charmbracelet/bubbletea/v2"
5 tea "github.com/charmbracelet/bubbletea/v2"
8)
6)
internal/tui/components/core/list/keys.go+16
@@ -50,4 +50,20 @@ func DefaultKeyMap() KeyMap {
50 key.WithKeys("shift+g", "end"),
50 key.WithKeys("shift+g", "end"),
51 ),
51 ),
52 }
52 }
53+}
54+
55+// KeyBindings implements layout.KeyMapProvider
56+func (k KeyMap) KeyBindings() []key.Binding {
57+ return []key.Binding{
58+ k.Down,
59+ k.Up,
60+ k.NDown,
61+ k.NUp,
62+ k.DownOneItem,
63+ k.UpOneItem,
64+ k.HalfPageDown,
65+ k.HalfPageUp,
66+ k.Home,
67+ k.End,
68+ }
53}
69}