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

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

[elpa] externals/marginalia db5812c: Split marginalia-annotate-file


From: ELPA Syncer
Subject: [elpa] externals/marginalia db5812c: Split marginalia-annotate-file
Date: Tue, 3 Aug 2021 08:57:11 -0400 (EDT)

branch: externals/marginalia
commit db5812c8750f729627a927aa1d0dd9178ffc2b58
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Split marginalia-annotate-file
---
 marginalia.el | 45 ++++++++++++++++++++++++++-------------------
 1 file changed, 26 insertions(+), 19 deletions(-)

diff --git a/marginalia.el b/marginalia.el
index f6cde1c..223cdb2 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -790,29 +790,36 @@ component of a full file path."
       ;; 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 "\\`/[^/|:]+:" (substitute-in-file-name path)))
+(defun marginalia--remote-protocol (path)
+  "Return the remote protocol of PATH."
+  (save-match-data
+    (setq path (substitute-in-file-name path))
+    (and (string-match "\\`/\\([^/|:]+\\):" path)
+         (match-string 1 path))))
+
+(defun marginalia--annotate-local-file (cand)
+  "Annotate local file CAND."
+  (when-let (attrs (file-attributes (substitute-in-file-name
+                                     (marginalia--full-candidate cand))
+                                    'integer))
+    (marginalia--fields
+     ((marginalia--file-owner attrs)
+      :width 12 :face 'marginalia-file-owner)
+     ((marginalia--file-modes attrs))
+     ((file-size-human-readable (file-attribute-size attrs))
+      :face 'marginalia-size :width -7)
+     ((marginalia--time (file-attribute-modification-time attrs))
+      :face 'marginalia-date :width -12))))
 
 (defun marginalia-annotate-file (cand)
   "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--fields ("*Remote*" :face 'marginalia-documentation))
-    (when-let (attrs (file-attributes (substitute-in-file-name
-                                       (marginalia--full-candidate cand))
-                                      'integer))
-      (marginalia--fields
-       ((marginalia--file-owner attrs)
-        :width 12 :face 'marginalia-file-owner)
-       ((marginalia--file-modes attrs))
-       ((file-size-human-readable (file-attribute-size attrs))
-        :face 'marginalia-size :width -7)
-       ((marginalia--time (file-attribute-modification-time attrs))
-        :face 'marginalia-date :width -12)))))
+  (if-let (remote (or (marginalia--remote-protocol cand)
+                      (when-let (win (active-minibuffer-window))
+                        (with-current-buffer (window-buffer win)
+                          (marginalia--remote-protocol 
(minibuffer-contents-no-properties))))))
+      (marginalia--fields (remote :format "*%s*" :face 
'marginalia-documentation))
+    (marginalia--annotate-local-file cand)))
 
 (defun marginalia--file-owner (attrs)
   "Return file owner given ATTRS."



reply via email to

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