aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-surround/lib/command/delete.coffee
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
committerBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
commit24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (patch)
treeded312222bb108923da1820ba40b04d710d20e5b /atom/packages/vim-surround/lib/command/delete.coffee
parenteb786e82d170e2abc351a432ade616d6ecdeeb6b (diff)
Adds atom
Diffstat (limited to 'atom/packages/vim-surround/lib/command/delete.coffee')
-rw-r--r--atom/packages/vim-surround/lib/command/delete.coffee33
1 files changed, 33 insertions, 0 deletions
diff --git a/atom/packages/vim-surround/lib/command/delete.coffee b/atom/packages/vim-surround/lib/command/delete.coffee
new file mode 100644
index 0000000..aa5eec0
--- /dev/null
+++ b/atom/packages/vim-surround/lib/command/delete.coffee
@@ -0,0 +1,33 @@
+{CompositeDisposable} = require 'atom'
+
+Base = require './base'
+Selector = require './selector'
+
+module.exports = class Delete extends Base
+ constructor: (config) ->
+ @command = config.deleteSurroundCommand
+ @context = "atom-text-editor.vim-mode.command-mode"
+ super config
+
+ getName: (key) -> "delete-#{key}"
+
+ getRunner: (left, right) -> ->
+ editor = atom.workspace.getActiveTextEditor()
+ selector = new Selector(editor, left, right)
+
+ editor.transact ->
+ cursorPos = editor.getCursorBufferPosition()
+
+ selector.inside().select()
+ editor.selections.forEach (selection) ->
+ text = selection.getText()
+
+ # restore cursore and select text with surrounding keys
+ editor.setCursorBufferPosition(cursorPos)
+ selector.outside().select()
+
+ editor.selections.forEach (selection) ->
+ selection.insertText text
+
+ # restore cursore
+ editor.setCursorBufferPosition(cursorPos)