diff --git a/internal/tui/components/chat/chat.go b/internal/tui/components/chat/chat.go index d0c83857e5ea95ee582371d14c9ea1724669c60d..332d0ff5070290377342e75b0af6c2f4a59d70e5 100644 --- a/internal/tui/components/chat/chat.go +++ b/internal/tui/components/chat/chat.go @@ -500,6 +500,6 @@ func (m *messageListCmp) IsFocused() bool { } func (m *messageListCmp) Bindings() []key.Binding { - bindings := layout.KeyMapToSlice(m.defaultListKeyMap) + bindings := m.defaultListKeyMap.KeyBindings() return bindings } diff --git a/internal/tui/components/chat/editor/editor.go b/internal/tui/components/chat/editor/editor.go index 2f7e02b676512a226f8da5f25329a937c13c64dc..97493a00508e765baedb35c7df2239fb24b3075a 100644 --- a/internal/tui/components/chat/editor/editor.go +++ b/internal/tui/components/chat/editor/editor.go @@ -18,7 +18,6 @@ import ( "github.com/charmbracelet/crush/internal/session" "github.com/charmbracelet/crush/internal/tui/components/chat" "github.com/charmbracelet/crush/internal/tui/components/completions" - "github.com/charmbracelet/crush/internal/tui/components/core/layout" "github.com/charmbracelet/crush/internal/tui/components/dialogs" "github.com/charmbracelet/crush/internal/tui/components/dialogs/filepicker" "github.com/charmbracelet/crush/internal/tui/components/dialogs/quit" @@ -49,12 +48,6 @@ type editorCmp struct { isCompletionsOpen bool } -type DeleteAttachmentKeyMaps struct { - AttachmentDeleteMode key.Binding - Escape key.Binding - DeleteAllAttachments key.Binding -} - var DeleteKeyMaps = DeleteAttachmentKeyMaps{ AttachmentDeleteMode: key.NewBinding( key.WithKeys("ctrl+r"), @@ -372,7 +365,7 @@ func (c *editorCmp) IsFocused() bool { } func (c *editorCmp) Bindings() []key.Binding { - return layout.KeyMapToSlice(c.keyMap) + return c.keyMap.KeyBindings() } func NewEditorCmp(app *app.App) util.Model { diff --git a/internal/tui/components/chat/editor/keys.go b/internal/tui/components/chat/editor/keys.go index 07a8597db73c997b32b20ee1094a7b8ed12987d4..f7521e1ccaa74a4679a89f2c06c61ab30d204016 100644 --- a/internal/tui/components/chat/editor/keys.go +++ b/internal/tui/components/chat/editor/keys.go @@ -27,6 +27,15 @@ func DefaultEditorKeyMap() EditorKeyMap { } } +// KeyBindings implements layout.KeyMapProvider +func (k EditorKeyMap) KeyBindings() []key.Binding { + return []key.Binding{ + k.AddFile, + k.SendMessage, + k.OpenEditor, + } +} + type DeleteAttachmentKeyMaps struct { AttachmentDeleteMode key.Binding Escape key.Binding diff --git a/internal/tui/components/core/layout/layout.go b/internal/tui/components/core/layout/layout.go index ba691e5df6ad84c5b0bc0f32cbad7d5611268b25..30bc97391aefc2437093b94786504b2b98606e6e 100644 --- a/internal/tui/components/core/layout/layout.go +++ b/internal/tui/components/core/layout/layout.go @@ -1,8 +1,6 @@ package layout import ( - "reflect" - "github.com/charmbracelet/bubbles/v2/key" tea "github.com/charmbracelet/bubbletea/v2" ) diff --git a/internal/tui/components/core/list/keys.go b/internal/tui/components/core/list/keys.go index da7c1661a40cb1f6284b0da1fd32c53a0c004d25..4b4e8f9691f87c02db6226ae87c5931db27509b4 100644 --- a/internal/tui/components/core/list/keys.go +++ b/internal/tui/components/core/list/keys.go @@ -50,4 +50,20 @@ func DefaultKeyMap() KeyMap { key.WithKeys("shift+g", "end"), ), } +} + +// KeyBindings implements layout.KeyMapProvider +func (k KeyMap) KeyBindings() []key.Binding { + return []key.Binding{ + k.Down, + k.Up, + k.NDown, + k.NUp, + k.DownOneItem, + k.UpOneItem, + k.HalfPageDown, + k.HalfPageUp, + k.Home, + k.End, + } } \ No newline at end of file