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

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

[elpa] externals/vertico c8cfd3e608 1/2: Extract function vertico--forma


From: ELPA Syncer
Subject: [elpa] externals/vertico c8cfd3e608 1/2: Extract function vertico--format-group-title
Date: Tue, 28 Dec 2021 18:57:44 -0500 (EST)

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

    Extract function vertico--format-group-title
---
 vertico.el | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/vertico.el b/vertico.el
index f67df0104b..54ecf57106 100644
--- a/vertico.el
+++ b/vertico.el
@@ -496,14 +496,23 @@ The function is configured by BY, BSIZE, BINDEX, BPRED 
and PRED."
                                (max 0 (+ vertico--index off 1 (- 
vertico-count))
                                     (min (- vertico--index off corr) 
vertico--scroll))))))
 
+(defun vertico--format-group-title (title cand)
+  "Format group TITLE given the current CAND."
+  (when (string-prefix-p title cand)
+    ;; Highlight title if title is a prefix of the candidate
+    (setq title (substring (car (funcall vertico--highlight-function
+                                         (list (propertize cand 'face 
'vertico-group-title))))
+                           0 (length title)))
+    (vertico--remove-face 0 (length title) 'completions-first-difference 
title))
+  (format (concat vertico-group-format "\n") title))
+
 (defun vertico--arrange-candidates ()
   "Arrange candidates."
   (vertico--update-scroll)
   (let ((curr-line 0) lines)
     ;; Compute group titles
     (let* (title (index vertico--scroll)
-           (group-fun (vertico--metadata-get 'group-function))
-           (group-format (and group-fun vertico-group-format (concat 
vertico-group-format "\n")))
+           (group-fun (and vertico-group-format (vertico--metadata-get 
'group-function)))
            (candidates
             (thread-last (seq-subseq vertico--candidates index
                                      (min (+ index vertico-count) 
vertico--total))
@@ -511,19 +520,10 @@ The function is configured by BY, BSIZE, BINDEX, BPRED 
and PRED."
               (vertico--affixate))))
       (dolist (cand candidates)
         (let ((str (car cand)))
-          (when-let (new-title (and group-format (funcall group-fun str nil)))
+          (when-let (new-title (and group-fun (funcall group-fun str nil)))
             (unless (equal title new-title)
               (setq title new-title)
-              ;; Restore group title highlighting for prefix titles
-              (when (string-prefix-p title str)
-                (setq title (substring
-                             (car (funcall
-                                   vertico--highlight-function
-                                   ;; Remove all properties from the title
-                                   (list (propertize str 'face 
'vertico-group-title))))
-                             0 (length title)))
-                (vertico--remove-face 0 (length title) 
'completions-first-difference title))
-              (push (format group-format title) lines))
+              (push (vertico--format-group-title title str) lines))
             (setcar cand (funcall group-fun str 'transform))))
         (when (= index vertico--index)
           (setq curr-line (length lines)))



reply via email to

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