branch: externals/embark
commit 3579f1fd0d85428dd075bb8af6a61a576a9266e7
Author: Daniel Mendler <m...@daniel-mendler.de>
Commit: Daniel Mendler <m...@daniel-mendler.de>

    Add minibuffer indicators for Vertico and Selectrum (Fix #427)
---
 embark.el | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/embark.el b/embark.el
index 66f6d2c..e72c588 100644
--- a/embark.el
+++ b/embark.el
@@ -3127,7 +3127,18 @@ Return the category metadatum as the type of the 
candidates."
     (cons (completion-metadata-get (embark--metadata) 'category)
           vertico--candidates)))
 
+(defun embark--vertico-indicator ()
+  "Embark indicator highlighting the current Vertico candidate."
+  (let ((fr face-remapping-alist))
+    (lambda (&optional keymap _targets _prefix)
+      (when vertico--input
+        (setq-local face-remapping-alist
+                    (if keymap
+                        (cons '(vertico-current . embark-target) fr)
+                      fr))))))
+
 (with-eval-after-load 'vertico
+  (add-hook 'embark-indicators #'embark--vertico-indicator)
   (add-hook 'embark-target-finders #'embark--vertico-selected)
   (add-hook 'embark-candidate-collectors #'embark--vertico-candidates))
 
@@ -3162,7 +3173,18 @@ Return the category metadatum as the type of the 
candidates."
           ;; Pass relative file names for dired.
           minibuffer-completing-file-name))))
 
+(defun embark--selectrum-indicator ()
+  "Embark indicator highlighting the current Selectrum candidate."
+  (let ((fr face-remapping-alist))
+    (lambda (&optional keymap _targets _prefix)
+      (when selectrum-is-active
+        (setq-local face-remapping-alist
+                    (if keymap
+                        (cons '(selectrum-current-candidate . embark-target) 
fr)
+                      fr))))))
+
 (with-eval-after-load 'selectrum
+  (add-hook 'embark-indicators #'embark--selectrum-indicator)
   (add-hook 'embark-target-finders #'embark--selectrum-selected)
   (add-hook 'embark-candidate-collectors #'embark--selectrum-candidates))
 

Reply via email to