mirror of
https://github.com/atom/atom.git
synced 2026-01-24 06:18:03 -05:00
Skip empty lines when adding selections below empty selections
Unless the selection's column is 0
This commit is contained in:
@@ -769,6 +769,22 @@ describe "EditSession", ->
|
||||
[[6, 36], [6, 36]]
|
||||
]
|
||||
|
||||
it "skips empty lines when the column is non-zero", ->
|
||||
editSession.setCursorBufferPosition([9, 4])
|
||||
editSession.addSelectionBelow()
|
||||
expect(editSession.getSelectedBufferRanges()).toEqual [
|
||||
[[9, 4], [9, 4]]
|
||||
[[11, 4], [11, 4]]
|
||||
]
|
||||
|
||||
it "does not skip empty lines when the column is zero", ->
|
||||
editSession.setCursorBufferPosition([9, 0])
|
||||
editSession.addSelectionBelow()
|
||||
expect(editSession.getSelectedBufferRanges()).toEqual [
|
||||
[[9, 0], [9, 0]]
|
||||
[[10, 0], [10, 0]]
|
||||
]
|
||||
|
||||
describe "when the cursor is moved while there is a selection", ->
|
||||
makeSelection = -> selection.setBufferRange [[1, 2], [1, 5]]
|
||||
|
||||
|
||||
@@ -156,17 +156,18 @@ class Selection
|
||||
range = (@goalBufferRange ? @getBufferRange()).copy()
|
||||
nextRow = range.end.row + 1
|
||||
|
||||
if range.isEmpty()
|
||||
range.start.row = nextRow
|
||||
range.end.row = nextRow
|
||||
for row in [nextRow..@editSession.getLastBufferRow()]
|
||||
range.start.row = row
|
||||
range.end.row = row
|
||||
clippedRange = @editSession.clipBufferRange(range)
|
||||
|
||||
if range.isEmpty()
|
||||
continue if range.end.column > 0 and clippedRange.end.column is 0
|
||||
else
|
||||
continue if clippedRange.isEmpty()
|
||||
|
||||
@editSession.addSelectionForBufferRange(range, goalBufferRange: range, suppressMerge: true)
|
||||
else
|
||||
for row in [nextRow..@editSession.getLastBufferRow()]
|
||||
range.start.row = row
|
||||
range.end.row = row
|
||||
unless @editSession.clipBufferRange(range).isEmpty()
|
||||
@editSession.addSelectionForBufferRange(range, goalBufferRange: range, suppressMerge: true)
|
||||
break
|
||||
break
|
||||
|
||||
insertText: (text, options={}) ->
|
||||
oldBufferRange = @getBufferRange()
|
||||
|
||||
Reference in New Issue
Block a user