]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix incremental build failures with tree-sitter
authorPo Lu <luangruo@yahoo.com>
Mon, 30 Jan 2023 13:33:27 +0000 (21:33 +0800)
committerPo Lu <luangruo@yahoo.com>
Mon, 30 Jan 2023 13:33:40 +0000 (21:33 +0800)
* lisp/treesit.el (treesit-subtree-stat): Declare missing
function.
(treesit-buffer-root-node): Return nil if tree-sitter not
present.

lisp/treesit.el

index c9f2e339dc23bd7fbf95320fa6b9adadb59625a9..202a383ed7d23494262214302ba8975d6f26e054 100644 (file)
@@ -86,6 +86,7 @@
 
 (declare-function treesit-search-subtree "treesit.c")
 (declare-function treesit-search-forward "treesit.c")
+(declare-function treesit-subtree-stat "treesit.c")
 (declare-function treesit-induce-sparse-tree "treesit.c")
 
 (declare-function treesit-available-p "treesit.c")
@@ -265,12 +266,14 @@ If INCLUDE-NODE is non-nil, return NODE if it satisfies PRED."
 Use the first parser in the parser list if LANGUAGE is omitted.
 If LANGUAGE is non-nil, use the first parser for LANGUAGE in the
 parser list, or create one if none exists."
-  (if-let ((parser
-            (if language
-                (treesit-parser-create language)
-              (or (car (treesit-parser-list))
-                  (signal 'treesit-no-parser (list (current-buffer)))))))
-      (treesit-parser-root-node parser)))
+  ;; Otherwise the incremental build is broken without tree-sitter.
+  (when (treesit-available-p)
+    (if-let ((parser
+              (if language
+                  (treesit-parser-create language)
+                (or (car (treesit-parser-list))
+                    (signal 'treesit-no-parser (list (current-buffer)))))))
+        (treesit-parser-root-node parser))))
 
 (defun treesit-filter-child (node pred &optional named)
   "Return children of NODE that satisfies predicate PRED.