diff --git a/lisp/doom-lib.el b/lisp/doom-lib.el index 359cd73c5..a8de5847c 100644 --- a/lisp/doom-lib.el +++ b/lisp/doom-lib.el @@ -849,9 +849,11 @@ If FETCHER is a function, ELT is used as the key in LIST (an alist)." elt) ,list))) +;; DEPRECATED: Remove in v3 (defmacro pushnew! (place &rest values) "Push VALUES sequentially into PLACE, if they aren't already present. This is a variadic `cl-pushnew'." + (declare (obsolete "Use a loop with `add-to-list' or `cl-pushnew' instead" "3.0.0")) (let ((var (make-symbol "result"))) `(dolist (,var (list ,@values) (with-no-warnings ,place)) (cl-pushnew ,var ,place :test #'equal)))) diff --git a/modules/checkers/spell/config.el b/modules/checkers/spell/config.el index 4bedfce1b..41efb27c5 100644 --- a/modules/checkers/spell/config.el +++ b/modules/checkers/spell/config.el @@ -11,10 +11,9 @@ (after! ispell ;; Don't spellcheck org blocks - (pushnew! ispell-skip-region-alist - '(":\\(PROPERTIES\\|LOGBOOK\\):" . ":END:") - '("#\\+BEGIN_SRC" . "#\\+END_SRC") - '("#\\+BEGIN_EXAMPLE" . "#\\+END_EXAMPLE")) + (add-to-list 'ispell-skip-region-alist '(":\\(PROPERTIES\\|LOGBOOK\\):" . ":END:")) + (add-to-list 'ispell-skip-region-alist '("#\\+BEGIN_SRC" . "#\\+END_SRC")) + (add-to-list 'ispell-skip-region-alist '("#\\+BEGIN_EXAMPLE" . "#\\+END_EXAMPLE")) ;; Enable either aspell, hunspell or enchant. ;; If no module flags are given, enable either aspell, hunspell or enchant diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index c83dc7b0f..1454e405a 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -158,9 +158,8 @@ Can be negative.") :defer t :init (after! helm-mode - (pushnew! helm-completing-read-handlers-alist - '(org-capture . helm-org-completing-read-tags) - '(org-set-tags . helm-org-completing-read-tags)))) + (add-to-list 'helm-completing-read-handlers-alist '(org-capture . helm-org-completing-read-tags)) + (add-to-list 'helm-completing-read-handlers-alist '(org-set-tags . helm-org-completing-read-tags)))) ;; DEPRECATED: Remove when projectile is replaced with project.el diff --git a/modules/completion/ido/config.el b/modules/completion/ido/config.el index 05acc562f..0dbe51484 100644 --- a/modules/completion/ido/config.el +++ b/modules/completion/ido/config.el @@ -19,7 +19,6 @@ :init (setq ido-save-directory-list-file (file-name-concat doom-profile-cache-dir "ido.last")) :config - (pushnew! ido-ignore-files "\\`.DS_Store$" "Icon\\?$") (setq ido-ignore-buffers '("\\` " "^\\*ESS\\*" "^\\*Messages\\*" "^\\*[Hh]elp" "^\\*Buffer" "^\\*.*Completions\\*$" "^\\*Ediff" "^\\*tramp" "^\\*cvs-" "_region_" @@ -31,6 +30,9 @@ ido-enable-flex-matching t ido-everywhere t) + (add-to-list 'ido-ignore-files "\\`.DS_Store$") + (add-to-list 'ido-ignore-files "Icon\\?$") + (map! :map (ido-common-completion-map ido-file-completion-map) "C-w" #'ido-delete-backward-word-updir :map (ido-common-completion-map ido-file-dir-completion-map) diff --git a/modules/completion/vertico/config.el b/modules/completion/vertico/config.el index cb7dee7b7..31a4cee7a 100644 --- a/modules/completion/vertico/config.el +++ b/modules/completion/vertico/config.el @@ -320,18 +320,18 @@ orderless." (map! :map minibuffer-local-map :desc "Cycle marginalia views" "M-A" #'marginalia-cycle) :config - (pushnew! marginalia-command-categories - '(+default/find-file-under-here . file) - '(doom/find-file-in-emacsd . project-file) - '(doom/find-file-in-other-project . project-file) - '(doom/find-file-in-private-config . file) - '(doom/describe-active-minor-mode . minor-mode) - '(flycheck-error-list-set-filter . builtin) - '(persp-switch-to-buffer . buffer) - '(projectile-find-file . project-file) - '(projectile-recentf . project-file) - '(projectile-switch-to-buffer . buffer) - '(projectile-switch-project . project-file)) + (dolist (cat '((+default/find-file-under-here . file) + (doom/find-file-in-emacsd . project-file) + (doom/find-file-in-other-project . project-file) + (doom/find-file-in-private-config . file) + (doom/describe-active-minor-mode . minor-mode) + (flycheck-error-list-set-filter . builtin) + (persp-switch-to-buffer . buffer) + (projectile-find-file . project-file) + (projectile-recentf . project-file) + (projectile-switch-to-buffer . buffer) + (projectile-switch-project . project-file))) + (add-to-list 'marginalia-command-categories cat)) (when (modulep! +icons) (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)) diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 129320a16..debc080f0 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -441,10 +441,10 @@ don't offer any/enough real value to users.") (use-package! evil-traces :after evil-ex :config - (pushnew! evil-traces-argument-type-alist - '(+evil:align . evil-traces-global) - '(+evil:align-right . evil-traces-global) - '(+multiple-cursors:evil-mc . evil-traces-substitute)) + (dolist (argtype '((+evil:align . evil-traces-global) + (+evil:align-right . evil-traces-global) + (+multiple-cursors:evil-mc . evil-traces-substitute))) + (add-to-list 'evil-traces-argument-type-alist argtype)) (evil-traces-mode)) diff --git a/modules/editor/multiple-cursors/config.el b/modules/editor/multiple-cursors/config.el index cf3e45c4b..78c5d0ea1 100644 --- a/modules/editor/multiple-cursors/config.el +++ b/modules/editor/multiple-cursors/config.el @@ -132,12 +132,11 @@ ;; our multiple cursors (add-hook 'evil-insert-state-entry-hook #'evil-mc-resume-cursors) - (pushnew! evil-mc-incompatible-minor-modes - ;; evil-escape's escape key leaves behind extraneous characters - 'evil-escape-mode - ;; Lispy commands don't register on more than 1 cursor. Lispyville - ;; is fine though. - 'lispy-mode) + ;; evil-escape's escape key leaves behind extraneous characters + (add-to-list 'evil-mc-incompatible-minor-modes 'evil-escape-mode) + ;; Lispy commands don't register on more than 1 cursor. Lispyville is fine + ;; though. + (add-to-list 'evil-mc-incompatible-minor-modes 'lispy-mode) (add-hook! 'doom-escape-hook (defun +multiple-cursors-escape-multiple-cursors-h () diff --git a/modules/editor/objed/config.el b/modules/editor/objed/config.el index 57b191361..60b8e37b6 100644 --- a/modules/editor/objed/config.el +++ b/modules/editor/objed/config.el @@ -4,7 +4,8 @@ :after-call pre-command-hook :config ;; Prevent undo actions from exiting edit state - (pushnew! objed-keeper-commands 'undo-fu-only-undo 'undo-fu-only-redo) + (add-to-list 'objed-keeper-commands 'undo-fu-only-undo) + (add-to-list 'objed-keeper-commands 'undo-fu-only-redo) (defvar +objed--extra-face-remaps nil) diff --git a/modules/editor/rotate-text/autoload.el b/modules/editor/rotate-text/autoload.el index 32fafc6dd..2125cbe01 100644 --- a/modules/editor/rotate-text/autoload.el +++ b/modules/editor/rotate-text/autoload.el @@ -2,9 +2,8 @@ ;;;###autoload (with-eval-after-load 'rotate-text - (pushnew! rotate-text-words - '("true" "false") - '("enable" "disable"))) + (add-to-list 'rotate-text-words '("true" "false")) + (add-to-list 'rotate-text-words '("enable" "disable"))) ;;;###autodef (cl-defun set-rotate-patterns! (modes &key symbols words patterns) diff --git a/modules/editor/whitespace/config.el b/modules/editor/whitespace/config.el index 50cf5c9e2..65eed61a1 100644 --- a/modules/editor/whitespace/config.el +++ b/modules/editor/whitespace/config.el @@ -142,9 +142,9 @@ or if the current buffer is read-only or not file-visiting." :when (modulep! +trim) :hook (doom-first-buffer . ws-butler-global-mode) :config - (pushnew! ws-butler-global-exempt-modes - 'special-mode - 'comint-mode - 'term-mode - 'eshell-mode - 'diff-mode)) + (dolist (mode '(special-mode + comint-mode + term-mode + eshell-mode + diff-mode)) + (add-to-list 'ws-butler-global-exempt-modes mode))) diff --git a/modules/email/wanderlust/config.el b/modules/email/wanderlust/config.el index 3063b1d6d..fe98e677c 100644 --- a/modules/email/wanderlust/config.el +++ b/modules/email/wanderlust/config.el @@ -110,6 +110,6 @@ ;; `evil-emacs-state-modes', and `wl-summary-mode' won't start in ;; `evil-emacs-state' through `wl-summary-mode-hook'. (add-hook 'wl-folder-mode-hook #'evil-emacs-state) - (pushnew! evil-emacs-state-modes 'wl-summary-mode)) + (add-to-list 'evil-emacs-state-modes 'wl-summary-mode)) (add-hook 'mime-edit-mode-hook #'auto-fill-mode)) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index e10955cf0..54d2ca973 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -1,7 +1,9 @@ ;;; lang/clojure/config.el -*- lexical-binding: t; -*- (after! projectile - (pushnew! projectile-project-root-files "project.clj" "build.boot" "deps.edn")) + (add-to-list 'projectile-project-root-files "deps.edn") + (add-to-list 'projectile-project-root-files "build.boot") + (add-to-list 'projectile-project-root-files "project.clj")) ;; Large clojure buffers tend to be slower than large buffers of other modes, so ;; it should have a lower threshold too. diff --git a/modules/lang/java/config.el b/modules/lang/java/config.el index ae0698ef0..895d3bb3b 100644 --- a/modules/lang/java/config.el +++ b/modules/lang/java/config.el @@ -18,7 +18,8 @@ If the depth is 1, the first directory in src/java/net/lissner/game/MyClass.java If the depth is 2, the first two directories are removed: net.lissner.game.") (after! projectile - (pushnew! projectile-project-root-files "gradlew" "build.gradle")) + (add-to-list 'projectile-project-root-files "gradlew") + (add-to-list 'projectile-project-root-files "build.gradle")) ;; diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index d233b4a79..7c02a1a59 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -1,8 +1,9 @@ ;;; lang/javascript/config.el -*- lexical-binding: t; -*- (after! projectile - (pushnew! projectile-project-root-files "package.json") - (pushnew! projectile-globally-ignored-directories "node_modules" "flow-typed")) + (add-to-list 'projectile-project-root-files "package.json") + (add-to-list 'projectile-globally-ignored-directories "node_modules") + (add-to-list 'projectile-globally-ignored-directories "flow-typed")) ;; diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index f451e8232..4ef7e92bd 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -1,7 +1,8 @@ ;;; lang/ocaml/config.el -*- lexical-binding: t; -*- (after! projectile - (pushnew! projectile-project-root-files "dune-project")) + (add-to-list 'projectile-project-root-files "dune-project")) + ;; ;;; Packages diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index f1aa15f67..3e9f9de80 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -489,19 +489,19 @@ relative to `org-directory', unless it is an absolute path." '(warning org-link)))) ;; Additional custom links for convenience - (pushnew! org-link-abbrev-alist - '("github" . "https://github.com/%s") - '("youtube" . "https://youtube.com/watch?v=%s") - '("google" . "https://google.com/search?q=") - '("gimages" . "https://google.com/images?q=%s") - '("gmap" . "https://maps.google.com/maps?q=%s") - '("kagi" . "https://kagi.com/search?q=%s") - '("duckduckgo" . "https://duckduckgo.com/?q=%s") - '("wikipedia" . "https://en.wikipedia.org/wiki/%s") - '("wolfram" . "https://wolframalpha.com/input/?i=%s") - '("doom-repo" . "https://github.com/doomemacs/doomemacs/%s") - `("emacsdir" . ,(doom-path doom-emacs-dir "%s")) - `("doomdir" . ,(doom-path doom-user-dir "%s"))) + (dolist (abbrev `(("github" . "https://github.com/%s") + ("youtube" . "https://youtube.com/watch?v=%s") + ("google" . "https://google.com/search?q=") + ("gimages" . "https://google.com/images?q=%s") + ("gmap" . "https://maps.google.com/maps?q=%s") + ("kagi" . "https://kagi.com/search?q=%s") + ("duckduckgo" . "https://duckduckgo.com/?q=%s") + ("wikipedia" . "https://en.wikipedia.org/wiki/%s") + ("wolfram" . "https://wolframalpha.com/input/?i=%s") + ("doom-repo" . "https://github.com/doomemacs/doomemacs/%s") + ("emacsdir" . ,(doom-path doom-emacs-dir "%s")) + ("doomdir" . ,(doom-path doom-user-dir "%s")))) + (add-to-list 'org-link-abbrev-alist abbrev)) (+org-define-basic-link "org" 'org-directory) (+org-define-basic-link "doom" 'doom-emacs-dir) diff --git a/modules/lang/org/contrib/dragndrop.el b/modules/lang/org/contrib/dragndrop.el index cd132cae0..3562f12f7 100644 --- a/modules/lang/org/contrib/dragndrop.el +++ b/modules/lang/org/contrib/dragndrop.el @@ -10,9 +10,8 @@ org-download-dnd-base64 :init ;; HACK We add these manually so that org-download is truly lazy-loaded - (pushnew! dnd-protocol-alist - '("^\\(?:https?\\|ftp\\|file\\|nfs\\):" . org-download-dnd) - '("^data:" . org-download-dnd-base64)) + (add-to-list 'dnd-protocol-alist '("^data:" . org-download-dnd-base64)) + (add-to-list 'dnd-protocol-alist '("^\\(?:https?\\|ftp\\|file\\|nfs\\):" . org-download-dnd)) (advice-add #'org-download-enable :override #'ignore) (after! org diff --git a/modules/lang/python/config.el b/modules/lang/python/config.el index 23b2b6d99..4b34ae362 100644 --- a/modules/lang/python/config.el +++ b/modules/lang/python/config.el @@ -7,7 +7,9 @@ "Command to initialize the jupyter REPL for `+python/open-jupyter-repl'.") (after! projectile - (pushnew! projectile-project-root-files "pyproject.toml" "requirements.txt" "setup.py")) + (add-to-list 'projectile-project-root-files "setup.py") + (add-to-list 'projectile-project-root-files "requirements.txt") + (add-to-list 'projectile-project-root-files "pyproject.toml")) ;; diff --git a/modules/os/macos/config.el b/modules/os/macos/config.el index c804d9cde..6a534a852 100644 --- a/modules/os/macos/config.el +++ b/modules/os/macos/config.el @@ -29,7 +29,8 @@ ;; Integrate with Keychain (after! auth-source - (pushnew! auth-sources 'macos-keychain-internet 'macos-keychain-generic)) + (add-to-list 'auth-sources 'macos-keychain-internet) + (add-to-list 'auth-sources 'macos-keychain-generic)) ;; Delete files to trash on macOS, as an extra layer of precaution against ;; accidentally deleting wanted files. diff --git a/modules/term/eshell/config.el b/modules/term/eshell/config.el index fdd14b43c..086074b1f 100644 --- a/modules/term/eshell/config.el +++ b/modules/term/eshell/config.el @@ -146,7 +146,8 @@ You should use `set-eshell-alias!' to change this.") ;; Visual commands require a proper terminal. Eshell can't handle that, so ;; it delegates these commands to a term buffer. (after! em-term - (pushnew! eshell-visual-commands "tmux" "htop" "vim" "nvim" "ncmpcpp")) + (dolist (cmd '("tmux" "htop" "vim" "nvim" "ncmpcpp")) + (add-to-list 'eshell-visual-commands cmd))) (after! em-alias (setq +eshell--default-aliases eshell-command-aliases-list diff --git a/modules/ui/ophints/config.el b/modules/ui/ophints/config.el index ebefc583e..32747f1e6 100644 --- a/modules/ui/ophints/config.el +++ b/modules/ui/ophints/config.el @@ -11,57 +11,56 @@ evil-goggles-enable-delete nil evil-goggles-enable-change nil) :config - (pushnew! evil-goggles--commands - '(evil-magit-yank-whole-line - :face evil-goggles-yank-face - :switch evil-goggles-enable-yank - :advice evil-goggles--generic-async-advice) - '(+evil:yank-unindented - :face evil-goggles-yank-face - :switch evil-goggles-enable-yank - :advice evil-goggles--generic-async-advice) - '(+eval:region - :face evil-goggles-yank-face - :switch evil-goggles-enable-yank - :advice evil-goggles--generic-async-advice)) - (when (modulep! :editor lispy) - (pushnew! evil-goggles--commands - '(lispyville-delete - :face evil-goggles-delete-face - :switch evil-goggles-enable-delete - :advice evil-goggles--generic-blocking-advice) - '(lispyville-delete-line - :face evil-goggles-delete-face - :switch evil-goggles-enable-delete - :advice evil-goggles--delete-line-advice) - '(lispyville-yank - :face evil-goggles-yank-face - :switch evil-goggles-enable-yank - :advice evil-goggles--generic-async-advice) - '(lispyville-yank-line - :face evil-goggles-yank-face - :switch evil-goggles-enable-yank - :advice evil-goggles--generic-async-advice) - '(lispyville-change - :face evil-goggles-change-face - :switch evil-goggles-enable-change - :advice evil-goggles--generic-blocking-advice) - '(lispyville-change-line - :face evil-goggles-change-face - :switch evil-goggles-enable-change - :advice evil-goggles--generic-blocking-advice) - '(lispyville-change-whole-line - :face evil-goggles-change-face - :switch evil-goggles-enable-change - :advice evil-goggles--generic-blocking-advice) - '(lispyville-indent - :face evil-goggles-indent-face - :switch evil-goggles-enable-indent - :advice evil-goggles--generic-async-advice) - '(lispyville-join - :face evil-goggles-join-face - :switch evil-goggles-enable-join - :advice evil-goggles--join-advice)))) + (dolist (cmd `((evil-magit-yank-whole-line + :face evil-goggles-yank-face + :switch evil-goggles-enable-yank + :advice evil-goggles--generic-async-advice) + (+evil:yank-unindented + :face evil-goggles-yank-face + :switch evil-goggles-enable-yank + :advice evil-goggles--generic-async-advice) + (+eval:region + :face evil-goggles-yank-face + :switch evil-goggles-enable-yank + :advice evil-goggles--generic-async-advice) + ,@(when (modulep! :editor lispy) + '((lispyville-delete + :face evil-goggles-delete-face + :switch evil-goggles-enable-delete + :advice evil-goggles--generic-blocking-advice) + (lispyville-delete-line + :face evil-goggles-delete-face + :switch evil-goggles-enable-delete + :advice evil-goggles--delete-line-advice) + (lispyville-yank + :face evil-goggles-yank-face + :switch evil-goggles-enable-yank + :advice evil-goggles--generic-async-advice) + (lispyville-yank-line + :face evil-goggles-yank-face + :switch evil-goggles-enable-yank + :advice evil-goggles--generic-async-advice) + (lispyville-change + :face evil-goggles-change-face + :switch evil-goggles-enable-change + :advice evil-goggles--generic-blocking-advice) + (lispyville-change-line + :face evil-goggles-change-face + :switch evil-goggles-enable-change + :advice evil-goggles--generic-blocking-advice) + (lispyville-change-whole-line + :face evil-goggles-change-face + :switch evil-goggles-enable-change + :advice evil-goggles--generic-blocking-advice) + (lispyville-indent + :face evil-goggles-indent-face + :switch evil-goggles-enable-indent + :advice evil-goggles--generic-async-advice) + (lispyville-join + :face evil-goggles-join-face + :switch evil-goggles-enable-join + :advice evil-goggles--join-advice))))) + (add-to-list 'evil-goggles--commands cmd))) (use-package! goggles :unless (modulep! :editor evil) diff --git a/modules/ui/zen/config.el b/modules/ui/zen/config.el index 9ab63d3a5..2c30f6f76 100644 --- a/modules/ui/zen/config.el +++ b/modules/ui/zen/config.el @@ -57,20 +57,20 @@ (when (apply #'derived-mode-p +zen-mixed-pitch-modes) (mixed-pitch-mode (if writeroom-mode +1 -1)))) - (pushnew! mixed-pitch-fixed-pitch-faces - 'solaire-line-number-face - 'org-date - 'org-footnote - 'org-special-keyword - 'org-property-value - 'org-ref-cite-face - 'org-tag - 'org-todo-keyword-todo - 'org-todo-keyword-habt - 'org-todo-keyword-done - 'org-todo-keyword-wait - 'org-todo-keyword-kill - 'org-todo-keyword-outd - 'org-todo - 'org-done - 'font-lock-comment-face)) + (dolist (face '(solaire-line-number-face + org-date + org-footnote + org-special-keyword + org-property-value + org-ref-cite-face + org-tag + org-todo-keyword-todo + org-todo-keyword-habt + org-todo-keyword-done + org-todo-keyword-wait + org-todo-keyword-kill + org-todo-keyword-outd + org-todo + org-done + font-lock-comment-face)) + (add-to-list 'mixed-pitch-fixed-pitch-faces face)))