summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-12-08 22:51:53 +0200
committerKyren223 <Kyren223@proton.me>2024-12-08 22:51:53 +0200
commit2a6f5c2c3da36413b519403c953ff2d2f2f7b4eb (patch)
tree89bb7b6bf7df044be35cc29aaff9d6e793014fad
parentbca8e44586d87ee028b70d057d13d01a0fdf8562 (diff)
Added C and fixed pasting in viminput
-rw-r--r--internal/client/ui/viminput/viminput.go12
1 files changed, 11 insertions, 1 deletions
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":