]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix all issues for the case when tree-sitter is disabled.
authorJuri Linkov <juri@linkov.net>
Tue, 22 Apr 2025 16:32:36 +0000 (19:32 +0300)
committerEshel Yaron <me@eshelyaron.com>
Tue, 22 Apr 2025 17:58:15 +0000 (19:58 +0200)
* lisp/treesit.el (treesit-declare-unavailable-functions):
Declare 'treesit-language-abi-version' and 'treesit-library-abi-version'.

* lisp/progmodes/elixir-ts-mode.el (elixir-ts--range-rules):
* lisp/progmodes/heex-ts-mode.el (heex-ts--range-rules):
* lisp/progmodes/rust-ts-mode.el (treesit-language-source-alist):
Guard with 'treesit-available-p'.

(cherry picked from commit 8fb45fcaedbe1b89bab54406c8739404d0ad35bc)

lisp/progmodes/elixir-ts-mode.el
lisp/progmodes/heex-ts-mode.el
lisp/progmodes/rust-ts-mode.el
lisp/treesit.el

index f7d6932c7c21eda14b44deaf728fac00cf0e58c8..52744f194a25edbc94c792307f791ff03eb9e485 100644 (file)
   "`treesit-thing-settings' for Elixir.")
 
 (defvar elixir-ts--range-rules
-  (treesit-range-rules
-   :embed 'heex
-   :host 'elixir
-   '((sigil (sigil_name) @_name
-            (:match "^[HF]$" @_name)
-            (quoted_content) @heex))))
+  (when (treesit-available-p)
+    (treesit-range-rules
+     :embed 'heex
+     :host 'elixir
+     '((sigil (sigil_name) @_name
+              (:match "^[HF]$" @_name)
+              (quoted_content) @heex)))))
 
 (defvar heex-ts--range-rules)
 (defvar heex-ts--thing-settings)
index 2d6dce784bc58c23ec0ba675f548dbf0013b946d..cf3fad4af1053dfd31948a14ff44c4b31b1cb938 100644 (file)
@@ -173,18 +173,19 @@ Return nil if NODE is not a defun node or doesn't have a name."
   "`treesit-thing-settings' for HEEx.")
 
 (defvar heex-ts--range-rules
-  (treesit-range-rules
-   :embed 'elixir
-   :host 'heex
-   '((directive [(partial_expression_value)
-                 (ending_expression_value)]
-                @cap))
-
-   :embed 'elixir
-   :host 'heex
-   :local t
-   '((directive (expression_value) @cap)
-     (expression (expression_value) @cap))))
+  (when (treesit-available-p)
+    (treesit-range-rules
+     :embed 'elixir
+     :host 'heex
+     '((directive [(partial_expression_value)
+                   (ending_expression_value)]
+                  @cap))
+
+     :embed 'elixir
+     :host 'heex
+     :local t
+     '((directive (expression_value) @cap)
+       (expression (expression_value) @cap)))))
 
 (defvar elixir-ts--font-lock-settings)
 (defvar elixir-ts--font-lock-feature-list)
index 3b115f4bb7b7303d22a700a1642a5b51909c4a08..5ae4921287ecdac849b023af161fc86ff092bf4b 100644 (file)
@@ -44,7 +44,8 @@
 (add-to-list
  'treesit-language-source-alist
  `(rust "https://github.com/tree-sitter/tree-sitter-rust"
-        ,(if (< (treesit-library-abi-version) 15) "v0.23.2" "v0.24.0"))
+        ,(when (treesit-available-p)
+           (if (< (treesit-library-abi-version) 15) "v0.23.2" "v0.24.0")))
  t)
 
 (defcustom rust-ts-mode-indent-offset 4
index 7ccc14dceda12d9b5624a9d7ecc4a562537e21c8..c85768256f7a5c771f81d5556893b8e0f5f0068b 100644 (file)
@@ -70,6 +70,9 @@ in a Emacs not built with tree-sitter library."
      (declare-function treesit-language-available-p "treesit.c")
      (declare-function treesit-language-version "treesit.c")
 
+     (declare-function treesit-language-abi-version "treesit.c")
+     (declare-function treesit-library-abi-version "treesit.c")
+
      (declare-function treesit-parser-p "treesit.c")
      (declare-function treesit-node-p "treesit.c")
      (declare-function treesit-compiled-query-p "treesit.c")