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

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

[nongnu] elpa/evil-goggles 168f07ecd6 033/225: Simplify add/remove of ad


From: ELPA Syncer
Subject: [nongnu] elpa/evil-goggles 168f07ecd6 033/225: Simplify add/remove of advices
Date: Wed, 12 Jan 2022 08:58:40 -0500 (EST)

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

    Simplify add/remove of advices
---
 evil-goggles.el | 86 +++++++++++++++++++++++++--------------------------------
 1 file changed, 37 insertions(+), 49 deletions(-)

diff --git a/evil-goggles.el b/evil-goggles.el
index a64af0f0c0..c9acd1fa45 100644
--- a/evil-goggles.el
+++ b/evil-goggles.el
@@ -127,56 +127,44 @@ displayed while its running."
   :global t
   (cond
    (evil-goggles-mode
-    (evil-goggles--advice-add-all))
+    ;; evil core functions
+
+    (evil-goggles--advice-add 'evil-delete                
'evil-goggles--evil-delete-advice)
+    (evil-goggles--advice-add 'evil-indent                
'evil-goggles--evil-indent-advice)
+    (evil-goggles--advice-add 'evil-yank                  
'evil-goggles--evil-yank-advice)
+    (evil-goggles--advice-add 'evil-join                  
'evil-goggles--evil-join-advice)
+    (evil-goggles--advice-add 'evil-join-whitespace       
'evil-goggles--evil-join-advice)
+    (evil-goggles--advice-add 'evil-paste-after           
'evil-goggles--evil-paste-after-advice)
+    (evil-goggles--advice-add 'evil-paste-before          
'evil-goggles--evil-paste-before-advice)
+
+    ;; evil non-core packages
+    (evil-goggles--advice-add 'evil-surround-region       
'evil-goggles--evil-surround-region-advice)
+    (evil-goggles--advice-add 'evil-commentary            
'evil-goggles--evil-commentary-advice)
+    (evil-goggles--advice-add 'evil-replace-with-register 
'evil-goggles--evil-replace-with-register-advice)
+    (evil-goggles--advice-add 'evil-ex-global             
'evil-goggles--evil-ex-global-advice))
    (t
-    (evil-goggles--advice-remove-all)
-    )))
-
-(defvar evil-goggles--advices (make-hash-table)
-  "Hast table with functions which should be advice-d when evil goggles mode 
is toggled.")
-
-(defun evil-goggles--advice-add (fun advice-fun)
-  "Add advice around FUN with ADVICE-FUN.
-
-Toggling evil goggles mode will add/remove the advice"
-  (when evil-goggles-mode
-    ;; clear any old advice
-    (let ((old-advice-fun (gethash fun evil-goggles--advices)))
-      (when old-advice-fun
-        (advice-remove fun old-advice-fun)))
-
-    ;; add the new advice
-    (advice-add fun :around advice-fun))
-
-  ;; store the advice so it can be enabled/disabled by the mode
-  (puthash fun advice-fun evil-goggles--advices))
-
-(defun evil-goggles--advice-add-all ()
-  "Add advice around the functions registered in variable 
`evil-goggles--advices'."
-  (maphash
-   (lambda (advised-fun advice-fun)
-     (unless (memq advised-fun evil-goggles-blacklist)
-       (advice-add advised-fun :around advice-fun)))
-   evil-goggles--advices))
-
-(defun evil-goggles--advice-remove-all ()
-  "Revemo advice around the functions registered in variable 
`evil-goggles--advices'."
-  (maphash (lambda (advised-fun advice-fun) (advice-remove advised-fun 
advice-fun)) evil-goggles--advices))
-
-;; advice-d core evil functions
-(evil-goggles--advice-add 'evil-delete                
'evil-goggles--evil-delete-advice)
-(evil-goggles--advice-add 'evil-indent                
'evil-goggles--evil-indent-advice)
-(evil-goggles--advice-add 'evil-yank                  
'evil-goggles--evil-yank-advice)
-(evil-goggles--advice-add 'evil-join                  
'evil-goggles--evil-join-advice)
-(evil-goggles--advice-add 'evil-join-whitespace       
'evil-goggles--evil-join-advice)
-(evil-goggles--advice-add 'evil-paste-after           
'evil-goggles--evil-paste-after-advice)
-(evil-goggles--advice-add 'evil-paste-before          
'evil-goggles--evil-paste-before-advice)
-
-;; evil non-core packages
-(evil-goggles--advice-add 'evil-surround-region       
'evil-goggles--evil-surround-region-advice)
-(evil-goggles--advice-add 'evil-commentary            
'evil-goggles--evil-commentary-advice)
-(evil-goggles--advice-add 'evil-replace-with-register 
'evil-goggles--evil-replace-with-register-advice)
-(evil-goggles--advice-add 'evil-ex-global             
'evil-goggles--evil-ex-global-advice)
+    (advice-remove 'evil-delete                
'evil-goggles--evil-delete-advice)
+    (advice-remove 'evil-indent                
'evil-goggles--evil-indent-advice)
+    (advice-remove 'evil-yank                  'evil-goggles--evil-yank-advice)
+    (advice-remove 'evil-join                  'evil-goggles--evil-join-advice)
+    (advice-remove 'evil-join-whitespace       'evil-goggles--evil-join-advice)
+    (advice-remove 'evil-paste-after           
'evil-goggles--evil-paste-after-advice)
+    (advice-remove 'evil-paste-before          
'evil-goggles--evil-paste-before-advice)
+    (advice-remove 'evil-surround-region       
'evil-goggles--evil-surround-region-advice)
+    (advice-remove 'evil-commentary            
'evil-goggles--evil-commentary-advice)
+    (advice-remove 'evil-replace-with-register 
'evil-goggles--evil-replace-with-register-advice)
+    (advice-remove 'evil-ex-global             
'evil-goggles--evil-ex-global-advice))))
+
+(defun evil-goggles--advice-add (adviced-fun advice)
+  "Add advice around ADVICED-FUN with ADVICE.
+
+This function doesn't do anyting if FUN is in variable
+`evil-goggles-blacklist'"
+  (unless (memq adviced-fun evil-goggles-blacklist)
+    (advice-add adviced-fun :around advice)))
+
+;; core ends here; below are functions which use the core to display
+;; the visual hint
 
 (defun evil-goggles--evil-delete-advice (orig-fun beg end &optional type 
register yank-handler)
   "Around-advice for function `evil-delete`.



reply via email to

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