Editor handles delete-to-end-of-word, plus alt-d and alt-delete bindings for it

This commit is contained in:
Nathan Sobo
2012-03-29 15:32:37 -07:00
parent 17db025efb
commit b9cec3cd94
6 changed files with 50 additions and 13 deletions

View File

@@ -58,6 +58,9 @@ class CompositeSeleciton
delete: ->
@modifySelectedText (selection) -> selection.delete()
deleteToEndOfWord: ->
@modifySelectedText (selection) -> selection.deleteToEndOfWord()
selectToScreenPosition: (position) ->
@getLastSelection().selectToScreenPosition(position)

View File

@@ -93,6 +93,7 @@ class Editor extends View
@on 'backspace', => @backspace()
@on 'backspace-to-beginning-of-word', => @backspaceToBeginningOfWord()
@on 'delete', => @delete()
@on 'delete-to-end-of-word', => @deleteToEndOfWord()
@on 'cut', => @cutSelection()
@on 'copy', => @copySelection()
@on 'paste', => @paste()
@@ -407,6 +408,7 @@ class Editor extends View
backspace: -> @compositeSelection.backspace()
backspaceToBeginningOfWord: -> @compositeSelection.backspaceToBeginningOfWord()
delete: -> @compositeSelection.delete()
deleteToEndOfWord: -> @compositeSelection.deleteToEndOfWord()
setText: (text) -> @buffer.setText(text)
getText: -> @buffer.getText()

View File

@@ -12,3 +12,4 @@ window.keymap.bindKeys '.editor'
'alt-shift-left': 'select-to-beginning-of-word'
'alt-shift-right': 'select-to-end-of-word'
'alt-backspace': 'backspace-to-beginning-of-word'
'alt-delete': 'delete-to-end-of-word'

View File

@@ -10,3 +10,4 @@ window.keymap.bindKeys '.editor',
'ctrl-h': 'backspace'
'ctrl-d': 'delete'
'alt-h': 'backspace-to-beginning-of-word'
'alt-d': 'delete-to-end-of-word'

View File

@@ -137,6 +137,10 @@ class Selection extends View
@selectRight() if @isEmpty()
@deleteSelectedText()
deleteToEndOfWord: ->
@selectToEndOfWord() if @isEmpty()
@deleteSelectedText()
deleteSelectedText: ->
range = @getBufferRange()
@editor.buffer.delete(range) unless range.isEmpty()