[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-goggles 42051e2cb3 197/225: Keep configuration per co
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-goggles 42051e2cb3 197/225: Keep configuration per command in a variable |
Date: |
Wed, 12 Jan 2022 08:59:08 -0500 (EST) |
branch: elpa/evil-goggles
commit 42051e2cb3caf7b39a0c0798adaba8144660d694
Author: Evgeni Kolev <evgenysw@gmail.com>
Commit: Evgeni Kolev <evgenysw@gmail.com>
Keep configuration per command in a variable
---
evil-goggles.el | 64 ++++++++++++++++++++++++++-------------------------------
1 file changed, 29 insertions(+), 35 deletions(-)
diff --git a/evil-goggles.el b/evil-goggles.el
index 2542a140f7..f91c9ac1b6 100644
--- a/evil-goggles.el
+++ b/evil-goggles.el
@@ -305,7 +305,7 @@ OFF-BY-DEFAULT if non-nil will set the switch to `nil'"
(defun evil-goggles--get-face (command)
(or
- (plist-get (alist-get command evil-goggles--faces) :face)
+ (plist-get (alist-get command evil-goggles--commands) :face)
'evil-goggles-default-face))
(defun evil-goggles--show-blocking-hint (beg end face)
@@ -419,19 +419,21 @@ OFF-BY-DEFAULT if non-nil will set the switch to `nil'"
;;; assosiation list with faces
-(defvar evil-goggles--faces
- '((evil-delete :face evil-goggles-delete-face)
- (evil-yank :face evil-goggles-yank-face)
- (evil-indent :face evil-goggles-indent-face)
- (evil-change-whole-line :face evil-goggles-change-face)
- (evil-change :face evil-goggles-change-face)
- (evil-change-line :face evil-goggles-change-face)
- (evil-indent :face evil-goggles-indent-face)
- (evil-join :face evil-goggles-join-face)
- (evil-join-whitespace :face evil-goggles-join-face)
- (evil-surround-region :face evil-goggles-surround-face)
- (evil-commentary :face evil-goggles-commentary-face)
- (evilnc-comment-operator :face evil-goggles-nerd-commenter-face)))
+(defvar evil-goggles--commands
+ '((evil-delete :face evil-goggles-delete-face :switch
evil-goggles-enable-delete :advice
evil-goggles--generic-blocking-advice)
+ (evil-yank :face evil-goggles-yank-face :switch
evil-goggles-enable-yank :advice evil-goggles--generic-async-advice)
+ (evil-change :face evil-goggles-change-face :switch
evil-goggles-enable-change :advice
evil-goggles--generic-blocking-advice)
+ (evil-change-line :face evil-goggles-change-face :switch
evil-goggles-enable-change :advice
evil-goggles--generic-blocking-advice)
+ (evil-change-whole-line :face evil-goggles-change-face :switch
evil-goggles-enable-change :advice
evil-goggles--generic-blocking-advice)
+ (evil-indent :face evil-goggles-indent-face :switch
evil-goggles-enable-indent :advice evil-goggles--generic-async-advice)
+ (evil-join :face evil-goggles-join-face :switch
evil-goggles-enable-join :advice evil-goggles--join-advice)
+ (evil-join-whitespace :face evil-goggles-join-face :switch
evil-goggles-enable-join :advice evil-goggles--join-advice)
+ (evil-fill-and-move :face evil-goggles-fill-and-move-face :switch
evil-goggles-enable-fill-and-move :advice evil-goggles--generic-async-advice)
+ (evil-shift-left :face evil-goggles-shift-face :switch
evil-goggles-enable-shift :advice evil-goggles--generic-async-advice)
+ (evil-shift-right :face evil-goggles-shift-face :switch
evil-goggles-enable-shift :advice evil-goggles--generic-async-advice)
+ (evil-surround-region :face evil-goggles-surround-face :switch
evil-goggles-enable-surround :advice evil-goggles--generic-async-advice)
+ (evil-commentary :face evil-goggles-commentary-face :switch
evil-goggles-enable-commentary :advice evil-goggles--generic-async-advice)
+ (evilnc-comment-operator :face evil-goggles-nerd-commenter-face :switch
evil-goggles-enable-nerd-commenter :advice evil-goggles--generic-async-advice)))
;;; minor mode defined below ;;;
@@ -450,28 +452,20 @@ OFF-BY-DEFAULT if non-nil will set the switch to `nil'"
(if evil-goggles-mode
(progn
(add-hook 'pre-command-hook #'evil-goggles--vanish)
- (when evil-goggles-enable-delete (advice-add 'evil-delete
:before 'evil-goggles--generic-blocking-advice))
- (when evil-goggles-enable-yank (advice-add 'evil-yank
:before 'evil-goggles--generic-async-advice))
- (when evil-goggles-enable-change (advice-add 'evil-change
:before 'evil-goggles--generic-blocking-advice))
- (when evil-goggles-enable-change (advice-add 'evil-change-line
:before 'evil-goggles--generic-blocking-advice))
- (when evil-goggles-enable-change (advice-add
'evil-change-whole-line :before 'evil-goggles--generic-blocking-advice))
- (when evil-goggles-enable-indent (advice-add 'evil-indent
:before 'evil-goggles--generic-async-advice))
- (when evil-goggles-enable-join (advice-add 'evil-join
:before 'evil-goggles--join-advice))
- (when evil-goggles-enable-join (advice-add
'evil-join-whitespace :before 'evil-goggles--join-advice))
- (when evil-goggles-enable-surround (advice-add
'evil-surround-region :before 'evil-goggles--generic-async-advice))
- (when evil-goggles-enable-commentary (advice-add 'evil-commentary
:before 'evil-goggles--generic-async-advice))
- (when evil-goggles-enable-nerd-commenter (advice-add
'evilnc-comment-operator :before 'evil-goggles--generic-async-advice)))
+ ;; add advice
+ (dolist (command-cfg evil-goggles--commands)
+ (let ((cmd (car command-cfg))
+ (advice (plist-get (cdr command-cfg) :advice))
+ (switch (plist-get (cdr command-cfg) :switch)))
+ (when (symbol-value switch)
+ (advice-add cmd :before advice)))))
+ ;; remove advice
(remove-hook 'pre-command-hook 'evil-goggles--vanish)
- (advice-remove 'evil-delete
'evil-goggles--generic-blocking-advice)
- (advice-remove 'evil-yank
'evil-goggles--generic-async-advice)
- (advice-remove 'evil-change
'evil-goggles--generic-blocking-advice)
- (advice-remove 'evil-change-whole-line
'evil-goggles--generic-blocking-advice)
- (advice-remove 'evil-indent
'evil-goggles--generic-async-advice)
- (advice-remove 'evil-join 'evil-goggles--join-advice)
- (advice-remove 'evil-join-whitespace 'evil-goggles--join-advice)
- (advice-remove 'evil-surround-region
'evil-goggles--generic-async-advice)
- (advice-remove 'evil-commentary
'evil-goggles--generic-async-advice)
- (advice-remove 'evilnc-comment-operator
'evil-goggles--generic-async-advice)))
+ (dolist (command-cfg evil-goggles--commands)
+ (let ((cmd (car command-cfg))
+ (advice (plist-get (cdr command-cfg) :advice))
+ (switch (plist-get (cdr command-cfg) :switch)))
+ (advice-remove cmd advice)))))
(provide 'evil-goggles)
- [nongnu] elpa/evil-goggles 761abb7b2f 145/225: Hint duration should be configured via three variables, (continued)
- [nongnu] elpa/evil-goggles 761abb7b2f 145/225: Hint duration should be configured via three variables, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles f282263af4 120/225: Show visual hint after shift left/right, not before #7, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 2932d91a6c 129/225: Remove deprecated functions, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles d3802c500f 141/225: Rename function with-no-hint => with-disabled-hint, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 888f064624 130/225: Add docstrings, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 7f30cbd73c 139/225: Fix default values, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 838aacbe33 176/225: evil-goggles--show-p: check for a single char *and* single line, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 5780bcf8cb 186/225: Show hint only when the command is called interactively #18, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 4bfc8df8b3 191/225: Remove deprecated macros, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles bb974e38d2 193/225: Add hints for `J`, `gq` and `=`, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 42051e2cb3 197/225: Keep configuration per command in a variable,
ELPA Syncer <=
- [nongnu] elpa/evil-goggles 1c72501a6f 196/225: Reduce configuration options - drop `substitute`, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 2b922512fb 199/225: Refactor, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles dac6c45aa1 214/225: Add hint for `Y', when `evil-want-Y-yank-to-eol' is t, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles bf1be3be24 018/225: Don't show overlay on whitespaces-only regions, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 36fb70d6a1 044/225: Rename option `evil-goggles-show-for` to `evil-goggles-duration`, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles c6935dc53d 099/225: Don't bundle evil-tests.el. Fix #15, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 88cb3ffa38 100/225: Fetch evil-tests.el from evil's repo. Comment out parts of it with sed. Refs #15, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles 2d2011180f 111/225: Mention experimental pulse option in README, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles e9b0ed0484 137/225: Tweak defaults, ELPA Syncer, 2022/01/12
- [nongnu] elpa/evil-goggles ca6b5f7bfe 138/225: Rename APIs pre/post to blocking/async, ELPA Syncer, 2022/01/12