diff options
author | expez <expez@expez.com> | 2013-12-23 13:42:47 +0100 |
---|---|---|
committer | expez <expez@expez.com> | 2013-12-23 13:45:47 +0100 |
commit | b49fc32ee176c258f395e67ff8c0eb3a74b50c32 (patch) | |
tree | 912ad3805cad895612d68e2294261479a15ae2fb | |
parent | a323aa2269954ed4b1b51bf9fa94ec19e6ef66c3 (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.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'" |