diff --git a/lisp/completion-preview.el b/lisp/completion-preview.el index 505cf45f48d..1c524985f05 100644 --- a/lisp/completion-preview.el +++ b/lisp/completion-preview.el @@ -293,6 +293,7 @@ candidates or if there are multiple matching completions and ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (let* ((pred (plist-get props :predicate)) (string (buffer-substring beg end)) + (completion-extra-properties props) (md (completion-metadata string table pred)) (sort-fn (or (completion-metadata-get md 'cycle-sort-function) (completion-metadata-get md 'display-sort-function) diff --git a/test/lisp/completion-preview-tests.el b/test/lisp/completion-preview-tests.el index d7694492056..b8a45f00cb5 100644 --- a/test/lisp/completion-preview-tests.el +++ b/test/lisp/completion-preview-tests.el @@ -306,4 +306,17 @@ instead." (should exit-fn-called) (should (equal exit-fn-args '("foobar" finished)))))) +(ert-deftest completion-preview-propagates-properties () + "Test the completion metadata handling of Completion Preview mode." + (with-temp-buffer + (setq-local + completion-preview-sort-function #'minibuffer-sort-alphabetically + completion-at-point-functions + (list (completion-preview-tests--capf '("foobaz" "foobar") + :display-sort-function #'identity))) + (insert "foo") + (let ((this-command 'self-insert-command)) + (completion-preview--post-command)) + (completion-preview-tests--check-preview "baz" 'completion-preview-common))) + ;;; completion-preview-tests.el ends here