From 8f25e33d579f5d510495727b9f290d72733c4b85 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Mon, 13 Jan 2025 18:54:05 +0200 Subject: Implemented ctrl+a to select all in viminput and also a very scuffed pasting from system clipboard in insert mode --- .../client/ui/core/frequencylist/frequencylist.go | 1 - internal/client/ui/viminput/viminput.go | 24 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'internal/client') diff --git a/internal/client/ui/core/frequencylist/frequencylist.go b/internal/client/ui/core/frequencylist/frequencylist.go index b7bbd8c..14807ba 100644 --- a/internal/client/ui/core/frequencylist/frequencylist.go +++ b/internal/client/ui/core/frequencylist/frequencylist.go @@ -1,7 +1,6 @@ package frequencylist import ( - "log" "strings" tea "github.com/charmbracelet/bubbletea" diff --git a/internal/client/ui/viminput/viminput.go b/internal/client/ui/viminput/viminput.go index 86fcda6..7f1a248 100644 --- a/internal/client/ui/viminput/viminput.go +++ b/internal/client/ui/viminput/viminput.go @@ -5,6 +5,7 @@ import ( "strings" "unicode" + "github.com/atotto/clipboard" tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/lipgloss" "github.com/kyren223/eko/internal/client/config" @@ -438,6 +439,13 @@ func (m *Model) handleNormalModeKeys(key tea.KeyMsg) { m.mode = VisualLineMode m.vline = m.cursorLine m.vcol = m.cursorColumn + case "ctrl+a": + m.mode = VisualLineMode + m.vline = 0 + m.vcol = 0 + m.SetCursorLine(len(m.lines) - 1) + line := m.lines[m.cursorLine] + m.SetCursorColumn(len(line) - 1) case "d": fallthrough @@ -609,6 +617,22 @@ func (m *Model) handleInsertModeKeys(key tea.KeyMsg) { return } + if key.Type == tea.KeyCtrlV { + clipboard, err := clipboard.ReadAll() + if err != nil { + return + } + paste := m.Paste() + m.Yank(clipboard) + m.handleNormalModeKeys(tea.KeyMsg{ + Type: tea.KeyRunes, + Runes: []rune{'P'}, + Alt: false, + Paste: false, + }) + m.Yank(paste) + } + if key.Type == tea.KeyTab || key.Type == tea.KeyShiftTab { conf := config.Read() var runes []rune -- cgit v1.3.1