aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-mode/lib/operators/indent-operators.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'atom/packages/vim-mode/lib/operators/indent-operators.coffee')
-rw-r--r--atom/packages/vim-mode/lib/operators/indent-operators.coffee28
1 files changed, 28 insertions, 0 deletions
diff --git a/atom/packages/vim-mode/lib/operators/indent-operators.coffee b/atom/packages/vim-mode/lib/operators/indent-operators.coffee
new file mode 100644
index 0000000..0ad37e0
--- /dev/null
+++ b/atom/packages/vim-mode/lib/operators/indent-operators.coffee
@@ -0,0 +1,28 @@
+{Operator} = require './general-operators'
+
+class AdjustIndentation extends Operator
+ execute: (count=1) ->
+ mode = @vimState.mode
+ @motion.select(count)
+ {start} = @editor.getSelectedBufferRange()
+
+ @indent()
+
+ if mode isnt 'visual'
+ @editor.setCursorBufferPosition([start.row, 0])
+ @editor.moveToFirstCharacterOfLine()
+ @vimState.activateCommandMode()
+
+class Indent extends AdjustIndentation
+ indent: ->
+ @editor.indentSelectedRows()
+
+class Outdent extends AdjustIndentation
+ indent: ->
+ @editor.outdentSelectedRows()
+
+class Autoindent extends AdjustIndentation
+ indent: ->
+ @editor.autoIndentSelectedRows()
+
+module.exports = {Indent, Outdent, Autoindent}