; Fix Icomplete error during candidate highlighting
authorEshel Yaron <me@eshelyaron.com>
Fri, 14 Jun 2024 17:49:21 +0000 (19:49 +0200)
committerEshel Yaron <me@eshelyaron.com>
Fri, 14 Jun 2024 17:49:21 +0000 (19:49 +0200)
* lisp/icomplete.el (icomplete-completions): Pass completion
candidates through 'completion-lazy-hilit' before trimming
common prefix, rather than after.

https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00271.html

lisp/icomplete.el

index aa3c5680a7e1c69f102c3495e307df96d84f5a53..2ea5e36fa88dace8e034be8dc5b88a0034520eee 100644 (file)
@@ -1057,7 +1057,8 @@ matches exist."
                   (setq determ (concat open-bracket "" close-bracket)))
                 (while (and comps (not limit))
                   (setq comp
-                        (if prefix-len (substring (car comps) prefix-len) (car comps))
+                        (let ((cur (completion-lazy-hilit (car comps))))
+                          (if prefix-len (substring cur prefix-len) cur))
                         comps (cdr comps))
                   (setq prospects-len
                         (+ (string-width comp)
@@ -1066,8 +1067,7 @@ matches exist."
                   (if (< prospects-len prospects-max)
                       (push comp prospects)
                     (setq limit t)))
-                (setq prospects
-                      (nreverse (mapcar #'completion-lazy-hilit prospects)))
+                (setq prospects (nreverse prospects))
                 ;; Decorate first of the prospects.
                 (when prospects
                   (let ((first (copy-sequence (pop prospects))))