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

    magit--get-file-icon: New function
---
 lisp/magit-diff.el | 33 +++++++++++++++------------------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index d25a05627d3..7c844ed4443 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -2496,32 +2496,29 @@ keymap is the parent of their keymaps."
   "Show the status, filename and icon (using the `all-the-icons' package).
 You have to explicitly install the `all-the-icons' package, else this
 function errors."
-  (cl-flet ((icon (if (or (eq kind 'module) (string-suffix-p "/" file))
-                      'all-the-icons-icon-for-dir
-                    'all-the-icons-icon-for-file)))
-    (cl-letf (((symbol-function 'all-the-icons-dir-is-submodule)
-               (if (eq kind 'module)
-                   (lambda (_) t)
-                 (symbol-function 'all-the-icons-dir-is-submodule))))
-      (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))))
+  (magit--get-file-icon kind file face status orig
+                        'all-the-icons-icon-for-file
+                        'all-the-icons-icon-for-dir
+                        'all-the-icons-dir-is-submodule))
 
 (defun magit-format-file-nerd-icons (kind file face &optional status orig)
   "Show the status, filename and icon (using the `nerd-icons' package).
 You have to explicitly install the `nerd-icons' package, else this
 function errors."
+  (magit--get-file-icon kind file face status orig
+                        'nerd-icons-icon-for-file
+                        'nerd-icons-icon-for-dir
+                        'nerd-icons-dir-is-submodule))
+
+(defun magit--get-file-icon ( kind file face status orig
+                              icon-for-file icon-for-dir dir-is-submodule)
   (cl-flet ((icon (if (or (eq kind 'module) (string-suffix-p "/" file))
-                      'nerd-icons-icon-for-dir
-                    'nerd-icons-icon-for-file)))
-    (cl-letf (((symbol-function 'nerd-icons-dir-is-submodule)
+                      icon-for-dir
+                    icon-for-file)))
+    (cl-letf (((symbol-function dir-is-submodule)
                (if (eq kind 'module)
                    (lambda (_) t)
-                 (symbol-function 'nerd-icons-dir-is-submodule))))
+                 (symbol-function dir-is-submodule))))
       (propertize (concat (and status (format "%-11s" status))
                           (if orig
                               (format "%s %s -> %s %s"

Reply via email to