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

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

[elpa] externals/marginalia 501a3b3 056/241: simplify marginalia--align


From: Stefan Monnier
Subject: [elpa] externals/marginalia 501a3b3 056/241: simplify marginalia--align
Date: Fri, 28 May 2021 20:48:56 -0400 (EDT)

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

    simplify marginalia--align
---
 marginalia.el | 44 +++++++++++++++-----------------------------
 1 file changed, 15 insertions(+), 29 deletions(-)

diff --git a/marginalia.el b/marginalia.el
index 5ca447f..51c01d4 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -204,13 +204,15 @@ determine it."
 (defvar marginalia--original-category nil
   "Original category reported by completion metadata.")
 
-(defmacro marginalia--align (&rest align)
-  "Align annotations to ALIGN."
-  (concat " "
-          (propertize
-           " "
-           'display
-           `(space :align-to (- right-fringe ,@align)))))
+(defun marginalia--align (&rest strs)
+  "Align STRS at the right margin."
+  (let ((str (apply #'concat strs)))
+    (concat " "
+            (propertize
+             " "
+             'display
+             `(space :align-to (- right-fringe ,(length str))))
+            str)))
 
 (defsubst marginalia--separator ()
   "Return separator string."
@@ -218,8 +220,7 @@ determine it."
 
 (defun marginalia--documentation (str)
   "Format documentation string STR."
-  (concat
-   (marginalia--align marginalia-documentation-width)
+  (marginalia--align
    (propertize (marginalia--truncate str marginalia-documentation-width)
                'face 'marginalia-documentation)))
 
@@ -265,8 +266,7 @@ This hash table is needed to speed up 
`marginalia-annotate-command-binding'.")
   "Annotate variable CAND with its documentation string."
   (let ((sym (intern cand)))
     (when-let (doc (documentation-property sym 'variable-documentation))
-      (concat
-       (marginalia--align marginalia-variable-width 
marginalia-documentation-width)
+      (marginalia--align
        (propertize (marginalia--truncate (format "%S" (if (boundp sym)
                                                           (symbol-value sym)
                                                         'unbound))
@@ -280,8 +280,7 @@ This hash table is needed to speed up 
`marginalia-annotate-command-binding'.")
   "Annotate face CAND with documentation string and face example."
   (let ((sym (intern cand)))
     (when-let (doc (documentation-property sym 'face-documentation))
-      (concat
-       (marginalia--align marginalia-documentation-width 
marginalia-separator-width 26)
+      (marginalia--align
        (propertize "abcdefghijklmNOPQRSTUVWXYZ" 'face sym)
        (marginalia--separator)
        (propertize (marginalia--truncate doc marginalia-documentation-width)
@@ -295,12 +294,7 @@ This hash table is needed to speed up 
`marginalia-annotate-command-binding'.")
                         (if-let (built-in (assq pkg package--builtins))
                             (package--from-builtin built-in)
                           (car (alist-get pkg package-archive-contents))))))
-    (concat
-     (marginalia--align 16 ;; version
-                        marginalia-separator-width
-                        8 ;; archive
-                        marginalia-separator-width
-                        marginalia-documentation-width)
+    (marginalia--align
      (propertize (format "%-16s" (package-version-join (package-desc-version 
desc)))
                  'face 'marginalia-version)
      (marginalia--separator)
@@ -318,11 +312,7 @@ This hash table is needed to speed up 
`marginalia-annotate-command-binding'.")
 (defun marginalia-annotate-buffer (cand)
   "Annotate buffer CAND with modification status, file name and major mode."
   (when-let (buffer (get-buffer cand))
-    (concat
-     (marginalia--align 2 ;; modification
-                        30 ;; mode
-                        marginalia-separator-width
-                        marginalia-file-name-width)
+    (marginalia--align
      (if (buffer-modified-p buffer) "*" " ")
      (if (buffer-local-value 'buffer-read-only buffer) "%" " ")
      " "
@@ -369,11 +359,7 @@ using `minibuffer-force-complete' on the candidate CAND."
 (defun marginalia-annotate-file (cand)
   "Annotate file CAND with its size and modification time."
   (when-let ((attributes (file-attributes (marginalia--full-candidate cand) 
'string)))
-    (concat
-     (marginalia--align 10 marginalia-separator-width ;; modes
-                        12 marginalia-separator-width ;; user:group
-                        7 marginalia-separator-width ;; size
-                        12) ;; date
+    (marginalia--align
      (propertize (file-attribute-modes attributes)
                  'face 'marginalia-file-modes)
      (marginalia--separator)



reply via email to

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