From e62f4bf41c8deb21a988697558889e52e5ad4d94 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Wed, 6 May 2026 10:27:47 +0300 Subject: [PATCH] Fix paste --- src/buffer.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/buffer.go b/src/buffer.go index ce52af0..9012536 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -361,21 +361,13 @@ func (buffer *Buffer) CopyText() (runestring.RuneString, int) { } func (buffer *Buffer) PasteText(window *Window, text runestring.RuneString) { - contents := buffer.GetContentsAsString() - // Remove selected text if buffer.Selection != nil { - edge1, edge2 := buffer.GetSelectionEdges() - absEdge1 := buffer.PositionToAbsolutePosition(edge1) - absEdge2 := buffer.PositionToAbsolutePosition(edge2) + _, edge2 := buffer.GetSelectionEdges() - if absEdge2 == len(buffer.Contents) { - absEdge2 = len(buffer.Contents) - 1 - } + buffer.CursorPos = edge2 + buffer.Delete(len(buffer.GetSelectedText())) - contents = slices.Delete(contents, absEdge1, absEdge2+1) - buffer.Contents = runestring.Split(contents, '\n') - buffer.CursorPos = buffer.AbsolutePositionToPosition(absEdge1) buffer.Selection = nil }