From 2cffee5f4057e49323ca4ec5af6019832822c21e Mon Sep 17 00:00:00 2001 From: Maas Lalani Date: Wed, 10 Aug 2022 17:33:18 -0400 Subject: [PATCH] fix(textarea): deleteRange multiple lines --- textarea/modal.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/textarea/modal.go b/textarea/modal.go index 7f60cc9..ef6544d 100644 --- a/textarea/modal.go +++ b/textarea/modal.go @@ -553,6 +553,19 @@ func (m *Model) deleteRange(r Range) { minRow, maxRow := min(r.Start.Row, r.End.Row), max(r.Start.Row, r.End.Row) + if maxRow-minRow == 1 { + if r.Start.Row < r.End.Row { + m.value[r.Start.Row] = append([]rune{}, m.value[r.Start.Row][:r.Start.Col]...) + m.value[r.End.Row] = append([]rune{}, m.value[r.End.Row][r.End.Col:]...) + m.mergeLineBelow(minRow) + } else { + m.value[r.Start.Row] = append([]rune{}, m.value[r.Start.Row][r.Start.Col:]...) + m.value[r.End.Row] = append([]rune{}, m.value[r.End.Row][:r.End.Col]...) + m.mergeLineAbove(maxRow) + } + return + } + for i := max(minRow, 0); i <= min(maxRow, len(m.value)-1); i++ { m.value[i] = []rune{} }