summaryrefslogtreecommitdiff
path: root/lisp/progmodes/c-ts-mode.el
diff options
context:
space:
mode:
authorYuan Fu <casouri@gmail.com>2022-11-20 16:56:33 -0800
committerYuan Fu <casouri@gmail.com>2022-11-20 17:04:58 -0800
commit32870d2f207536bb7932beeb2e0ec9a4e0146560 (patch)
tree7178d8a11d9b575306118a3fddbcd39e284bb359 /lisp/progmodes/c-ts-mode.el
parent625ea08652053617034bf8ceee0d6cfae34f2dcc (diff)
downloademacs-32870d2f207536bb7932beeb2e0ec9a4e0146560.tar.gz
emacs-32870d2f207536bb7932beeb2e0ec9a4e0146560.tar.bz2
emacs-32870d2f207536bb7932beeb2e0ec9a4e0146560.zip
Limit recursion level for tree-sitter imenu functions
Generating imenu index doesn't require going down to the bottom of the tree (defun's are usually top-level). Add limit so we don't go too far down on very large buffers. * lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu) * lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu) * lisp/progmodes/js.el (js--treesit-imenu) * lisp/progmodes/json-ts-mode.el (json-ts-mode--imenu) * lisp/progmodes/python.el (python-imenu-treesit-create-index) * lisp/textmodes/css-mode.el (css--treesit-imenu): Add limit to treesit-induce-sparse-tree.
Diffstat (limited to 'lisp/progmodes/c-ts-mode.el')
-rw-r--r--lisp/progmodes/c-ts-mode.el6
1 files changed, 3 insertions, 3 deletions
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index 9fc7e6f67c2..3b7007bfeeb 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -448,11 +448,11 @@ the subtrees."
"Return Imenu alist for the current buffer."
(let* ((node (treesit-buffer-root-node))
(func-tree (treesit-induce-sparse-tree
- node "^function_definition$"))
+ node "^function_definition$" nil 1000))
(var-tree (treesit-induce-sparse-tree
- node "^declaration$"))
+ node "^declaration$" nil 1000))
(struct-tree (treesit-induce-sparse-tree
- node "^struct_specifier$"))
+ node "^struct_specifier$" nil 1000))
(func-index (c-ts-mode--imenu-1 func-tree))
(var-index (c-ts-mode--imenu-1 var-tree))
(struct-index (c-ts-mode--imenu-1 struct-tree)))