Inherit text props in Completion Preview insertion commands
When completing with Completion Preview mode commands, inherit text properties from surrounding text similarly to other completion commands, such as 'completion-at-point'. * lisp/completion-preview.el (completion-preview-insert) (completion-preview-partial-insert) (completion-preview-complete): Use 'insert-and-inherit' instead of 'insert' to insert text for completion. * test/lisp/completion-preview-tests.el (completion-preview-insert-inherits-text-properties): New test.
This commit is contained in:
parent
3088b06759
commit
2119cd52cd
2 changed files with 16 additions and 3 deletions
|
@ -491,7 +491,7 @@ point, otherwise hide it."
|
|||
(str (concat pre com (nth ind all))))
|
||||
(completion-preview-active-mode -1)
|
||||
(goto-char end)
|
||||
(insert (substring-no-properties aft))
|
||||
(insert-and-inherit (substring-no-properties aft))
|
||||
(when (functionp efn) (funcall efn str 'finished))))
|
||||
|
||||
(defun completion-preview-partial-insert (fun &rest args)
|
||||
|
@ -516,7 +516,7 @@ Beyond moving point, FUN should not modify the current buffer."
|
|||
(save-excursion
|
||||
(goto-char end)
|
||||
;; Temporarily insert the full completion candidate.
|
||||
(insert (substring-no-properties aft)))
|
||||
(insert-and-inherit (substring-no-properties aft)))
|
||||
;; Set point to the end of the prefix that we want to keep.
|
||||
(apply fun args)
|
||||
(unless (< end (point))
|
||||
|
@ -616,7 +616,7 @@ completions list."
|
|||
(completion-preview--inhibit-update)
|
||||
(completion-at-point))
|
||||
;; Otherwise, insert the common prefix and update the preview.
|
||||
(insert ins)
|
||||
(insert-and-inherit ins)
|
||||
(let ((suf (nth cur all))
|
||||
(pos (point)))
|
||||
(if (or (string-empty-p suf) (null suf))
|
||||
|
|
|
@ -432,4 +432,17 @@ instead."
|
|||
(should-not exit-fn-called)
|
||||
(should-not exit-fn-args))))
|
||||
|
||||
(ert-deftest completion-preview-insert-inherits-text-properties ()
|
||||
"Test that `completion-preview-insert' inherits text properties."
|
||||
(with-temp-buffer
|
||||
(setq-local completion-at-point-functions
|
||||
(list (completion-preview-tests--capf '("foobar" "foobaz"))))
|
||||
(insert (propertize "foo" 'prop 'val))
|
||||
(let ((this-command 'self-insert-command))
|
||||
(completion-preview--post-command))
|
||||
(completion-preview-tests--check-preview "bar" 'completion-preview-common)
|
||||
(completion-preview-insert)
|
||||
(should (string= (buffer-string) "foobar"))
|
||||
(should (eq (get-text-property 6 'prop) 'val))))
|
||||
|
||||
;;; completion-preview-tests.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue