mirror of
https://github.com/atom/atom.git
synced 2026-01-24 14:28:14 -05:00
Rename Editor.get/setCursor to get/setPosition
This makes it more consistent with selectoToPosition. Also... you weren't getting the cursor. The cursor is a thing on the screen. At the very least getCursor should return an object you can move around, not just a row/column struct. Position seems like a better name.
This commit is contained in:
@@ -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', ->
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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: ->
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user