Skip to content

Commit

Permalink
Make sure completion-metadata is fetched when formatting candidates
Browse files Browse the repository at this point in the history
  • Loading branch information
gexplorer committed May 24, 2021
1 parent 7c5d49f commit 182e40a
Showing 1 changed file with 17 additions and 20 deletions.
37 changes: 17 additions & 20 deletions ivy.el
Expand Up @@ -3328,16 +3328,10 @@ The function was added in Emacs 26.1.")
"~"
home)))))

(defvar ivy--minibuffer-metadata nil)

(defun ivy-update-candidates (cands)
(let ((ivy--minibuffer-metadata
(unless (ivy-state-dynamic-collection ivy-last)
(completion-metadata "" minibuffer-completion-table
minibuffer-completion-predicate))))
(ivy--insert-minibuffer
(ivy--format
(setq ivy--all-candidates cands)))))
(ivy--insert-minibuffer
(ivy--format
(setq ivy--all-candidates cands))))

(defun ivy--exhibit ()
"Insert Ivy completions display.
Expand Down Expand Up @@ -4066,7 +4060,7 @@ in this case."
(cl-incf i)))))))
str)

(defun ivy--format-minibuffer-line (str)
(defun ivy--format-minibuffer-line (str annot)
"Format line STR for use in minibuffer."
(let* ((str (ivy-cleanup-string (copy-sequence str)))
(str (if (eq ivy-display-style 'fancy)
Expand All @@ -4079,9 +4073,7 @@ in this case."
(concat file (funcall ivy--highlight-function match)))
(funcall ivy--highlight-function str))
str))
(olen (length str))
(annot (or (completion-metadata-get ivy--minibuffer-metadata 'annotation-function)
(plist-get completion-extra-properties :annotation-function))))
(olen (length str)))
(add-text-properties
0 olen
'(mouse-face
Expand Down Expand Up @@ -4138,13 +4130,18 @@ CANDS is a list of candidates that :display-transformer can turn into strings."
(ivy--wnd-cands-to-str wnd-cands))))

(defun ivy--wnd-cands-to-str (wnd-cands)
(let ((str (concat "\n"
(funcall (ivy-alist-setting ivy-format-functions-alist)
(condition-case nil
(mapcar
#'ivy--format-minibuffer-line
wnd-cands)
(error wnd-cands))))))
(let* ((metadata (unless (ivy-state-dynamic-collection ivy-last)
(completion-metadata "" minibuffer-completion-table
minibuffer-completion-predicate)))
(annot (or (completion-metadata-get metadata 'annotation-function)
(plist-get completion-extra-properties :annotation-function)))
(str (concat "\n"
(funcall (ivy-alist-setting ivy-format-functions-alist)
(condition-case nil
(mapcar
(lambda (cand) (ivy--format-minibuffer-line cand annot))
wnd-cands)
(error wnd-cands))))))
(put-text-property 0 (length str) 'read-only nil str)
str))

Expand Down

0 comments on commit 182e40a

Please sign in to comment.