Ignore an empty last line when indenting/outdenting selected lines

This provides more intuitive behavior now that the cursor isn't visible when there's a selection.
This commit is contained in:
Nathan Sobo
2012-10-29 16:16:19 -06:00
parent db3d788664
commit aa20fbac6d
2 changed files with 24 additions and 4 deletions

View File

@@ -173,8 +173,8 @@ class Selection
@indentSelectedRows()
indentSelectedRows: ->
range = @getBufferRange()
for row in [range.start.row..range.end.row]
[start, end] = @getBufferRowRange()
for row in [start..end]
@editSession.buffer.insert([row, 0], @editSession.getTabText()) unless @editSession.buffer.lineLengthForRow(row) == 0
normalizeIndent: (text, options) ->
@@ -270,10 +270,10 @@ class Selection
@editSession.buffer.deleteRows(start, end)
outdentSelectedRows: ->
range = @getBufferRange()
[start, end] = @getBufferRowRange()
buffer = @editSession.buffer
leadingTabRegex = new RegExp("^ {1,#{@editSession.getTabLength()}}|\t")
for row in [range.start.row..range.end.row]
for row in [start..end]
if matchLength = buffer.lineForRow(row).match(leadingTabRegex)?[0].length
buffer.delete [[row, 0], [row, matchLength]]