diff --git a/spec/text-editor-spec.js b/spec/text-editor-spec.js index a84a1f233f9..eba2c34f747 100644 --- a/spec/text-editor-spec.js +++ b/spec/text-editor-spec.js @@ -861,6 +861,15 @@ describe('TextEditor', () => { }) }) }) + + it("clears the goal column", () => { + editor.setText('first\n\nthird') + editor.setCursorScreenPosition([0, 3]) + editor.moveDown() + editor.moveToFirstCharacterOfLine() + editor.moveDown() + expect(editor.getCursorBufferPosition()).toEqual([2, 0]) + }) }) describe('.moveToBeginningOfWord()', () => { diff --git a/src/cursor.js b/src/cursor.js index f62672f2767..f75f947091f 100644 --- a/src/cursor.js +++ b/src/cursor.js @@ -326,7 +326,9 @@ class Cursor extends Model { // Public: Moves the cursor to the bottom of the buffer. moveToBottom () { + const column = this.goalColumn this.setBufferPosition(this.editor.getEofBufferPosition()) + this.goalColumn = column } // Public: Moves the cursor to the beginning of the line. @@ -711,6 +713,7 @@ class Cursor extends Model { changePosition (options, fn) { this.clearSelection({autoscroll: false}) fn() + this.goalColumn = null const autoscroll = (options && options.autoscroll != null) ? options.autoscroll : this.isLastCursor()