emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/marginalia 2b926ae 190/241: Avoid annotations for host


From: Stefan Monnier
Subject: [elpa] externals/marginalia 2b926ae 190/241: Avoid annotations for host and remote path completions
Date: Fri, 28 May 2021 20:49:24 -0400 (EDT)

branch: externals/marginalia
commit 2b926ae572a42f5265f699995c19f5a29a02aa58
Author: Clemens Radermacher <clemera@posteo.net>
Commit: Daniel Mendler <mail@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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]