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

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

[elpa] externals/marginalia c66d301dd1: Simplify alignment code


From: ELPA Syncer
Subject: [elpa] externals/marginalia c66d301dd1: Simplify alignment code
Date: Fri, 14 Jan 2022 16:57:38 -0500 (EST)

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

    Simplify alignment code
---
 marginalia.el | 33 +++++++++++++++------------------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/marginalia.el b/marginalia.el
index d32e2f54c3..7b0a8dde3a 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -1087,30 +1087,27 @@ Selectrum."
 
 (defun marginalia--align (cands)
   "Align annotations of CANDS according to `marginalia-align'."
-  (setq cands
-        (cl-loop for (cand . ann) in cands collect
-                 (let ((annw (1- (string-width ann))))
-                   (when-let (align (text-property-any 0 (length ann) 
'marginalia--align t ann))
-                     (let ((suffix-width (string-width (substring ann 0 
align))))
-                       (cl-decf annw suffix-width)
-                       (setq marginalia--candw-max
-                             (max marginalia--candw-max
-                                  (+ (string-width cand) suffix-width)))))
-                   `(,cand ,ann . ,annw))))
-  (setq marginalia--candw-max
-        (* (ceiling marginalia--candw-max
-                    marginalia--candw-step)
-           marginalia--candw-step))
-  (cl-loop for (cand ann . annw) in cands collect
+  (cl-loop for (cand . ann) in cands do
+           (when-let (align (text-property-any 0 (length ann) 
'marginalia--align t ann))
+             (setq marginalia--candw-max
+                   (max marginalia--candw-max
+                        (+ (string-width cand)
+                           (string-width (substring ann 0 align)))))))
+  (setq marginalia--candw-max (* (ceiling marginalia--candw-max
+                                          marginalia--candw-step)
+                                 marginalia--candw-step))
+  (cl-loop for (cand . ann) in cands collect
            (progn
              (when-let (align (text-property-any 0 (length ann) 
'marginalia--align t ann))
                (put-text-property
                 align (1+ align) 'display
                 `(space :align-to
                         ,(pcase-exhaustive marginalia-align
-                          ('center `(+ center ,marginalia-align-offset))
-                          ('left `(+ left ,marginalia-align-offset 
,marginalia--candw-max))
-                          ('right `(+ right ,marginalia-align-offset ,(- 
annw)))))
+                           ('center `(+ center ,marginalia-align-offset))
+                           ('left `(+ left ,(+ marginalia-align-offset 
marginalia--candw-max)))
+                           ('right `(+ right ,(+ marginalia-align-offset 1
+                                                 (- (string-width (substring 
ann 0 align))
+                                                    (string-width ann)))))))
                 ann))
              (list cand "" ann))))
 



reply via email to

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