summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Nguyen <james@jojojames.com>2022-06-07 21:32:24 -0400
committerJames Nguyen <james@jojojames.com>2022-06-07 21:32:24 -0400
commit352a7ee7b50c131b34740374fddda5f2357f5b20 (patch)
tree29745ec16e9d05ed53a4c43b82cc9b8002a33a21
parent79fc09b0140311377726551ee31622f61d28c571 (diff)
Add global handling and key themes in configglobalandkeythemes
-rw-r--r--evil-collection.el46
1 files changed, 39 insertions, 7 deletions
diff --git a/evil-collection.el b/evil-collection.el
index 9f18622..537288e 100644
--- a/evil-collection.el
+++ b/evil-collection.el
@@ -352,9 +352,12 @@ this confusing. It will be included if
:group 'evil-collection)
(defcustom evil-collection-config
- '((buff-menu :defer t)
+ '((evil
+ :debugger t :minibuffer nil :cal-org nil :unimpaired t :usages t)
+ (buff-menu :defer t)
(calc :defer t)
(comint :defer t)
+ (corfu :key-themes (default tab-n-go magic-return magic-backspace))
(debug :defer t)
(diff-mode :defer t)
(dired :defer t)
@@ -914,14 +917,30 @@ instead of the modes in `evil-collection-mode-list'.
(if modes
(or (listp modes) (setq modes (list modes)))
(setq modes evil-collection-mode-list))
- (let ((configs evil-collection-config)
- (deferred-modes)
- (delays))
+ (let* ((global (cdr (cl-find-if (lambda (mode)
+ (eq (car mode) 'evil))
+ evil-collection-config)))
+ (configs (if global
+ (cl-remove-if
+ (lambda (mode) (eq (car mode) 'evil))
+ evil-collection-config)
+ evil-collection-config))
+ ;; :defer
+ (deferred-modes)
+ (delays)
+ ;; :key-themes
+ (key-theme-modes)
+ (key-themes))
(dolist (config configs)
- (let ((defer (plist-get (cdr config) :defer)))
+ (let ((defer (plist-get (cdr config) :defer))
+ (key-theme (plist-get (cdr config) :key-themes))
+ (mode (car config)))
(when defer
- (push (car config) deferred-modes)
- (push defer delays))))
+ (push mode deferred-modes)
+ (push defer delays))
+ (when key-theme
+ (push mode key-theme-modes)
+ (push key-theme key-themes))))
(let ((filtered-modes
(cl-remove-if
(lambda (mode)
@@ -937,6 +956,19 @@ instead of the modes in `evil-collection-mode-list'.
(setf (car x) mode))))
filterp))
modes)))
+ (when global
+ (setf
+ evil-collection-setup-minibuffer (plist-get global :minibuffer)
+ evil-collection-setup-debugger-keys (plist-get global :debugger)
+ evil-collection-calendar-want-org-bindings (plist-get global :cal-org)
+ evil-collection-want-unimpaired-p (plist-get global :unimpaired)
+ evil-collection-want-find-usages-bindings (plist-get global :usages)))
+ (dotimes (i (length key-themes))
+ (let ((mode (nth i key-theme-modes))
+ (theme (nth i key-themes))
+ (custom (format "evil-collection-%S-key-themes" mode)))
+ (message (format "Setting up key theme: %S" custom))
+ (setf (symbol-value (intern custom)) theme)))
(evil-collection-init filtered-modes))
(message (format "Deferring: %S" deferred-modes))
(dotimes (i (length deferred-modes))