emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/evil-goggles 42456816de 015/225: Use macros to preserve "i


From: ELPA Syncer
Subject: [nongnu] elpa/evil-goggles 42456816de 015/225: Use macros to preserve "interactivity"
Date: Wed, 12 Jan 2022 08:58:38 -0500 (EST)

branch: elpa/evil-goggles
commit 42456816def77e0c6c9fea1b995b96097946624d
Author: Evgeni Kolev <evgenysw@gmail.com>
Commit: Evgeni Kolev <evgenysw@gmail.com>

    Use macros to preserve "interactivity"
---
 evil-goggles.el | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/evil-goggles.el b/evil-goggles.el
index 5636c7bf8e..52062907b2 100644
--- a/evil-goggles.el
+++ b/evil-goggles.el
@@ -93,10 +93,22 @@
         (funcall-interactively orig-fun beg end type register yank-handler))
     (funcall-interactively orig-fun beg end type register yank-handler)))
 
-(defun evil-goggles--evil-indent-advice (orig-fun &rest args)
-  (let ((beg (nth 0 args))
-        (end (nth 1 args)))
-    (evil-goggles--generic-advice beg end orig-fun args (evil-goggles--face 
'evil-indent))))
+(defun evil-goggles--evil-indent-advice (orig-fun beg end)
+  (evil-goggles--with-goggles beg end 'evil-indent
+    (evil-goggles--funcall-preserve-interactive orig-fun beg end)))
+
+(defmacro evil-goggles--with-goggles (beg end adviced-fun &rest body)
+  (declare (indent defun) (debug t))
+  `(if (evil-goggles--show-p ,beg ,end)
+         (let* ((evil-goggles--on t))
+           (evil-goggles--show ,beg ,end (evil-goggles--face ,adviced-fun))
+           (progn ,@body))
+       (progn ,@body)))
+
+(defmacro evil-goggles--funcall-preserve-interactive (orig-fun &rest args)
+  `(if (called-interactively-p 'any)
+       (funcall-interactively ,orig-fun ,@args)
+     (funcall ,orig-fun ,@args)))
 
 (defun evil-goggles--evil-yank-advice (orig-fun &rest args)
   (let ((beg (nth 0 args))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]