emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 12b2b8864c 2/2: Fix empty pairs in js tree-sitter imenu alist (


From: Yuan Fu
Subject: emacs-29 12b2b8864c 2/2: Fix empty pairs in js tree-sitter imenu alist (bug#59945)
Date: Tue, 20 Dec 2022 23:51:01 -0500 (EST)

branch: emacs-29
commit 12b2b8864c295ce27594e8a907ebb3423e58a9d4
Author: Charl P. Botha <cpbotha@vxlabs.com>
Commit: Yuan Fu <casouri@gmail.com>

    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
---
 lisp/progmodes/js.el | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 8c1ee495c2..1b34c0de41 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -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
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]