branch: elpa/magit
commit 6df061d4cfa2d09c7f79978ecf505af62f2aa710
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    magit-format-file-{all-the,nerd}-icons: Use proper icons for modules
---
 lisp/magit-diff.el | 45 +++++++++++++++++++++++----------------------
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 111480032c5..280de4a51f1 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -85,9 +85,6 @@
 (declare-function magit-smerge-keep-base "magit-apply" ())
 (declare-function magit-smerge-keep-lower "magit-apply" ())
 
-(declare-function all-the-icons-icon-for-file "ext:all-the-icons")
-(declare-function nerd-icons-icon-for-file "ext:nerd-icons")
-
 (eval-when-compile
   (cl-pushnew 'orig-rev eieio--known-slot-names)
   (cl-pushnew 'action-type eieio--known-slot-names)
@@ -2507,25 +2504,29 @@ keymap is the parent of their keymaps."
                       (if orig (format "%s -> %s" orig file) file))
               'font-lock-face face))
 
-(defun magit-format-file-all-the-icons (_kind file face &optional status orig)
-  (propertize
-   (concat (and status (format "%-11s" status))
-           (if orig
-               (format "%s %s -> %s %s"
-                       (all-the-icons-icon-for-file orig) orig
-                       (all-the-icons-icon-for-file file) file)
-             (format "%s %s" (all-the-icons-icon-for-file file) file)))
-   'font-lock-face face))
-
-(defun magit-format-file-nerd-icons (_kind file face &optional status orig)
-  (propertize
-   (concat (and status (format "%-11s" status))
-           (if orig
-               (format "%s %s -> %s %s"
-                       (nerd-icons-icon-for-file orig) orig
-                       (nerd-icons-icon-for-file file) file)
-             (format "%s %s" (nerd-icons-icon-for-file file) file)))
-   'font-lock-face face))
+(defun magit-format-file-all-the-icons (kind file face &optional status orig)
+  (cl-flet ((icon (if (or (eq kind 'module) (string-suffix-p "/" file))
+                      'all-the-icons-icon-for-dir
+                    'all-the-icons-icon-for-file)))
+    (propertize (concat (and status (format "%-11s" status))
+                        (if orig
+                            (format "%s %s -> %s %s"
+                                    (icon orig) orig
+                                    (icon file) file)
+                          (format "%s %s" (icon file) file)))
+                'font-lock-face face)))
+
+(defun magit-format-file-nerd-icons (kind file face &optional status orig)
+  (cl-flet ((icon (if (or (eq kind 'module) (string-suffix-p "/" file))
+                      'nerd-icons-icon-for-dir
+                    'nerd-icons-icon-for-file)))
+    (propertize (concat (and status (format "%-11s" status))
+                        (if orig
+                            (format "%s %s -> %s %s"
+                                    (icon orig) orig
+                                    (icon file) file)
+                          (format "%s %s" (icon file) file)))
+                'font-lock-face face)))
 
 (defun magit-diff-wash-submodule ()
   ;; See `show_submodule_summary' in submodule.c and "this" commit.

Reply via email to