diff --git a/buffer/buffer.go b/buffer/buffer.go index 9b8e23c..e31f364 100644 --- a/buffer/buffer.go +++ b/buffer/buffer.go @@ -719,6 +719,14 @@ func (buffer *Buffer) NewLine() { buffer.cursorX = 0 buffer.Index() + + for { + line := buffer.getCurrentLine() + if !line.wrapped { + break + } + buffer.Index() + } } func (buffer *Buffer) MovePosition(x int16, y int16) { diff --git a/buffer/buffer_test.go b/buffer/buffer_test.go index 7ee3bfb..400cf0c 100644 --- a/buffer/buffer_test.go +++ b/buffer/buffer_test.go @@ -35,7 +35,7 @@ hell xxx good for _, l := range lines { strs = append(strs, l.String()) } - require.Equal(t, strings.TrimSpace(expected), strings.Join(strs, "\n")) + require.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(strings.Join(strs, "\n"))) } func TestOffsets(t *testing.T) { @@ -133,7 +133,7 @@ func TestWritingNewLineAsFirstRuneOnWrappedLine(t *testing.T) { assert.Equal(t, uint16(0), b.cursorX) assert.Equal(t, uint16(2), b.cursorY) - require.Equal(t, 2, len(b.lines)) + require.Equal(t, 3, len(b.lines)) assert.Equal(t, "abc", b.lines[0].String()) assert.Equal(t, "def", b.lines[1].String())