diff options
-rw-r--r-- | evil-paredit.el | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/evil-paredit.el b/evil-paredit.el index 4115c2d..d78d9a0 100644 --- a/evil-paredit.el +++ b/evil-paredit.el @@ -59,7 +59,13 @@ :motion evil-line :move-point nil (interactive "<R><x>") - (evil-paredit-yank beg end type register)) + (let ((paren-count (count-matches "(" (line-beginning-position) + (line-end-position))) + (last-balanced-paren (evil-paredit-position-of + "\)" + (line-beginning-position) + (line-end-position)))) + (evil-paredit-yank beg last-balanced-paren type register))) (evil-define-operator evil-paredit-delete (beg end type register yank-handler) @@ -114,7 +120,6 @@ Save in REGISTER or in the kill-ring with YANK-HANDLER." (evil-paredit-delete beg last-balanced-paren type register yank-handler))))) - (defun evil-paredit-position-of (regexp start stop &optional nth) "Returns the buffer position of the `nth' occurrence of `regexp' between buffer positions `start' and `stop'" |