Fix empty pairs in js tree-sitter imenu alist (bug#59945)
The current js--treesit-imenu, used by the JavaScript, TypeScript and TSX tree-sitter modes, would return empty pairs in the imenu alist if there were none of that type of symbol. This would break both the built in imenu and also packages like consult-imenu. See https://github.com/minad/consult/issues/697 for the discussion there. * lisp/progmodes/js.el (js--treesit-imenu): Don't add nil indexes. Copyright-paperwork-exempt: yes
This commit is contained in:
parent
6d9f367ead
commit
12b2b8864c
1 changed files with 8 additions and 3 deletions
|
@ -3738,9 +3738,14 @@ definition*\"."
|
|||
node "function_declaration" nil 1000))
|
||||
(var-tree (treesit-induce-sparse-tree
|
||||
node "lexical_declaration" nil 1000)))
|
||||
`(("Class" . ,(js--treesit-imenu-1 class-tree))
|
||||
("Variable" . ,(js--treesit-imenu-1 var-tree))
|
||||
("Function" . ,(js--treesit-imenu-1 func-tree)))))
|
||||
;; When a sub-tree is empty, we should not return that pair at all.
|
||||
(append
|
||||
(and func-tree
|
||||
`(("Function" . ,(js--treesit-imenu-1 func-tree))))
|
||||
(and var-tree
|
||||
`(("Variable" . ,(js--treesit-imenu-1 var-tree))))
|
||||
(and class-tree
|
||||
`(("Class" . ,(js--treesit-imenu-1 class-tree)))))))
|
||||
|
||||
;;; Main Function
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue