From 2a6f5c2c3da36413b519403c953ff2d2f2f7b4eb Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sun, 8 Dec 2024 22:51:53 +0200 Subject: [PATCH] Added C and fixed pasting in viminput --- internal/client/ui/viminput/viminput.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/client/ui/viminput/viminput.go b/internal/client/ui/viminput/viminput.go index bc281c3..1b23c84 100644 --- a/internal/client/ui/viminput/viminput.go +++ b/internal/client/ui/viminput/viminput.go @@ -232,6 +232,9 @@ func (m *Model) handleNormalModeKeys(key tea.KeyMsg) { m.SetCursorColumn(m.cursorColumn - 1) } } + case "C": + m.mode = InsertMode + fallthrough case "D": line := m.lines[m.cursorLine] if len(line) != 0 { @@ -258,7 +261,14 @@ func (m *Model) handleNormalModeKeys(key tea.KeyMsg) { line := m.lines[m.cursorLine] if len(lines) == 1 { pastedLine := []rune(lines[0]) - m.lines[m.cursorLine] = slices.Insert(line, m.cursorColumn+1, pastedLine...) + if m.cursorColumn+1 >= len(line) { + m.lines[m.cursorLine] = append(line, pastedLine...) + } else { + m.lines[m.cursorLine] = slices.Insert(line, m.cursorColumn+1, pastedLine...) + } + if len(line) == 0 { + m.SetCursorColumn(m.cursorColumn - 1) + } m.SetCursorColumn(m.cursorColumn + len(pastedLine)) } case "P":