Change summary
internal/tui/components/chat/chat.go | 2 +-
internal/tui/components/chat/editor/editor.go | 9 +--------
internal/tui/components/chat/editor/keys.go | 9 +++++++++
internal/tui/components/core/layout/layout.go | 2 --
internal/tui/components/core/list/keys.go | 16 ++++++++++++++++
5 files changed, 27 insertions(+), 11 deletions(-)
Detailed changes
@@ -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
}
@@ -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 {
@@ -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
@@ -1,8 +1,6 @@
package layout
import (
- "reflect"
-
"github.com/charmbracelet/bubbles/v2/key"
tea "github.com/charmbracelet/bubbletea/v2"
)
@@ -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,
+ }
}