diff options
Diffstat (limited to 'atom/packages/vim-surround/lib/command/delete.coffee')
| -rw-r--r-- | atom/packages/vim-surround/lib/command/delete.coffee | 33 |
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) |