aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-mode/lib/operators/indent-operators.coffee
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2015-09-28 12:39:59 -0500
committerBen Beltran <ben@nsovocal.com>2015-09-28 12:39:59 -0500
commit455f099b504ec07dd492ab31987ae05a6f6774c7 (patch)
tree22b0c7fd8e492733b97e661750a2d79c46da451d /atom/packages/vim-mode/lib/operators/indent-operators.coffee
parent24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (diff)
Adds atom packages
Diffstat (limited to 'atom/packages/vim-mode/lib/operators/indent-operators.coffee')
-rw-r--r--atom/packages/vim-mode/lib/operators/indent-operators.coffee21
1 files changed, 14 insertions, 7 deletions
diff --git a/atom/packages/vim-mode/lib/operators/indent-operators.coffee b/atom/packages/vim-mode/lib/operators/indent-operators.coffee
index 0ad37e0..ba3c155 100644
--- a/atom/packages/vim-mode/lib/operators/indent-operators.coffee
+++ b/atom/packages/vim-mode/lib/operators/indent-operators.coffee
@@ -1,17 +1,24 @@
+_ = require 'underscore-plus'
{Operator} = require './general-operators'
class AdjustIndentation extends Operator
- execute: (count=1) ->
+ execute: (count) ->
mode = @vimState.mode
@motion.select(count)
- {start} = @editor.getSelectedBufferRange()
+ originalRanges = @editor.getSelectedBufferRanges()
- @indent()
+ if mode is 'visual'
+ @editor.transact =>
+ _.times(count ? 1, => @indent())
+ else
+ @indent()
- if mode isnt 'visual'
- @editor.setCursorBufferPosition([start.row, 0])
- @editor.moveToFirstCharacterOfLine()
- @vimState.activateCommandMode()
+ @editor.clearSelections()
+ @editor.getLastCursor().setBufferPosition([originalRanges.shift().start.row, 0])
+ for range in originalRanges
+ @editor.addCursorAtBufferPosition([range.start.row, 0])
+ @editor.moveToFirstCharacterOfLine()
+ @vimState.activateNormalMode()
class Indent extends AdjustIndentation
indent: ->