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

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

[elpa] externals/vertico 0f896ef0ba: vertico-flat-format: Add :only-matc


From: ELPA Syncer
Subject: [elpa] externals/vertico 0f896ef0ba: vertico-flat-format: Add :only-match format
Date: Sun, 2 Jan 2022 12:57:45 -0500 (EST)

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

    vertico-flat-format: Add :only-match format
---
 extensions/vertico-flat.el | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/extensions/vertico-flat.el b/extensions/vertico-flat.el
index a738da57cb..8abdfc81a2 100644
--- a/extensions/vertico-flat.el
+++ b/extensions/vertico-flat.el
@@ -48,11 +48,12 @@
   :group 'vertico)
 
 (defcustom vertico-flat-format
-  '(:left      #("{" 0 1 (face minibuffer-prompt))
-    :separator #(" | " 0 3 (face minibuffer-prompt))
-    :right     #("}" 0 1 (face minibuffer-prompt))
-    :ellipsis  #("…" 0 1 (face minibuffer-prompt))
-    :no-match  "[No match]")
+  '(:left       #("{" 0 1 (face minibuffer-prompt))
+    :separator  #(" | " 0 3 (face minibuffer-prompt))
+    :right      #("}" 0 1 (face minibuffer-prompt))
+    :ellipsis   #("…" 0 1 (face minibuffer-prompt))
+    :only-match #("[%s]" 0 4 (face success))
+    :no-match   #("[No match]" 0 10 (face error)))
   "Formatting strings."
   :type 'plist
   :group 'vertico)
@@ -72,11 +73,13 @@
   (overlay-put
    vertico--candidates-ov 'after-string
    (concat #(" " 0 1 (cursor t))
-           (if candidates
-               (concat (plist-get vertico-flat-format :left)
-                       (string-join candidates (plist-get vertico-flat-format 
:separator))
-                       (plist-get vertico-flat-format :right))
-             (plist-get vertico-flat-format :no-match)))))
+           (pcase candidates
+             ('nil (plist-get vertico-flat-format :no-match))
+             ((and `(,cand) (let fmt (plist-get vertico-flat-format 
:only-match)) (guard fmt))
+              (format fmt (substring-no-properties cand)))
+             (_ (concat (plist-get vertico-flat-format :left)
+                        (string-join candidates (plist-get vertico-flat-format 
:separator))
+                        (plist-get vertico-flat-format :right)))))))
 
 (defun vertico-flat--arrange-candidates ()
   "Arrange candidates."



reply via email to

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