diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-12 10:20:45 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-12 10:20:45 -0500 |
| commit | e170eccc2bafd36befedc5edc0792530f9fd21d1 (patch) | |
| tree | 6b3ba676c86206546e47e3b94de9cba9880b9adf | |
| parent | 914d4ea036f56518876396ff1aec75d1edb6cf3d (diff) | |
| download | dotemacs-e170eccc2bafd36befedc5edc0792530f9fd21d1.tar.gz dotemacs-e170eccc2bafd36befedc5edc0792530f9fd21d1.zip | |
fix(dashboard): add EMMS exclusion to recentf-exclude without clobbering it
dashboard-config used setq on recentf-exclude, discarding the five exclusions system-defaults adds earlier in init order (bookmarks, elpa, recentf, ElfeedDB, airootfs). Extract the EMMS exclusion into cj/--dashboard-exclude-emms-from-recentf (the :config side-effect was not reachable for a test) and use add-to-list so prior entries survive. Two ERT tests cover preservation and the added pattern.
| -rw-r--r-- | modules/dashboard-config.el | 8 | ||||
| -rw-r--r-- | tests/test-dashboard-config-recentf-exclude.el | 33 |
2 files changed, 40 insertions, 1 deletions
diff --git a/modules/dashboard-config.el b/modules/dashboard-config.el index b4e4545d0..c70b78c2d 100644 --- a/modules/dashboard-config.el +++ b/modules/dashboard-config.el @@ -145,6 +145,12 @@ window." ;; --------------------------------- Dashboard --------------------------------- ;; a useful startup screen for Emacs +(defun cj/--dashboard-exclude-emms-from-recentf () + "Exclude the EMMS history file from recentf. +Adds to `recentf-exclude' so entries set elsewhere (e.g. in +system-defaults) are preserved rather than overwritten." + (add-to-list 'recentf-exclude "/emms/history")) + (use-package dashboard :demand t :hook (emacs-startup . cj/dashboard-only) @@ -196,7 +202,7 @@ window." (setq dashboard-bookmarks-show-path nil) ;; don't show paths in bookmarks (setq dashboard-recentf-show-base t) ;; show filename, not full path (setq dashboard-recentf-item-format "%s") - (setq recentf-exclude '("/emms/history")) ;; exclude EMMS history from recent files + (cj/--dashboard-exclude-emms-from-recentf) ;; exclude EMMS history from recent files (setq dashboard-set-footer nil) ;; don't show footer and quotes ;; == navigation diff --git a/tests/test-dashboard-config-recentf-exclude.el b/tests/test-dashboard-config-recentf-exclude.el new file mode 100644 index 000000000..f35b3eda1 --- /dev/null +++ b/tests/test-dashboard-config-recentf-exclude.el @@ -0,0 +1,33 @@ +;;; test-dashboard-config-recentf-exclude.el --- recentf-exclude is not clobbered -*- lexical-binding: t; -*- + +;;; Commentary: +;; `cj/--dashboard-exclude-emms-from-recentf' adds the EMMS history pattern +;; to `recentf-exclude'. It must ADD to the list, not replace it, or it +;; wipes the exclusions system-defaults.el set earlier in init order +;; (emacs_bookmarks, elpa, recentf, ElfeedDB, airootfs). + +;;; Code: + +(require 'ert) +(require 'recentf) ; makes `recentf-exclude' special so the let below is dynamic + +(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) +(require 'testutil-general) +(require 'dashboard-config) + +(ert-deftest test-dashboard-config-exclude-emms-preserves-existing-entries () + "Error: excluding the EMMS history preserves prior recentf-exclude entries." + (let ((recentf-exclude (list "emacs_bookmarks" "airootfs"))) + (cj/--dashboard-exclude-emms-from-recentf) + (should (member "/emms/history" recentf-exclude)) + (should (member "emacs_bookmarks" recentf-exclude)) + (should (member "airootfs" recentf-exclude)))) + +(ert-deftest test-dashboard-config-exclude-emms-adds-the-pattern () + "Normal: the EMMS history pattern is present after the call." + (let ((recentf-exclude nil)) + (cj/--dashboard-exclude-emms-from-recentf) + (should (member "/emms/history" recentf-exclude)))) + +(provide 'test-dashboard-config-recentf-exclude) +;;; test-dashboard-config-recentf-exclude.el ends here |
