diff options
author | Expez <mrgrandmother@gmail.com> | 2013-02-05 18:07:03 +0100 |
---|---|---|
committer | Expez <mrgrandmother@gmail.com> | 2013-02-05 18:08:12 +0100 |
commit | 86d8ab33c5cd0ff88e23fdfd75a8ba7b8dc0e687 (patch) | |
tree | 4304eb99e7c6ca35de8497fa281e59bf1042f836 | |
parent | 5925e441c3ed92776a87a980385a7cc34fd25099 (diff) |
Don't break compatibility with paredit 22.
Adds a check to see if the function paredit-check-region-state is
defined. If it is we will rely on the old behavior.
-rw-r--r-- | evil-paredit.el | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/evil-paredit.el b/evil-paredit.el index 8ddabf6..176524f 100644 --- a/evil-paredit.el +++ b/evil-paredit.el @@ -25,12 +25,24 @@ "Minor mode for setting up Evil with paredit in a single buffer" :keymap '()) +(defun -evil-paredit-check-region (beginning end) + (if (and beginning end) + ;; Check that region begins and ends in a sufficiently similar + ;; state, so that deleting it will leave the buffer balanced. + (save-excursion + (goto-char beginning) + (let* ((state (paredit-current-parse-state)) + (state* (parse-partial-sexp beginning end nil nil state))) + (paredit-check-region-state state state*))))) + (evil-define-operator evil-paredit-yank (beg end type register yank-handler) "Saves the characters in motion into the kill-ring." :move-point nil :repeat nil (interactive "<R><x><y>") - (paredit-check-region-for-delete beg end) + (if (boundp 'paredit-check-region-state) + (-evil-paredit-check-region beg end) + (paredit-check-region-for-delete beg end)) (cond ((eq type 'block) (evil-yank-rectangle beg end register yank-handler)) |