Function: treemacs--get-imenu-index
treemacs--get-imenu-index is a byte-compiled function defined in
treemacs-tags.el.
Signature
(treemacs--get-imenu-index FILE)
Documentation
Fetch imenu index of FILE.
Source Code
;; Defined in ~/.emacs.d/elpa/treemacs-20251226.1307/treemacs-tags.el
(defun treemacs--get-imenu-index (file)
"Fetch imenu index of FILE."
(let ((buff)
(result)
(mode)
(existing-buffer (get-file-buffer
(or (file-symlink-p file) file)))
(org-imenu-depth (max 10 (or 0 (and (boundp 'org-imenu-depth) org-imenu-depth)))))
(ignore org-imenu-depth)
(if existing-buffer
(setq buff existing-buffer)
(cl-letf (((symbol-function 'run-mode-hooks) (symbol-function 'ignore)))
(setq buff (find-file-noselect file))))
(condition-case e
(when (buffer-live-p buff)
(with-current-buffer buff
(let ((imenu-generic-expression
(if (eq major-mode 'emacs-lisp-mode)
(or treemacs-elisp-imenu-expression
imenu-generic-expression)
imenu-generic-expression))
(imenu-create-index-function
(if (eq major-mode 'org-mode)
#'org-imenu-get-tree
imenu-create-index-function)))
(setf result (and (or imenu-generic-expression imenu-create-index-function)
(imenu--make-index-alist t))
mode major-mode)))
(unless existing-buffer (kill-buffer buff))
(when result
(when (string= "*Rescan*" (caar result))
(setf result (cdr result)))
(unless (equal result '(nil))
(treemacs--post-process-index result mode))))
(imenu-unavailable (ignore e))
(error (prog1 nil (treemacs-log-err "Encountered error while following tag at point: %s" e))))))