mirror of
https://github.com/atom/atom.git
synced 2026-01-24 14:28:14 -05:00
Support selecting inserted text
This commit is contained in:
@@ -91,6 +91,25 @@ describe "EditorCommand", ->
|
||||
editor.trigger 'devowel'
|
||||
expect(editor.lineForBufferRow(0)).toBe 'vr qcksrt = fnctn () {'
|
||||
expect(editor.getTextInRange(editor.getSelection().getBufferRange())).toBe 'vr qcksrt = fnctn () {'
|
||||
expect(editor.getCursorBufferPosition()).toBe(editor.getSelection().getBufferRange().end)
|
||||
|
||||
it "maintains reversed selections", ->
|
||||
class VowelRemover extends EditorCommand
|
||||
@getKeymaps: (editor) ->
|
||||
'meta-V': 'devowel'
|
||||
|
||||
@execute: (editor, event) ->
|
||||
@replaceSelectedText editor, (text) ->
|
||||
text.replace(/[aeiouy]/gi, '')
|
||||
|
||||
VowelRemover.activate(rootView)
|
||||
editor.moveCursorToTop()
|
||||
editor.moveCursorToEndOfLine()
|
||||
editor.selectToBeginningOfLine()
|
||||
editor.trigger 'devowel'
|
||||
expect(editor.lineForBufferRow(0)).toBe 'vr qcksrt = fnctn () {'
|
||||
expect(editor.getTextInRange(editor.getSelection().getBufferRange())).toBe 'vr qcksrt = fnctn () {'
|
||||
expect(editor.getCursorBufferPosition()).toBe(editor.getSelection().getBufferRange().start)
|
||||
|
||||
it "doesn't transform empty selections", ->
|
||||
callbackCount = 0
|
||||
|
||||
@@ -213,7 +213,7 @@ class Editor extends View
|
||||
deleteToEndOfWord: -> @activeEditSession.deleteToEndOfWord()
|
||||
deleteLine: -> @activeEditSession.deleteLine()
|
||||
cutToEndOfLine: -> @activeEditSession.cutToEndOfLine()
|
||||
insertText: (text) -> @activeEditSession.insertText(text)
|
||||
insertText: (text, options) -> @activeEditSession.insertText(text, options)
|
||||
insertNewline: -> @activeEditSession.insertNewline()
|
||||
insertNewlineBelow: -> @activeEditSession.insertNewlineBelow()
|
||||
indent: -> @activeEditSession.indent()
|
||||
|
||||
@@ -139,7 +139,10 @@ class Selection
|
||||
wasReversed = @isReversed()
|
||||
@clear()
|
||||
newBufferRange = @editSession.buffer.change(oldBufferRange, text)
|
||||
@cursor.setBufferPosition(newBufferRange.end, skipAtomicTokens: true) if wasReversed
|
||||
if options.select
|
||||
@setBufferRange(newBufferRange, reverse: wasReversed)
|
||||
else
|
||||
@cursor.setBufferPosition(newBufferRange.end, skipAtomicTokens: true) if wasReversed
|
||||
|
||||
autoIndent = options.autoIndent ? true
|
||||
|
||||
|
||||
@@ -26,10 +26,8 @@ class EditorCommand
|
||||
selection = editor.getSelection()
|
||||
return false if selection.isEmpty()
|
||||
|
||||
range = selection.getBufferRange()
|
||||
reverse = selection.isReversed()
|
||||
text = replace(editor.getTextInRange(range))
|
||||
text = replace(editor.getTextInRange(selection.getBufferRange()))
|
||||
return false if text is null or text is undefined
|
||||
editor.insertText(text)
|
||||
selection.setBufferRange(range, {reverse})
|
||||
|
||||
editor.insertText(text, select: true)
|
||||
true
|
||||
|
||||
Reference in New Issue
Block a user