From f102a092268d24d5dd241e054efbcbd5fd3d4c1c Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 27 Jun 2026 21:54:05 -0400 Subject: fix(nerd-icons): color completing-read folders via the completion dir face The cj/--nerd-icons-color-dir advice forces nerd-icons-yellow onto every dir icon, which wins over nerd-icons-completion's inherit-behind dir face, so setting nerd-icons-completion-dir-face had no visible effect and folders just followed nerd-icons-yellow. Redefine the file-category completion icon to copy the dir icon and prepend nerd-icons-completion-dir-face so it takes the foreground. The copy keeps nerd-icons' memoized original untouched, so dired and dirvish folders are unaffected. Now completing-read folders carry their own color while file icons keep their type face. --- modules/nerd-icons-config.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/nerd-icons-config.el b/modules/nerd-icons-config.el index e2edb0717..e38db7d80 100644 --- a/modules/nerd-icons-config.el +++ b/modules/nerd-icons-config.el @@ -72,7 +72,20 @@ every call. The `memq' check skips when the face is already present." :after (nerd-icons marginalia) :hook (marginalia-mode . nerd-icons-completion-marginalia-setup) :config - (nerd-icons-completion-mode)) + (nerd-icons-completion-mode) + ;; The `cj/--nerd-icons-color-dir' advice forces `nerd-icons-yellow' onto every + ;; dir icon, so the package's inherit-behind `nerd-icons-completion-dir-face' + ;; can never win. Redefine the file-category icon so completing-read folders + ;; carry the dir face: copy the icon first (the memoized original stays + ;; untouched, so dired/dirvish folders are unaffected) and prepend the dir face + ;; so it takes the foreground. Files keep their own type face. + (cl-defmethod nerd-icons-completion-get-icon (cand (_cat (eql file))) + (if (string-suffix-p "/" cand) + (let ((icon (copy-sequence + (nerd-icons-icon-for-dir cand :height nerd-icons-completion-icon-size)))) + (add-face-text-property 0 (length icon) 'nerd-icons-completion-dir-face nil icon) + (concat icon " ")) + (concat (nerd-icons-icon-for-file cand :height nerd-icons-completion-icon-size) " ")))) (use-package nerd-icons-ibuffer :after nerd-icons -- cgit v1.2.3