branch: externals/marginalia commit 2b926ae572a42f5265f699995c19f5a29a02aa58 Author: Clemens Radermacher <clem...@posteo.net> Commit: Daniel Mendler <m...@daniel-mendler.de>
Avoid annotations for host and remote path completions --- marginalia.el | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/marginalia.el b/marginalia.el index 1d3b7fe..94595d8 100644 --- a/marginalia.el +++ b/marginalia.el @@ -622,19 +622,29 @@ using `minibuffer-force-complete' on the candidate CAND." ;; necessary information (there's not much else we can do) cand)) +(defun marginalia--remote-p (path) + "Return t if PATH is a remote path." + (string-match-p "\\`/[^:]+:" path)) + (defun marginalia-annotate-file (cand) - "Annotate file CAND with its size, modification time and other attributes." - (when-let ((attributes (file-attributes (marginalia--full-candidate cand) 'string))) - (marginalia--fields - ((file-attribute-modes attributes) :face 'marginalia-file-modes) - ((format "%s:%s" - (file-attribute-user-id attributes) - (file-attribute-group-id attributes)) - :width 12 :face 'marginalia-file-owner) - ((file-size-human-readable (file-attribute-size attributes)) :width 7 :face 'marginalia-size) - ((format-time-string - "%b %d %H:%M" - (file-attribute-modification-time attributes)) :face 'marginalia-date)))) + "Annotate file CAND with its size, modification time and other attributes. +These annotations are skipped for remote paths." + (if (or (marginalia--remote-p cand) + (when-let (win (active-minibuffer-window)) + (with-current-buffer (window-buffer win) + (marginalia--remote-p (minibuffer-contents-no-properties))))) + (marginalia--documentation "*Remote*") + (when-let (attributes (file-attributes (marginalia--full-candidate cand) 'string)) + (marginalia--fields + ((file-attribute-modes attributes) :face 'marginalia-file-modes) + ((format "%s:%s" + (file-attribute-user-id attributes) + (file-attribute-group-id attributes)) + :width 12 :face 'marginalia-file-owner) + ((file-size-human-readable (file-attribute-size attributes)) :width 7 :face 'marginalia-size) + ((format-time-string + "%b %d %H:%M" + (file-attribute-modification-time attributes)) :face 'marginalia-date))))) (defun marginalia-annotate-project-file (cand) "Annotate file CAND with its size, modification time and other attributes."