]> git.eshelyaron.com Git - emacs.git/commitdiff
Add test for treesit-query-compile
authorYuan Fu <casouri@gmail.com>
Tue, 14 Jun 2022 20:32:14 +0000 (13:32 -0700)
committerYuan Fu <casouri@gmail.com>
Tue, 14 Jun 2022 20:32:14 +0000 (13:32 -0700)
* test/src/treesit-tests.el (treesit-query-api): Rename pattern to
query, and add treesit-query-compile into the mix.

test/src/treesit-tests.el

index 1b20b86bc9e8d9034ac5392a14e000751b11d0c5..c6d5f25472077ec22c39a377ee26f99aa5a93bff 100644 (file)
         (setq root-node (treesit-parser-root-node
                          parser)))
 
-      (dolist (pattern
+      ;; Test `treesit-query-capture' on string, sexp and compiled
+      ;; queries.
+      (dolist (query1
+               ;; String query.
                '("(string) @string
 (pair key: (_) @keyword)
 ((_) @bob (#match \"^B.b$\" @bob))
 (number) @number
 ((number) @n3 (#equal \"3\" @n3)) "
+                 ;; Sexp query.
                  ((string) @string
                   (pair key: (_) @keyword)
                   ((_) @bob (:match "^B.b$" @bob))
                   (number) @number
                   ((number) @n3 (:equal "3" @n3)))))
-        (should
-         (equal
-          '((number . "1") (number . "2")
-            (keyword . "\"name\"")
-            (string . "\"name\"")
-            (string . "\"Bob\"")
-            (bob . "Bob")
-            (number . "3")
-            (n3 . "3"))
-          (mapcar (lambda (entry)
-                    (cons (car entry)
-                          (treesit-node-text
-                           (cdr entry))))
-                  (treesit-query-capture root-node pattern))))
-        (should
-         (equal
-          "(type field: (_) @capture .) ? * + \"return\""
-          (treesit-expand-query
-           '((type field: (_) @capture :anchor)
-             :? :* :+ "return"))))))))
+        ;; Test `treesit-query-compile'.
+        (dolist (query (list query1
+                             (treesit-query-compile 'json query1)))
+          (should
+           (equal
+            '((number . "1") (number . "2")
+              (keyword . "\"name\"")
+              (string . "\"name\"")
+              (string . "\"Bob\"")
+              (bob . "Bob")
+              (number . "3")
+              (n3 . "3"))
+            (mapcar (lambda (entry)
+                      (cons (car entry)
+                            (treesit-node-text
+                             (cdr entry))))
+                    (treesit-query-capture root-node query))))))
+      ;; Test `treesit-expand-query'.
+      (should
+       (equal
+        "(type field: (_) @capture .) ? * + \"return\""
+        (treesit-expand-query
+         '((type field: (_) @capture :anchor)
+           :? :* :+ "return")))))))
 
 (ert-deftest treesit-narrow ()
   "Tests if narrowing works."