mirror of
https://github.com/atom/atom.git
synced 2026-01-24 06:18:03 -05:00
Regex addresses always search from the last selection in the buffer
This commit is contained in:
@@ -56,14 +56,24 @@ describe "CommandInterpreter", ->
|
||||
expect(editor.getSelection().getBufferRange()).toEqual [[0,0], [2,2]]
|
||||
|
||||
describe "/regex/", ->
|
||||
beforeEach ->
|
||||
editor.clearSelections()
|
||||
|
||||
it 'selects text matching regex after current selection', ->
|
||||
editor.getSelection().setBufferRange([[4,16], [4,20]])
|
||||
editor.setSelectionBufferRange([[4,16], [4,20]])
|
||||
interpreter.eval(editor, '/pivot/')
|
||||
expect(editor.getSelections().length).toBe 1
|
||||
expect(editor.getSelection().getBufferRange()).toEqual [[6,16], [6,21]]
|
||||
|
||||
it 'does not require the trailing slash', ->
|
||||
editor.getSelection().setBufferRange([[4,16], [4,20]])
|
||||
editor.setSelectionBufferRange([[4,16], [4,20]])
|
||||
interpreter.eval(editor, '/pivot')
|
||||
expect(editor.getSelection().getBufferRange()).toEqual [[6,16], [6,21]]
|
||||
|
||||
it "searches from the end of the selection furthest forward in the buffer", ->
|
||||
editor.clearSelections()
|
||||
editor.setSelectionBufferRange([[4,16], [4,20]])
|
||||
editor.addSelectionForBufferRange([[1,16], [2,20]])
|
||||
expect(editor.getSelections().length).toBe 2
|
||||
interpreter.eval(editor, '/pivot')
|
||||
expect(editor.getSelections().length).toBe 1
|
||||
expect(editor.getSelection().getBufferRange()).toEqual [[6,16], [6,21]]
|
||||
|
||||
@@ -9,7 +9,7 @@ class RegexAddress extends Address
|
||||
@regex = new RegExp(pattern)
|
||||
|
||||
getRange: (editor) ->
|
||||
selectedRange = editor.getSelection().getBufferRange()
|
||||
selectedRange = editor.getLastSelectionInBuffer().getBufferRange()
|
||||
rangeToSearch = new Range(selectedRange.end, editor.getEofPosition())
|
||||
|
||||
rangeToReturn = selectedRange
|
||||
|
||||
@@ -12,6 +12,12 @@ class CompositeSeleciton
|
||||
|
||||
getSelections: -> new Array(@selections...)
|
||||
|
||||
getLastSelectionInBuffer: ->
|
||||
_.last(@getSelections().sort (a, b) ->
|
||||
aRange = a.getBufferRange()
|
||||
bRange = b.getBufferRange()
|
||||
aRange.end.compare(bRange.end))
|
||||
|
||||
clearSelections: ->
|
||||
for selection in @getSelections()[1..]
|
||||
selection.cursor.remove()
|
||||
|
||||
@@ -357,6 +357,7 @@ class Editor extends View
|
||||
|
||||
getSelection: (index) -> @compositeSelection.getSelection(index)
|
||||
getSelections: -> @compositeSelection.getSelections()
|
||||
getLastSelectionInBuffer: -> @compositeSelection.getLastSelectionInBuffer()
|
||||
getSelectedText: -> @compositeSelection.getSelection().getText()
|
||||
setSelectionBufferRange: (bufferRange, options) -> @compositeSelection.setBufferRange(bufferRange, options)
|
||||
addSelectionForBufferRange: (bufferRange, options) -> @compositeSelection.addSelectionForBufferRange(bufferRange, options)
|
||||
|
||||
Reference in New Issue
Block a user