From 9dfd7ebc7833242824326e18f05fcabc8014196a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 23 Aug 2024 18:02:53 -0400 Subject: [PATCH 01/13] feat(ocaml): set formatter for dune-mode Close: #8019 Co-authored-by: i-am-linja --- modules/lang/ocaml/config.el | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index 11b5082dc..6b3ef4a37 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -134,3 +134,10 @@ (when (modulep! +tree-sitter) (add-hook 'tuareg-mode-local-vars-hook #'tree-sitter!)) + + +(use-package! dune + :defer t + :config + (set-formatter! 'format-dune-file '("dune" "format-dune-file") + :modes '(dune-mode))) From 62f9b2ec9467408f131996537d4d21c43e535f72 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 23 Aug 2024 18:03:20 -0400 Subject: [PATCH 02/13] feat(parinfer): enable for dune-mode Close: #8019 Co-authored-by: i-am-linja --- modules/editor/parinfer/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/editor/parinfer/config.el b/modules/editor/parinfer/config.el index 57c202844..30dabf3d4 100644 --- a/modules/editor/parinfer/config.el +++ b/modules/editor/parinfer/config.el @@ -8,7 +8,8 @@ lisp-mode racket-mode fennel-mode - hy-mode) . parinfer-rust-mode) + hy-mode + dune-mode) . parinfer-rust-mode) :init (setq parinfer-rust-library (file-name-concat From 4bc4b54eb9971ff0abf5884bc0e5360c3d0f70a3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 23 Aug 2024 18:04:27 -0400 Subject: [PATCH 03/13] bump: :lang php emacs-php/composer.el@42cf9848d438 -> emacs-php/composer.el@791a7104be2e emacs-php/php-mode@4792988a120d -> emacs-php/php-mode@59814bd80c59 jwiegley/emacs-async@cff2bd0be3c7 -> jwiegley/emacs-async@f317b0c9c3e6 --- modules/lang/php/packages.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/lang/php/packages.el b/modules/lang/php/packages.el index ce2dcb830..415f912eb 100644 --- a/modules/lang/php/packages.el +++ b/modules/lang/php/packages.el @@ -5,10 +5,10 @@ (package! php-extras :recipe (:host github :repo "arnested/php-extras") :pin "d410c5af663c30c01d461ac476d1cbfbacb49367") -(package! php-mode :pin "4792988a120d6ac515ba16605278d04cb8be0d69") +(package! php-mode :pin "59814bd80c59894022bc5950fb3bdf02420e8a89") (package! php-refactor-mode :pin "7a794b0618df2882b1bd586fdd698dba0bc5130d") (package! phpunit :pin "650a50898de1fa4eeb47360b12aeb1126b2448c2") -(package! composer :pin "42cf9848d438f8dc4c07ac684a83280ace7bb94c") +(package! composer :pin "791a7104be2ef2748757a186094c1e8f7f531a01") (when (modulep! +hack) (package! hack-mode @@ -16,4 +16,4 @@ :pin "ccf20511f0f2ed45d00d423c703bb91ab6a8b80c")) ;; For building php-extras -(package! async :pin "cff2bd0be3c78a2eb76717eed60302972fe9b8c5") +(package! async :pin "f317b0c9c3e60a959f45d035ed5e31a78f1263ac") From a8ba8feecb1e2166ccd08edef4d655463ef591d1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 24 Aug 2024 16:36:01 -0400 Subject: [PATCH 04/13] refactor(lib): doom/{reload,upgrade}: customizable commands Ref: #8024 --- lisp/doom.el | 6 ++++++ lisp/lib/config.el | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lisp/doom.el b/lisp/doom.el index 601c5c38a..ccf3d1114 100644 --- a/lisp/doom.el +++ b/lisp/doom.el @@ -247,6 +247,12 @@ Defaults to ~/.config/doom, ~/.doom.d or the value of the DOOMDIR envvar; whichever is found first. Must end in a slash.") +(defvar doom-bin-dir (expand-file-name "bin/" doom-emacs-dir) + "Where Doom's executables are stored. + +Defaults to $EMACSDIR/bin, where $EMACSDIR is `doom-emacs-dir'. Must end in a +slash.") + ;; DEPRECATED: .local will be removed entirely in 3.0 (defvar doom-local-dir (if-let (localdir (getenv-internal "DOOMLOCALDIR")) diff --git a/lisp/lib/config.el b/lisp/lib/config.el index 8fe468919..e48c9f8c3 100644 --- a/lisp/lib/config.el +++ b/lisp/lib/config.el @@ -55,7 +55,8 @@ And jumps to your `doom!' block." (defmacro doom--if-compile (command on-success &optional on-failure) (declare (indent 2)) - `(let ((default-directory doom-emacs-dir)) + `(let ((default-directory doom-emacs-dir) + (exec-path (cons doom-bin-dir exec-path))) (with-current-buffer (compile ,command t) (let ((w (get-buffer-window (current-buffer)))) (select-window w) @@ -69,6 +70,8 @@ And jumps to your `doom!' block." ,on-failure)) nil 'local))))) +(defvar doom-reload-command "doom sync -B -e" + "Command that `doom/reload' runs.") ;;;###autoload (defun doom/reload () "Reloads your private config. @@ -83,7 +86,7 @@ package list, and lastly, reloads your private config.el. Runs `doom-after-reload-hook' afterwards." (interactive) (mapc #'require (cdr doom-incremental-packages)) - (doom--if-compile (format "%S sync -e" doom-bin) + (doom--if-compile doom-reload-command (doom-context-with '(reload modules) (doom-run-hooks 'doom-before-reload-hook) (doom-load (file-name-concat doom-user-dir doom-module-init-file) t) @@ -131,10 +134,12 @@ imported into Emacs." (doom-load-envvars-file doom-env-file) (message "Reloaded %S" (abbreviate-file-name doom-env-file)))))) +(defvar doom-upgrade-command "doom upgrade -B --force" + "Command that `doom/upgrade' runs.") ;;;###autoload (defun doom/upgrade () "Run 'doom upgrade' then prompt to restart Emacs." (interactive) - (doom--if-compile (format "%S upgrade --force" doom-bin) + (doom--if-compile doom-upgrade-command (when (y-or-n-p "You must restart Emacs for the upgrade to take effect.\n\nRestart Emacs?") (doom/restart-and-restore)))) From 9c6a5e93234103311ea69f70ac491ab711eb257d Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 24 Aug 2024 17:25:35 -0400 Subject: [PATCH 05/13] fix(lib): doom/{reload,upgrade}: ensure env matches session --- lisp/lib/config.el | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/lisp/lib/config.el b/lisp/lib/config.el index e48c9f8c3..0bb70caa7 100644 --- a/lisp/lib/config.el +++ b/lisp/lib/config.el @@ -57,18 +57,25 @@ And jumps to your `doom!' block." (declare (indent 2)) `(let ((default-directory doom-emacs-dir) (exec-path (cons doom-bin-dir exec-path))) - (with-current-buffer (compile ,command t) - (let ((w (get-buffer-window (current-buffer)))) - (select-window w) - (add-hook - 'compilation-finish-functions - (lambda (_buf status) - (if (equal status "finished\n") - (progn - (delete-window w) - ,on-success) - ,on-failure)) - nil 'local))))) + ;; Ensure the bin/doom operates with the same environment as this + ;; running session. + (letenv! (("EMACS" (doom-path invocation-directory invocation-name)) + ("EMACSDIR" doom-emacs-dir) + ("DOOMDIR" doom-user-dir) + ("DOOMLOCALDIR" doom-local-dir) + ("DEBUG" (and doom-debug-mode "1"))) + (with-current-buffer (compile ,command t) + (let ((w (get-buffer-window (current-buffer)))) + (select-window w) + (add-hook + 'compilation-finish-functions + (lambda (_buf status) + (if (equal status "finished\n") + (progn + (delete-window w) + ,on-success) + ,on-failure)) + nil 'local)))))) (defvar doom-reload-command "doom sync -B -e" "Command that `doom/reload' runs.") From 1fad466c12f92864c141325eeed29e111f1ceaf0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Aug 2024 16:04:44 -0400 Subject: [PATCH 06/13] fix(dired): "Attempt to delete minibuffer or sole ordinary window" Makes `+dired--cleanup-dirvish-h` more robust, and only kick in for dirvish-side or full-frame dirvish sessions. Amend: e82dab325727 --- modules/emacs/dired/config.el | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/emacs/dired/config.el b/modules/emacs/dired/config.el index 27ec10311..f700e2e2f 100644 --- a/modules/emacs/dired/config.el +++ b/modules/emacs/dired/config.el @@ -188,13 +188,18 @@ Fixes #3939: unsortable dired entries on Windows." ;; HACK: Kill Dirvish session before switching projects/workspaces, otherwise ;; it errors out on trying to delete/change dedicated windows. - (add-hook! '(persp-before-kill-functions projectile-before-switch-project-hook) + (add-hook! '(persp-before-kill-functions + persp-before-switch-functions + projectile-before-switch-project-hook) (defun +dired--cleanup-dirvish-h (&rest _) - (when-let ((win - (or (and (featurep 'dirvish-side) - (dirvish-side--session-visible-p)) - (and dirvish--this (selected-window))))) - (delete-window win)))) + (when-let ((dv (cl-loop for w in (window-list) + if (or (window-parameter w 'window-side) + (window-dedicated-p w)) + if (with-current-buffer (window-buffer w) (dirvish-curr)) + return it))) + (let (dirvish-reuse-session) + (with-selected-window (dv-root-window dv) + (dirvish-quit)))))) ;; HACK: If a directory has a .dir-locals.el, its settings could ;; interfere/crash Dirvish trying to preview it. From ebf91a136343031a0e5220615621431bfe3b953c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Aug 2024 16:13:09 -0400 Subject: [PATCH 07/13] refactor: use true eos regex in auto-mode-alist entries "\\'" will match the true end-of-string, whereas "$" will also match just before a newline character. Not that there's much risk that there'll be newlines in a filepath, but I'd rather be consistent. It also makes these entries easier for users to remove from auto-mode-alist. --- modules/lang/fortran/config.el | 2 +- modules/lang/java/config.el | 2 +- modules/lang/php/config.el | 2 +- modules/lang/rust/config.el | 2 +- modules/tools/ansible/config.el | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/lang/fortran/config.el b/modules/lang/fortran/config.el index b42e76ad6..f19d9f57f 100644 --- a/modules/lang/fortran/config.el +++ b/modules/lang/fortran/config.el @@ -55,7 +55,7 @@ ;; The `.for' extension is automatically recognized by Emacs and invokes ;; `fortran-mode', but not its capital variant `.FOR'. Many old files are ;; named the latter way, so we account for that manually here. - :mode ("\\.FOR$" . fortran-mode) + :mode ("\\.FOR\\'" . fortran-mode) :config ;; Or else Flycheck will get very mad. (setq flycheck-gfortran-language-standard "legacy") diff --git a/modules/lang/java/config.el b/modules/lang/java/config.el index 20af39e04..582441398 100644 --- a/modules/lang/java/config.el +++ b/modules/lang/java/config.el @@ -47,7 +47,7 @@ If the depth is 2, the first two directories are removed: net.lissner.game.") (use-package! groovy-mode - :mode "\\.g\\(?:radle\\|roovy\\)$" + :mode "\\.g\\(?:radle\\|roovy\\)\\'" :config (set-docsets! 'groovy-mode "Groovy" "Groovy_JDK") (set-eval-handler! 'groovy-mode "groovy") diff --git a/modules/lang/php/config.el b/modules/lang/php/config.el index 6cdda8ded..f38028dd2 100644 --- a/modules/lang/php/config.el +++ b/modules/lang/php/config.el @@ -118,7 +118,7 @@ (use-package! hack-mode :when (modulep! +hack) - :mode "\\.hh$") + :mode "\\.hh\\'") (use-package! composer diff --git a/modules/lang/rust/config.el b/modules/lang/rust/config.el index e587ac2e6..097649733 100644 --- a/modules/lang/rust/config.el +++ b/modules/lang/rust/config.el @@ -9,7 +9,7 @@ ;;; Packages (use-package! rustic - :mode ("\\.rs$" . rustic-mode) + :mode ("\\.rs\\'" . rustic-mode) :preface ;; HACK `rustic' sets up some things too early. I'd rather disable it and let ;; our respective modules standardize how they're initialized. diff --git a/modules/tools/ansible/config.el b/modules/tools/ansible/config.el index f7577a687..1078ca4d7 100644 --- a/modules/tools/ansible/config.el +++ b/modules/tools/ansible/config.el @@ -21,7 +21,7 @@ (use-package! jinja2-mode - :mode "\\.j2$" + :mode "\\.j2\\'" :config ;; The default behavior is to reindent the whole buffer on save. This is ;; disruptive and imposing. There are indentation commands available; the user From b9e460bc6451ef333b4ffb76c6f4a604d0142b63 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Aug 2024 16:32:26 -0400 Subject: [PATCH 08/13] refactor(vertico): remove redundant quoting Ref: #7943 --- modules/completion/vertico/config.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index 3d54e81ca..b0a5e7a16 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -75,13 +75,13 @@ orderless." (apply fn args))) (setq orderless-affix-dispatch-alist - `((?! . ,#'orderless-without-literal) - (?& . ,#'orderless-annotation) - (?% . ,#'char-fold-to-regexp) - (?` . ,#'orderless-initialism) - (?= . ,#'orderless-literal) - (?^ . ,#'orderless-literal-prefix) - (?~ . ,#'orderless-flex))) + '((?! . orderless-without-literal) + (?& . orderless-annotation) + (?% . char-fold-to-regexp) + (?` . orderless-initialism) + (?= . orderless-literal) + (?^ . orderless-literal-prefix) + (?~ . orderless-flex))) (defun +vertico-orderless-dispatch (pattern _index _total) (cond From fac979c6d876f4956ee2f32e8217d32eee63f5c5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Aug 2024 16:34:19 -0400 Subject: [PATCH 09/13] fix: package!: unpinning with `:pin nil` --- lisp/doom-packages.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doom-packages.el b/lisp/doom-packages.el index 22f73aef6..a807cc99e 100644 --- a/lisp/doom-packages.el +++ b/lisp/doom-packages.el @@ -568,7 +568,7 @@ elsewhere." nil)))) ;; Merge given plist with pre-existing one (cl-loop for (key value) on (list ,@plist) by 'cddr - when value + when (or (eq key :pin) value) do (cl-callf plist-put plist key value)) ;; Some basic key validation; throws an error on invalid properties (condition-case e From ea97adf9c7272cd5b6dc783d07d020c38d13da0a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Aug 2024 17:13:09 -0400 Subject: [PATCH 10/13] fix: set jump points on more kill-buffer functions Close: #7643 Co-authored-by: LemonBreezes --- lisp/doom-editor.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/doom-editor.el b/lisp/doom-editor.el index 8df0c3778..7c2af2a71 100644 --- a/lisp/doom-editor.el +++ b/lisp/doom-editor.el @@ -486,7 +486,8 @@ files, so this replace calls to `pp' with the much faster `prin1'." (defun doom-set-jump-h () "Run `better-jumper-set-jump' but return nil, for short-circuiting hooks." - (better-jumper-set-jump) + (when (get-buffer-window) + (better-jumper-set-jump)) nil) ;; Creates a jump point before killing a buffer. This allows you to undo @@ -495,7 +496,7 @@ files, so this replace calls to `pp' with the much faster `prin1'." ;; ;; I'm not advising `kill-buffer' because I only want this to affect ;; interactively killed buffers. - (advice-add #'kill-current-buffer :around #'doom-set-jump-a) + (add-hook 'kill-buffer-hook #'doom-set-jump-h) ;; Create a jump point before jumping with imenu. (advice-add #'imenu :around #'doom-set-jump-a)) From 02ab7f3a79a13c5a2ced16b6e929b0d528b2b16e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Aug 2024 17:22:17 -0400 Subject: [PATCH 11/13] feat(rss): add elfeed-tube behind +youtube Close: #7612 Co-authored-by: edmundmiller --- modules/app/rss/README.org | 4 ++++ modules/app/rss/config.el | 14 ++++++++++++++ modules/app/rss/doctor.el | 9 +++++++++ modules/app/rss/packages.el | 2 ++ 4 files changed, 29 insertions(+) create mode 100644 modules/app/rss/doctor.el diff --git a/modules/app/rss/README.org b/modules/app/rss/README.org index f4a092151..6c1b4517e 100644 --- a/modules/app/rss/README.org +++ b/modules/app/rss/README.org @@ -13,11 +13,15 @@ Read RSS feeds in the comfort of Emacs. - +org :: Enable [[doom-package:elfeed-org]], so you can configure your feeds with an org file (={org-directory}/elfeed.org=) rather than Elisp. +- +youtube :: + Enable [[doom-package:elfeed-tube]], for tighter integration between elfeed and + your Youtube subscriptions. ** Packages - [[doom-package:elfeed]] - [[doom-package:elfeed-goodies]] - [[doom-package:elfeed-org]] if [[doom-module:+org]] +- [[doom-package:elfeed-tube]] if [[doom-module:+youtube]] ** Hacks - By default ~elfeed-search-filter~ is set to ~@2-weeks-ago~ and makes the last diff --git a/modules/app/rss/config.el b/modules/app/rss/config.el index 7d952e42d..00b846933 100644 --- a/modules/app/rss/config.el +++ b/modules/app/rss/config.el @@ -89,3 +89,17 @@ easier to scroll through.") :after elfeed :config (elfeed-goodies/setup)) + + +(use-package! elfeed-tube + :when (modulep! +youtube) + :after elfeed + :config (elfeed-tube-setup) + (map! (:map elfeed-show-mode-map + [remap save-buffer] #'elfeed-tube-save + "F" #'elfeed-tube-fetch) + (:map elfeed-search-mode-map + [remap save-buffer] #'elfeed-tube-save + "F" #'elfeed-tube-fetch + "C-c C-f" #'elfeed-tube-mpv-follow-mode + "C-c C-w" #'elfeed-tube-mpv-where))) diff --git a/modules/app/rss/doctor.el b/modules/app/rss/doctor.el new file mode 100644 index 000000000..d91d635d7 --- /dev/null +++ b/modules/app/rss/doctor.el @@ -0,0 +1,9 @@ +;;; app/rss/doctor.el -*- lexical-binding: t; -*- + +(when (modulep! +youtube) + (unless (executable-find "mpv") + (warn! "Couldn't find the mpv executable. Live transcripts with elfeed-tube-mpv will not work.")) + + (unless (or (executable-find "youtube-dl") + (executable-find "yt-dlp")) + (warn! "Couldn't find the 'youtube-dl' or 'yt-dlp' executables. Live transcripts with elfeed-tube-mpv will not work."))) diff --git a/modules/app/rss/packages.el b/modules/app/rss/packages.el index dff960afb..723ace19c 100644 --- a/modules/app/rss/packages.el +++ b/modules/app/rss/packages.el @@ -5,3 +5,5 @@ (package! elfeed-goodies :pin "544ef42ead011d960a0ad1c1d34df5d222461a6b") (when (modulep! +org) (package! elfeed-org :pin "d62d23e25c5e3be3d70b7fbe1eaeb6e43f93a061")) +(when (modulep! +youtube) + (package! elfeed-tube :pin "0c3fbc21259e1fa794f3179a53b410ba610231f2")) From 9fe9f89333de6922ba393b97b95f4283aafde14d Mon Sep 17 00:00:00 2001 From: Stefan Lendl Date: Mon, 11 Sep 2023 13:14:49 +0200 Subject: [PATCH 12/13] tweak(vterm): vterm-send-next-key mapped to C-q --- modules/term/vterm/config.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/term/vterm/config.el b/modules/term/vterm/config.el index 7ed3bedec..4f9b393e6 100644 --- a/modules/term/vterm/config.el +++ b/modules/term/vterm/config.el @@ -17,6 +17,8 @@ :config (set-popup-rule! "^\\*vterm" :size 0.25 :vslot -4 :select t :quit nil :ttl 0) + (map! :map vterm-mode-map "C-q" #'vterm-send-next-key) + ;; Once vterm is dead, the vterm buffer is useless. Why keep it around? We can ;; spawn another if want one. (setq vterm-kill-buffer-on-exit t) From c862968f4843fa7c30b9dbca688d8e400729196b Mon Sep 17 00:00:00 2001 From: Samuel Tschiedel Date: Sun, 22 Oct 2023 09:20:25 -0300 Subject: [PATCH 13/13] fix(clojure): leverage evil-collection-cider We're currently discarding all evil-collection bindings on `cider--debug-mode`. Given that `j` is bound to a particularly disruptive and non-cancellable command, this brings some friction to evil users. This commit adds those bindings back under `evil +everywhere`. The in-buffer and minibuffer displayed keybindings were adjusted to match, but not easy-menu's. Ref: doomemacs/doomemacs#4627 --- modules/lang/clojure/config.el | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 9fbabc216..ecc7c17ec 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -122,13 +122,34 @@ (with-current-buffer nrepl-server-buffer (buffer-string))))))) - ;; When in cider-debug-mode, override evil keys to not interfere with debug keys (after! evil - (add-hook! cider--debug-mode - (defun +clojure--cider-setup-debug () - "Setup cider debug to override evil keys cleanly" - (evil-make-overriding-map cider--debug-mode-map 'normal) - (evil-normalize-keymaps)))) + (if (modulep! :editor evil +everywhere) + ;; Match evil-collection keybindings to debugging overlay + (after! (cider-debug evil-collection-cider) + (mapc + (lambda (replacement) + (let* ((from (car replacement)) + (to (cadr replacement)) + (item (assoc from cider-debug-prompt-commands))) + ;; Position matters, hence the update-in-place + (setf (car item) (car to)) + (setf (cdr item) (cdr to)))) + '((?h (?H "here" "Here")) + (?i (?I "in" "In")) + (?j (?J "inject" "inJect")) + (?l (?L "locals" "Locals")))) + + ;; Prevent evil-snipe from overriding evil-collection + (add-hook! cider--debug-mode + 'turn-off-evil-snipe-mode + 'turn-off-evil-snipe-override-mode)) + + ;; When in cider-debug-mode, override evil keys to not interfere with debug keys + (add-hook! cider--debug-mode + (defun +clojure--cider-setup-debug () + "Setup cider debug to override evil keys cleanly" + (evil-make-overriding-map cider--debug-mode-map 'normal) + (evil-normalize-keymaps))))) (when (modulep! :ui modeline +light) (defvar-local cider-modeline-icon nil)