Function: treesit-simple-imenu
treesit-simple-imenu is a byte-compiled function defined in
treesit.el.gz.
Signature
(treesit-simple-imenu)
Documentation
Return an Imenu index for the current buffer.
Source Code
;; Defined in /usr/src/emacs/lisp/treesit.el.gz
(defun treesit-simple-imenu ()
"Return an Imenu index for the current buffer."
(if (not treesit-aggregated-simple-imenu-settings)
(treesit--generate-simple-imenu
(treesit-parser-root-node treesit-primary-parser)
treesit-simple-imenu-settings)
;; Use `treesit-aggregated-simple-imenu-settings'. Remove languages
;; that doesn't have any Imenu entries.
(seq-filter
#'cdr
(mapcar
(lambda (entry)
(let* ((lang (car entry))
(settings (cdr entry))
(global-parser (car (treesit-parser-list nil lang)))
(local-parsers
(treesit-parser-list nil lang 'embedded)))
(cons (treesit-language-display-name lang)
;; No one says you can't have both global and local
;; parsers for the same language. E.g., Rust uses
;; local parsers for the same language to handle
;; macros.
(treesit--imenu-merge-entries
(mapcan (lambda (parser)
(treesit--generate-simple-imenu
(treesit-parser-root-node parser) settings))
(cons global-parser local-parsers))))))
treesit-aggregated-simple-imenu-settings))))