Function: consult-imenu--compute
consult-imenu--compute is a byte-compiled function defined in
consult-imenu.el.
Signature
(consult-imenu--compute)
Documentation
Compute imenu candidates.
Source Code
;; Defined in ~/.emacs.d/elpa/consult-20260805.1130/consult-imenu.el
(defun consult-imenu--compute ()
"Compute imenu candidates."
(consult--forbid-minibuffer)
(let* ((imenu-use-markers t)
;; Generate imenu, see `imenu--make-index-alist'.
(items (imenu--truncate-items
(save-excursion
(without-restriction
(funcall imenu-create-index-function)))))
(config (cdr (seq-find (lambda (x) (derived-mode-p (car x))) consult-imenu-config))))
;; Fix toplevel items, e.g., emacs-lisp-mode toplevel items are functions
(when-let* ((toplevel (plist-get config :toplevel)))
(let ((tops (seq-remove (lambda (x) (listp (cdr x))) items))
(rest (seq-filter (lambda (x) (listp (cdr x))) items)))
(setq items (nconc rest (and tops (list (cons toplevel tops)))))))
;; Apply our flattening in order to ease searching the imenu.
(consult-imenu--flatten
nil nil items
(mapcar (pcase-lambda (`(,x ,y ,z)) (list y x z))
(plist-get config :types)))))