diff --git a/spec/atom/editor-spec.coffee b/spec/atom/editor-spec.coffee index 423b73819..2b5f4455e 100644 --- a/spec/atom/editor-spec.coffee +++ b/spec/atom/editor-spec.coffee @@ -23,12 +23,12 @@ describe "Editor", -> it "has a buffer", -> expect(editor.buffer).toBeDefined() - describe '.set/getCursor', -> + describe '.set/getPosition', -> it "gets the cursor location / moves the cursor location", -> editor.buffer.setText("012345") - expect(editor.getCursor()).toEqual {column: 6, row: 0} - editor.setCursor(column: 2, row: 0) - expect(editor.getCursor()).toEqual {column: 2, row: 0} + expect(editor.getPosition()).toEqual {column: 6, row: 0} + editor.setPosition(column: 2, row: 0) + expect(editor.getPosition()).toEqual {column: 2, row: 0} describe 'destroy', -> it 'destroys the ace editor', -> diff --git a/spec/atom/vim-mode-spec.coffee b/spec/atom/vim-mode-spec.coffee index 66aebbaa6..1e007e39a 100644 --- a/spec/atom/vim-mode-spec.coffee +++ b/spec/atom/vim-mode-spec.coffee @@ -38,92 +38,92 @@ describe "VimMode", -> describe "the x keybinding", -> it "deletes a charachter", -> editor.buffer.setText("12345") - editor.setCursor(column: 1, row: 0) + editor.setPosition(column: 1, row: 0) editor.trigger keydownEvent('x') expect(editor.buffer.getText()).toBe '1345' - expect(editor.getCursor()).toEqual(column: 1, row: 0) + expect(editor.getPosition()).toEqual(column: 1, row: 0) describe "the d keybinding", -> describe "when followed by a d", -> it "deletes the current line", -> editor.buffer.setText("12345\nabcde\nABCDE") - editor.setCursor(column: 1, row: 1) + editor.setPosition(column: 1, row: 1) editor.trigger keydownEvent('d') editor.trigger keydownEvent('d') expect(editor.buffer.getText()).toBe "12345\nABCDE" - expect(editor.getCursor()).toEqual(column: 0, row: 1) + expect(editor.getPosition()).toEqual(column: 0, row: 1) describe "when followed by a w", -> it "deletes to the beginning of the next word", -> editor.buffer.setText("abcd efg") - editor.setCursor(column: 2, row: 0) + editor.setPosition(column: 2, row: 0) editor.trigger keydownEvent('d') editor.trigger keydownEvent('w') expect(editor.buffer.getText()).toBe "abefg" - expect(editor.getCursor()).toEqual {column: 2, row: 0} + expect(editor.getPosition()).toEqual {column: 2, row: 0} editor.buffer.setText("one two three four") - editor.setCursor(column: 0, row: 0) + editor.setPosition(column: 0, row: 0) editor.trigger keydownEvent('d') editor.trigger keydownEvent('3') editor.trigger keydownEvent('w') expect(editor.buffer.getText()).toBe "four" - expect(editor.getCursor()).toEqual {column: 0, row: 0} + expect(editor.getPosition()).toEqual {column: 0, row: 0} describe "basic motion bindings", -> beforeEach -> editor.buffer.setText("12345\nabcde\nABCDE") - editor.setCursor(column: 1, row: 1) + editor.setPosition(column: 1, row: 1) describe "the h keybinding", -> it "moves the cursor left, but not to the previous line", -> editor.trigger keydownEvent('h') - expect(editor.getCursor()).toEqual(column: 0, row: 1) + expect(editor.getPosition()).toEqual(column: 0, row: 1) editor.trigger keydownEvent('h') - expect(editor.getCursor()).toEqual(column: 0, row: 1) + expect(editor.getPosition()).toEqual(column: 0, row: 1) describe "the j keybinding", -> it "moves the cursor up, but not to the beginning of the first line", -> editor.trigger keydownEvent('j') - expect(editor.getCursor()).toEqual(column: 1, row: 0) + expect(editor.getPosition()).toEqual(column: 1, row: 0) editor.trigger keydownEvent('j') - expect(editor.getCursor()).toEqual(column: 1, row: 0) + expect(editor.getPosition()).toEqual(column: 1, row: 0) describe "the w keybinding", -> it "moves the cursor to the beginning of the next word", -> editor.buffer.setText("ab cde1+- \n xyz\n\nzip") - editor.setCursor(column: 0, row: 0) + editor.setPosition(column: 0, row: 0) editor.trigger keydownEvent('w') - expect(editor.getCursor()).toEqual(column: 3, row: 0) + expect(editor.getPosition()).toEqual(column: 3, row: 0) editor.trigger keydownEvent('w') - expect(editor.getCursor()).toEqual(column: 7, row: 0) + expect(editor.getPosition()).toEqual(column: 7, row: 0) editor.trigger keydownEvent('w') - expect(editor.getCursor()).toEqual(column: 1, row: 1) + expect(editor.getPosition()).toEqual(column: 1, row: 1) editor.trigger keydownEvent('w') - expect(editor.getCursor()).toEqual(column: 0, row: 2) + expect(editor.getPosition()).toEqual(column: 0, row: 2) editor.trigger keydownEvent('w') - expect(editor.getCursor()).toEqual(column: 0, row: 3) + expect(editor.getPosition()).toEqual(column: 0, row: 3) editor.trigger keydownEvent('w') - expect(editor.getCursor()).toEqual(column: 3, row: 3) + expect(editor.getPosition()).toEqual(column: 3, row: 3) describe "numeric prefix bindings", -> it "repeats the following operation N times", -> editor.buffer.setText("12345") - editor.setCursor(column: 1, row: 0) + editor.setPosition(column: 1, row: 0) editor.trigger keydownEvent('3') editor.trigger keydownEvent('x') @@ -131,7 +131,7 @@ describe "VimMode", -> expect(editor.buffer.getText()).toBe '15' editor.buffer.setText("123456789abc") - editor.setCursor(column: 0, row: 0) + editor.setPosition(column: 0, row: 0) editor.trigger keydownEvent('1') editor.trigger keydownEvent('0') editor.trigger keydownEvent('x') diff --git a/src/atom/editor.coffee b/src/atom/editor.coffee index 033056259..f9c7f352c 100644 --- a/src/atom/editor.coffee +++ b/src/atom/editor.coffee @@ -55,26 +55,26 @@ class Editor extends Template @buffer.url = url @buffer.save() - setCursor: ({column, row}) -> + getPosition: -> + @getAceSession().getSelection().getCursor() + + setPosition: ({column, row}) -> @aceEditor.navigateTo(row, column) selectToPosition: (position) -> if @aceEditor.selection.isEmpty() - { row, column } = @getCursor() + { row, column } = @getPosition() @aceEditor.selection.setSelectionAnchor(row, column) @aceEditor.moveCursorToPosition(position) delete: -> @getAceSession().remove(@aceEditor.getSelectionRange()) - getCursor: -> - @getAceSession().getSelection().getCursor() - getLineText: (row) -> @buffer.getLine(row) getRow: -> - { row } = @getCursor() + { row } = @getPosition() row deleteChar: -> diff --git a/src/atom/vim-mode-operators.coffee b/src/atom/vim-mode-operators.coffee index 6c4e0a424..50e114570 100644 --- a/src/atom/vim-mode-operators.coffee +++ b/src/atom/vim-mode-operators.coffee @@ -50,14 +50,14 @@ module.exports = MoveLeft: class execute: (editor) -> - {column, row} = editor.getCursor() + {column, row} = editor.getPosition() editor.moveLeft() if column > 0 isComplete: -> true MoveUp: class execute: (editor) -> - {column, row} = editor.getCursor() + {column, row} = editor.getPosition() editor.moveUp() if row > 0 isComplete: -> true @@ -66,14 +66,14 @@ module.exports = isComplete: -> true execute: (editor) -> - editor.setCursor(@nextWordPosition(editor)) + editor.setPosition(@nextWordPosition(editor)) select: (editor) -> editor.selectToPosition(@nextWordPosition(editor)) nextWordPosition: (editor) -> regex = getWordRegex() - { row, column } = editor.getCursor() + { row, column } = editor.getPosition() rightOfCursor = editor.getLineText(row).substring(column) match = regex.exec(rightOfCursor)