[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`.
- [nongnu] elpa/evil-goggles 9b8eb6db52 036/225: Build badge, (continued)
- [nongnu] elpa/evil-goggles 9b8eb6db52 036/225: Build badge, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 04cd386c33 043/225: Update README.md, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles d1ada11b2d 048/225: Update README.md, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 056a35572e 052/225: Fix link, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles ae066ce954 051/225: Autoload the minor mode function, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles cb295a7f68 055/225: Don't show the overlay when evil's motion type is 'block, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles e74c8d6e29 060/225: Tweak Makefile, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 9d20051b25 009/225: Add evil-surround, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 170cc01885 017/225: Remove incorrect "generic advice", ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 4f04526b5d 026/225: Add evil-paste-before and evil-paste-after, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 168f07ecd6 033/225: Simplify add/remove of advices,
ELPA Syncer <=
- [nongnu] elpa/evil-goggles 4388040c0c 034/225: Check early for non-nil `evil-last-paste', ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles bebcecadef 053/225: .gitignore *.elc, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 9dae90cef6 061/225: Define faces in a separate file, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles e95fb4d6b9 058/225: Partially revert README, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles ca75849806 065/225: Add support for evil-shift-left and evil-shift-right, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles c2c9aedaff 075/225: No lonely parentheses in README, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles c1df77a548 079/225: Add "checkdoc" make target, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 2117f62dff 087/225: Alternative implementation for undo/redo, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 6ab09a09c7 093/225: Don't use `caadr`, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles d274e1572c 096/225: Make Travis run all of evil's tests under (evil-goggles-mode), ELPA Syncer, 2022/01/12