* lisp/completion-preview.el
(completion-preview--try-table): Let-bind
'completion-extra-properties' to completion properties
that the completion backend (capf) provides, so that these
properties take effect when querying the completion table.
* test/lisp/completion-preview-tests.el
(completion-preview-propagates-properties): Add test.
(cherry picked from commit
365a91622e093fe0fb74b7fee3ff7cc4a0025611)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(let* ((pred (plist-get props :predicate))
(string (buffer-substring beg end))
+ (completion-extra-properties props)
(completion-ignore-case completion-preview-ignore-case)
(md (completion-metadata string table pred))
(sort-fn (or (completion-metadata-get md 'sort-function)
(completion-preview--post-command))
(should (not (completion-preview--cursor-modified-p)))))
+(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