diff options
| author | Ben Beltran <ben@nsovocal.com> | 2015-07-10 11:12:25 -0500 |
|---|---|---|
| committer | Ben Beltran <ben@nsovocal.com> | 2015-07-10 11:12:25 -0500 |
| commit | 24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (patch) | |
| tree | ded312222bb108923da1820ba40b04d710d20e5b /atom/packages/vim-surround/lib/command/delete.coffee | |
| parent | eb786e82d170e2abc351a432ade616d6ecdeeb6b (diff) | |
Adds atom
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) |