[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-goggles 661e9b17ac 006/225: Enable/disable all regist
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-goggles 661e9b17ac 006/225: Enable/disable all registered advices by (evil-goggles-mode) |
Date: |
Wed, 12 Jan 2022 08:58:35 -0500 (EST) |
branch: elpa/evil-goggles
commit 661e9b17ac8749f6a6e45cd5dd7f164fccd43d09
Author: Evgeni Kolev <evgenysw@gmail.com>
Commit: Evgeni Kolev <evgenysw@gmail.com>
Enable/disable all registered advices by (evil-goggles-mode)
---
evil-goggles.el | 43 +++++++++++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 14 deletions(-)
diff --git a/evil-goggles.el b/evil-goggles.el
index 77955c2cb4..f9137b0e10 100644
--- a/evil-goggles.el
+++ b/evil-goggles.el
@@ -55,7 +55,7 @@
(defun evil-goggles--evil-delete-advice (orig-fun &rest args)
(let ((beg (nth 0 args))
(end (nth 1 args)))
- (evil-goggles--generic-advice beg end orig-fun args 'diff-removed)))
+ (evil-goggles--generic-advice beg end orig-fun args 'region)))
(defun evil-goggles--evil-indent-advice (orig-fun &rest args)
(let ((beg (nth 0 args))
@@ -65,30 +65,45 @@
(defun evil-goggles--evil-yank-advice (orig-fun &rest args)
(let ((beg (nth 0 args))
(end (nth 1 args)))
- (evil-goggles--generic-advice beg end orig-fun args 'diff-added)))
+ (evil-goggles--generic-advice beg end orig-fun args 'region)))
+
+(define-minor-mode evil-goggles-mode
+ "evil-goggles global minor mode."
+ :lighter " (⌐■-■)"
+ :global t
+ (cond
+ (evil-goggles-mode
+ (evil-goggles--advice-add-all))
+ (t
+ (evil-goggles--advice-remove-all)
+ )))
(defvar evil-goggles--hooks (make-hash-table))
(defun evil-goggles--advice-add (fun advice-fun)
(when evil-goggles-mode
+ ;; clear any old advice
+ (let ((old-advice-fun (gethash fun evil-goggles--hooks)))
+ (when old-advice-fun
+ (message "Replacing advice of %s" 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--hooks))
+(defun evil-goggles--advice-add-all ()
+ (maphash (lambda (advised-fun advice-fun) (advice-add advised-fun :around
advice-fun)) evil-goggles--hooks))
+
+(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)
+
(defun evil-goggles--advice-remove-all ()
(maphash (lambda (advised-fun advice-fun) (advice-remove advised-fun
advice-fun)) evil-goggles--hooks))
-(define-minor-mode evil-goggles-mode
- "evil-goggles global minor mode."
- :lighter " (⌐■-■)"
- :global t
- (cond
- (evil-goggles-mode
- (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))
- (t
- (evil-goggles--advice-remove-all)
- )))
(provide 'evil-goggles)
- [nongnu] branch elpa/evil-goggles created (now 1b66053ea5), ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles fc62425d64 001/225: Initial version for evil-delete only, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles e489bcc112 002/225: Add support for evil-indent, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 2133b9b671 003/225: Use different faces for delete and indent, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 2e2da80d0d 007/225: Add join, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 5ae539673d 008/225: Configurable faces, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 01b23de219 004/225: Remove all advices on mode disable, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 661e9b17ac 006/225: Enable/disable all registered advices by (evil-goggles-mode),
ELPA Syncer <=
- [nongnu] elpa/evil-goggles 15261c2683 005/225: Add yank, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles e26b505a92 010/225: Don't break evil-inhibit-operator in evil-delete advice, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 0c5ba02b40 014/225: Take into account `evil-inhibit-operator`, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles d947547e7e 025/225: No default faces per command, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles bff3f367f8 024/225: Docs for checkdoc, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 10b480e7ca 037/225: Update README.md, ELPA Syncer, 2022/01/12
- [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