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"