branch: externals/corfu commit 71adaf1e674f46a367f6d815183da6456033f139 Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Daniel Mendler <m...@daniel-mendler.de>
Link to bug#55205 - completion--replace illegally mutates completion candidates --- corfu.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/corfu.el b/corfu.el index f65a39fc96..b030d82a6b 100644 --- a/corfu.el +++ b/corfu.el @@ -998,6 +998,7 @@ If a candidate is selected, insert it." (corfu--done str 'finished)) (`(,newstr . ,newpt) (unless (equal str newstr) + ;; bug#55205: completion--replace removes properties! (completion--replace beg end (concat newstr))) (goto-char (+ beg newpt)) ;; Exit with status 'finished if input is a valid match @@ -1020,6 +1021,7 @@ If a candidate is selected, insert it." ;; *Completions* buffer. See bug#48356. (setq str (concat corfu--base (substring-no-properties (nth corfu--index corfu--candidates)))) + ;; bug#55205: completion--replace removes properties! (completion--replace beg end (concat str)) (corfu--goto -1) ;; Reset selection, but continue completion. (when status (corfu--done str status)))) ;; Exit with status @@ -1112,6 +1114,7 @@ See `completion-in-region' for the arguments BEG, END, TABLE, PRED." (setq end (copy-marker end t) completion-in-region--data (list beg end table pred)) (unless (equal str newstr) + ;; bug#55205: completion--replace removes properties! (completion--replace beg end (concat newstr))) (goto-char (+ beg newpt)) (if (= total 1) @@ -1145,6 +1148,7 @@ See `completion-in-region' for the arguments BEG, END, TABLE, PRED." (map (make-sparse-keymap)) (replace (lambda () (interactive) + ;; bug#55205: completion--replace removes properties! (completion--replace beg end (concat (nth idx cands))) (corfu--message "Cycling %d/%d..." (1+ idx) total) (setq idx (mod (1+ idx) total))