mirror of
https://github.com/atom/atom.git
synced 2026-01-23 05:48:10 -05:00
Merge branch 'transpose'
This commit is contained in:
@@ -1571,3 +1571,16 @@ describe "EditSession", ->
|
||||
editSession.deleteLine()
|
||||
expect(buffer.getLineCount()).toBe(1)
|
||||
expect(buffer.getText()).toBe('')
|
||||
|
||||
describe ".tranpose()", ->
|
||||
it "swaps two characters", ->
|
||||
editSession.buffer.setText("abc")
|
||||
editSession.setCursorScreenPosition([0, 1])
|
||||
editSession.transpose()
|
||||
expect(editSession.lineForBufferRow(0)).toBe 'bac'
|
||||
|
||||
it "reverses a selection", ->
|
||||
editSession.buffer.setText("xabcz")
|
||||
editSession.setSelectedBufferRange([[0, 1], [0, 4]])
|
||||
editSession.transpose()
|
||||
expect(editSession.lineForBufferRow(0)).toBe 'xcbaz'
|
||||
|
||||
@@ -505,6 +505,17 @@ class EditSession
|
||||
selectLine: ->
|
||||
@expandSelectionsForward (selection) => selection.selectLine()
|
||||
|
||||
transpose: ->
|
||||
@mutateSelectedText (selection) =>
|
||||
if selection.isEmpty()
|
||||
selection.selectRight()
|
||||
text = selection.getText()
|
||||
selection.delete()
|
||||
selection.cursor.moveLeft()
|
||||
selection.insertText text
|
||||
else
|
||||
selection.insertText selection.getText().split('').reverse().join('')
|
||||
|
||||
expandLastSelectionOverLine: ->
|
||||
@getLastSelection().expandOverLine()
|
||||
|
||||
|
||||
@@ -131,6 +131,7 @@ class Editor extends View
|
||||
'editor:select-to-beginning-of-line': @selectToBeginningOfLine
|
||||
'editor:select-to-end-of-word': @selectToEndOfWord
|
||||
'editor:select-to-beginning-of-word': @selectToBeginningOfWord
|
||||
'editor:transpose': @transpose
|
||||
|
||||
unless @mini
|
||||
_.extend editorBindings,
|
||||
@@ -203,6 +204,7 @@ class Editor extends View
|
||||
selectToEndOfWord: -> @activeEditSession.selectToEndOfWord()
|
||||
selectWord: -> @activeEditSession.selectWord()
|
||||
selectToScreenPosition: (position) -> @activeEditSession.selectToScreenPosition(position)
|
||||
transpose: -> @activeEditSession.transpose()
|
||||
clearSelections: -> @activeEditSession.clearSelections()
|
||||
|
||||
backspace: -> @activeEditSession.backspace()
|
||||
|
||||
@@ -15,3 +15,4 @@ window.keymap.bindKeys '.editor'
|
||||
'alt-shift-right': 'editor:select-to-end-of-word'
|
||||
'alt-backspace': 'editor:backspace-to-beginning-of-word'
|
||||
'alt-delete': 'editor:delete-to-end-of-word'
|
||||
'ctrl-t': 'editor:transpose'
|
||||
|
||||
Reference in New Issue
Block a user