]> git.eshelyaron.com Git - emacs.git/commitdiff
Add treesit-language-version
authorYuan Fu <casouri@gmail.com>
Tue, 4 Oct 2022 19:16:47 +0000 (12:16 -0700)
committerYuan Fu <casouri@gmail.com>
Tue, 4 Oct 2022 20:30:56 +0000 (13:30 -0700)
* doc/lispref/parsing.texi (Language Definitions): Update manual.
* src/treesit.c (Ftreesit_language_version): New function

doc/lispref/parsing.texi
src/treesit.c

index 05f4050b54157d2505423a1315ceba9671680095..0511b85bd77733a92336e52d4a95af5a01f2b195 100644 (file)
@@ -102,6 +102,15 @@ to @code{treesit-load-name-override-list}, where
 
 for a language too cool to abide by conventions.
 
+@defun treesit-language-version &optional min-compatible
+Tree-sitter library has a @dfn{language version}, a language
+definition's version needs to match this version to be compatible.
+
+This function returns tree-sitter library’s language version.  If
+@var{min-compatible} is non-nil, it returns the minimal compatible
+version.
+@end defun
+
 @heading Concrete syntax tree
 
 A syntax tree is what a parser generates.  In a syntax tree, each node
index d72c99a9747bbd3fc42205cda67a63012e750edf..77b48133ba8c250189d5a8535e5703075b536e7c 100644 (file)
@@ -316,6 +316,20 @@ DEFUN ("treesit-language-available-p",
     return Qt;
 }
 
+DEFUN ("treesit-language-version",
+       Ftreesit_language_version,
+       Streesit_language_version,
+       0, 1, 0,
+       doc: /* Return the language version of tree-sitter library.
+If MIN-COMPATIBLE non-nil, return the minimal compatible version.  */)
+  (Lisp_Object min_compatible)
+{
+  if (NILP (min_compatible))
+    return make_fixnum (TREE_SITTER_LANGUAGE_VERSION);
+  else
+    return make_fixnum (TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION);
+}
+
 /*** Parsing functions */
 
 static void