Add word and line selection methods to EditSession

This commit is contained in:
Nathan Sobo
2012-06-12 11:47:37 -06:00
parent 5e4625ebf7
commit 869df0bbc6
2 changed files with 18 additions and 6 deletions

View File

@@ -351,12 +351,24 @@ class EditSession
selectToEndOfLine: ->
@expandSelectionsForward (selection) => selection.selectToEndOfLine()
selectLine: ->
@expandSelectionsForward (selection) => selection.selectLine()
expandLastSelectionOverLine: ->
@getLastSelection().expandOverLine()
selectToBeginningOfWord: ->
@expandSelectionsBackward (selection) => selection.selectToBeginningOfWord()
selectToEndOfWord: ->
@expandSelectionsForward (selection) => selection.selectToEndOfWord()
selectWord: ->
@expandSelectionsForward (selection) => selection.selectWord()
expandLastSelectionOverWord: ->
@getLastSelection().expandOverWord()
mergeCursors: ->
positions = []
for cursor in new Array(@getCursors()...)

View File

@@ -174,24 +174,24 @@ class Editor extends View
@renderedLines.on 'mousedown', (e) =>
clickCount = e.originalEvent.detail
screenPosition = @screenPositionFromMouseEvent(e)
if clickCount == 1
screenPosition = @screenPositionFromMouseEvent(e)
if e.metaKey
@addCursorAtScreenPosition(screenPosition)
else if e.shiftKey
@selectToScreenPosition(@screenPositionFromMouseEvent(e))
@selectToScreenPosition(screenPosition)
else
@setCursorScreenPosition(screenPosition)
else if clickCount == 2
if e.shiftKey
@activeEditSession.getLastSelection().expandOverWord()
@activeEditSession.expandLastSelectionOverWord()
else
@activeEditSession.getLastSelection().selectWord()
@activeEditSession.selectWord()
else if clickCount >= 3
if e.shiftKey
@activeEditSession.getLastSelection().expandOverLine()
@activeEditSession.expandLastSelectionOverLine()
else
@activeEditSession.getLastSelection().selectLine()
@activeEditSession.selectLine()
@selectOnMousemoveUntilMouseup()