From c2f1796bc2b3f507412694a2d81bc43085120487 Mon Sep 17 00:00:00 2001 From: Felix Angell Date: Tue, 17 Apr 2018 14:34:24 +0100 Subject: [PATCH] delete line behaviour is fixed --- gui/delete_line.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/gui/delete_line.go b/gui/delete_line.go index 1b5e58f..8e894a1 100644 --- a/gui/delete_line.go +++ b/gui/delete_line.go @@ -3,22 +3,23 @@ package gui import rope "github.com/felixangell/go-rope" func DeleteLine(b *Buffer) bool { - if b.curs.y == 0 { + var prevLineLen = 0 + if len(b.contents) > 1 { + prevLineLen = b.contents[b.curs.y].Len() + b.contents = remove(b.contents, b.curs.y) + } else { + // we are on the first line + // and there is nothing else to delete + // so we just clear the line b.contents[b.curs.y] = new(rope.Rope) b.moveToEndOfLine() - return false + return true } if b.curs.y >= len(b.contents) { - return false - } - - prevLineLen := b.contents[b.curs.y].Len() - b.contents = remove(b.contents, b.curs.y) - - if b.curs.y >= len(b.contents) { - b.moveUp() - b.moveToEndOfLine() + if b.curs.y > 0 { + b.moveUp() + } return false }