meta-[ outdents selected lines

This commit is contained in:
Corey Johnson
2012-04-10 10:18:39 -07:00
parent ec221bfee0
commit afceacefc8
5 changed files with 49 additions and 5 deletions

View File

@@ -91,6 +91,9 @@ class CompositeSeleciton
insertText: (text) ->
@mutateSelectedText (selection) -> selection.insertText(text)
outdentSelectedRows: ->
@mutateSelectedText (selection) -> selection.outdentSelectedRows()
indentSelectedRows: ->
@mutateSelectedText (selection) -> selection.indentSelectedRows()

View File

@@ -67,6 +67,7 @@ class Editor extends View
@on 'newline', => @insertText("\n")
@on 'tab', => @insertTab()
@on 'indent-selected-rows', => @indentSelectedRows()
@on 'outdent-selected-rows', => @outdentSelectedRows()
@on 'backspace', => @backspace()
@on 'backspace-to-beginning-of-word', => @backspaceToBeginningOfWord()
@on 'delete', => @delete()
@@ -425,8 +426,8 @@ class Editor extends View
else
@compositeSelection.insertText('\t')
indentSelectedRows: ->
@compositeSelection.indentSelectedRows()
indentSelectedRows: -> @compositeSelection.indentSelectedRows()
outdentSelectedRows: -> @compositeSelection.outdentSelectedRows()
cutSelection: -> @compositeSelection.cut()
copySelection: -> @compositeSelection.copy()

View File

@@ -29,4 +29,5 @@ window.keymap.bindKeys '.editor',
'alt-meta-right': 'split-right'
'alt-meta-up': 'split-up'
'alt-meta-down': 'split-down'
'meta-[': 'outdent-selected-rows'
'meta-]': 'indent-selected-rows'

View File

@@ -110,6 +110,14 @@ class Selection extends View
for row in [range.start.row..range.end.row]
@editor.buffer.insert([row, 0], @editor.tabText) unless @editor.buffer.lineLengthForRow(row) == 0
outdentSelectedRows: ->
range = @getBufferRange()
buffer = @editor.buffer
leadingTabRegex = new RegExp("^#{@editor.tabText}")
for row in [range.start.row..range.end.row]
if leadingTabRegex.test buffer.lineForRow(row)
buffer.delete [[row, 0], [row, @editor.tabText.length]]
autoIndentText: (text) ->
if @editor.autoIndent
mode = @editor.getCurrentMode()