]> git.eshelyaron.com Git - emacs.git/commitdiff
; Add treesit-no-parser error
authorYuan Fu <casouri@gmail.com>
Sat, 24 Dec 2022 22:48:50 +0000 (14:48 -0800)
committerYuan Fu <casouri@gmail.com>
Sun, 25 Dec 2022 02:43:03 +0000 (18:43 -0800)
* lisp/treesit.el (treesit-no-parser): New error.
(treesit-buffer-root-node): Use the new error.

lisp/treesit.el

index 845e6ab3883c3fbd3731d135d1995a7d82ee6998..3d9c61b9dc9d1348f527ddf5ceddfb054816123d 100644 (file)
@@ -141,6 +141,9 @@ parser in `treesit-parser-list', or nil if there is no parser."
 
 ;;; Node API supplement
 
+(define-error 'treesit-no-parser "No available parser for this buffer"
+              'treesit-error)
+
 (defun treesit-node-buffer (node)
   "Return the buffer in which NODE belongs."
   (treesit-parser-buffer
@@ -248,11 +251,10 @@ Use the first parser in `treesit-parser-list'.
 If optional argument LANGUAGE is non-nil, use the first parser
 for LANGUAGE."
   (if-let ((parser
-            (or (if language
-                    (treesit-parser-create language)
-                  (or (car (treesit-parser-list))
-                      (signal 'treesit-error
-                              '("Buffer has no 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)