Shift-triple-click expands the selection over the clicked line

This commit is contained in:
Nathan Sobo
2012-04-06 11:07:19 -06:00
parent 76a846aacc
commit 656c8318f2
4 changed files with 18 additions and 3 deletions

View File

@@ -126,6 +126,9 @@ class Cursor extends View
getCurrentWordBufferRange: ->
new Range(@getBeginningOfCurrentWordBufferPosition(allowPrevious: false), @getEndOfCurrentWordBufferPosition(allowNext: false))
getCurrentLineBufferRange: ->
@editor.rangeForBufferRow(@getBufferPosition().row)
moveToEndOfLine: ->
{ row } = @getBufferPosition()
@setBufferPosition({ row, column: @editor.buffer.lineForRow(row).length })

View File

@@ -145,7 +145,10 @@ class Editor extends View
else
@compositeSelection.getLastSelection().selectWord()
else if clickCount >= 3
@compositeSelection.getLastSelection().selectLine()
if e.shiftKey
@compositeSelection.getLastSelection().expandOverLine()
else
@compositeSelection.getLastSelection().selectLine()
@selectOnMousemoveUntilMouseup()

View File

@@ -166,8 +166,10 @@ class Selection extends View
@setBufferRange(@getBufferRange().union(@cursor.getCurrentWordBufferRange()))
selectLine: (row=@cursor.getBufferPosition().row) ->
rowLength = @editor.buffer.lineForRow(row).length
@setBufferRange new Range([row, 0], [row, rowLength])
@setBufferRange(@editor.rangeForBufferRow(row))
expandOverLine: ->
@setBufferRange(@getBufferRange().union(@cursor.getCurrentLineBufferRange()))
selectToScreenPosition: (position) ->
@modifySelection => @cursor.setScreenPosition(position)