mirror of
https://github.com/atom/atom.git
synced 2026-02-11 07:05:11 -05:00
Implement setSelectedBufferRange w/ setSelectedBufferRanges
Also add the preserveFolds option, which doesn't destroy folds containing the selected ranges – mainly for specs right now
This commit is contained in:
@@ -306,17 +306,17 @@ class EditSession
|
||||
@addCursor().selection.setBufferRange(bufferRange, options)
|
||||
|
||||
setSelectedBufferRange: (bufferRange, options) ->
|
||||
@clearSelections()
|
||||
@getLastSelection().setBufferRange(bufferRange, options)
|
||||
@setSelectedBufferRanges([bufferRange], options)
|
||||
|
||||
setSelectedBufferRanges: (bufferRanges, options) ->
|
||||
setSelectedBufferRanges: (bufferRanges, options={}) ->
|
||||
throw new Error("Passed an empty array to setSelectedBufferRanges") unless bufferRanges.length
|
||||
selection.destroy() for selection in @getSelections()
|
||||
for bufferRange, i in bufferRanges
|
||||
bufferRange = Range.fromObject(bufferRange)
|
||||
for row in [bufferRange.start.row..bufferRange.end.row]
|
||||
@destroyFoldsContainingBufferRow(row)
|
||||
@addSelectionForBufferRange(bufferRange, options)
|
||||
unless options.preserveFolds
|
||||
for row in [bufferRange.start.row..bufferRange.end.row]
|
||||
@destroyFoldsContainingBufferRow(row)
|
||||
@addSelectionForBufferRange(bufferRange, options)
|
||||
@mergeIntersectingSelections(options)
|
||||
|
||||
removeSelection: (selection) ->
|
||||
|
||||
@@ -21,6 +21,7 @@ class Selection
|
||||
if @cursor
|
||||
@cursor.off('.selection')
|
||||
@cursor.destroy()
|
||||
@anchor?.destroy()
|
||||
@editSession.removeSelection(this)
|
||||
@trigger 'destroy'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user