From 532cc83681fb2db4de6927ffc158992dec013e1c Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Sat, 14 Jan 2012 00:46:45 -0800 Subject: [PATCH] Refactor dd to push a SelectLine operation on top of Delete Delete expects to compose with a motion, which selects the text to be deleted. SelectLine slots in cleanly to make dd delete the current line. --- src/atom/editor.coffee | 3 +++ src/atom/vim-mode-operators.coffee | 5 +++++ src/atom/vim-mode.coffee | 5 ++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/atom/editor.coffee b/src/atom/editor.coffee index f9c7f352c..378de8835 100644 --- a/src/atom/editor.coffee +++ b/src/atom/editor.coffee @@ -80,6 +80,9 @@ class Editor extends Template deleteChar: -> @aceEditor.remove 'right' + selectLine: -> + @aceEditor.selection.selectLine() + deleteLine: -> @aceEditor.removeLines() diff --git a/src/atom/vim-mode-operators.coffee b/src/atom/vim-mode-operators.coffee index 50e114570..8f3c40be9 100644 --- a/src/atom/vim-mode-operators.coffee +++ b/src/atom/vim-mode-operators.coffee @@ -87,4 +87,9 @@ module.exports = column = nextLineMatch?.index or 0 { row, column } + SelectLine: class + isComplete: -> true + + select: (editor) -> + editor.selectLine() diff --git a/src/atom/vim-mode.coffee b/src/atom/vim-mode.coffee index 8d10267f7..d6bb895f9 100644 --- a/src/atom/vim-mode.coffee +++ b/src/atom/vim-mode.coffee @@ -71,10 +71,9 @@ class VimMode delete: () -> if @topOperator() instanceof op.Delete - @topOperator().complete = true - @processOpStack() + @pushOperator(new op.SelectLine) else - @pushOperator new op.Delete() + @pushOperator(new op.Delete) pushOperator: (op) -> @opStack.push(op)