summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorexpez <expez@expez.com>2013-12-23 13:42:47 +0100
committerexpez <expez@expez.com>2013-12-23 13:45:47 +0100
commitb49fc32ee176c258f395e67ff8c0eb3a74b50c32 (patch)
tree912ad3805cad895612d68e2294261479a15ae2fb
parenta323aa2269954ed4b1b51bf9fa94ec19e6ef66c3 (diff)
Make yank and kill line similar.
Previously, in this situation, we would get an error when we pressed Y: (progn (foo) |(bar (baz))) With this change (bar (baz)) is yanked instead.
-rw-r--r--evil-paredit.el9
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'"