diff options
| author | Juri Linkov | 2025-04-22 19:32:36 +0300 |
|---|---|---|
| committer | Juri Linkov | 2025-04-22 19:32:36 +0300 |
| commit | 8fb45fcaedbe1b89bab54406c8739404d0ad35bc (patch) | |
| tree | cf86f969f9ba2eb02b9635cc36e227cc3dfbc629 | |
| parent | 2bf3790f374e0a162e05a470940f57b43a244ad7 (diff) | |
| download | emacs-8fb45fcaedbe1b89bab54406c8739404d0ad35bc.tar.gz emacs-8fb45fcaedbe1b89bab54406c8739404d0ad35bc.zip | |
Fix all issues for the case when tree-sitter is disabled.
* 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'.
| -rw-r--r-- | lisp/progmodes/elixir-ts-mode.el | 13 | ||||
| -rw-r--r-- | lisp/progmodes/heex-ts-mode.el | 25 | ||||
| -rw-r--r-- | lisp/progmodes/rust-ts-mode.el | 3 | ||||
| -rw-r--r-- | lisp/treesit.el | 3 |
4 files changed, 25 insertions, 19 deletions
diff --git a/lisp/progmodes/elixir-ts-mode.el b/lisp/progmodes/elixir-ts-mode.el index f7d6932c7c2..52744f194a2 100644 --- a/lisp/progmodes/elixir-ts-mode.el +++ b/lisp/progmodes/elixir-ts-mode.el | |||
| @@ -622,12 +622,13 @@ | |||
| 622 | "`treesit-thing-settings' for Elixir.") | 622 | "`treesit-thing-settings' for Elixir.") |
| 623 | 623 | ||
| 624 | (defvar elixir-ts--range-rules | 624 | (defvar elixir-ts--range-rules |
| 625 | (treesit-range-rules | 625 | (when (treesit-available-p) |
| 626 | :embed 'heex | 626 | (treesit-range-rules |
| 627 | :host 'elixir | 627 | :embed 'heex |
| 628 | '((sigil (sigil_name) @_name | 628 | :host 'elixir |
| 629 | (:match "^[HF]$" @_name) | 629 | '((sigil (sigil_name) @_name |
| 630 | (quoted_content) @heex)))) | 630 | (:match "^[HF]$" @_name) |
| 631 | (quoted_content) @heex))))) | ||
| 631 | 632 | ||
| 632 | (defvar heex-ts--range-rules) | 633 | (defvar heex-ts--range-rules) |
| 633 | (defvar heex-ts--thing-settings) | 634 | (defvar heex-ts--thing-settings) |
diff --git a/lisp/progmodes/heex-ts-mode.el b/lisp/progmodes/heex-ts-mode.el index 2d6dce784bc..cf3fad4af10 100644 --- a/lisp/progmodes/heex-ts-mode.el +++ b/lisp/progmodes/heex-ts-mode.el | |||
| @@ -173,18 +173,19 @@ Return nil if NODE is not a defun node or doesn't have a name." | |||
| 173 | "`treesit-thing-settings' for HEEx.") | 173 | "`treesit-thing-settings' for HEEx.") |
| 174 | 174 | ||
| 175 | (defvar heex-ts--range-rules | 175 | (defvar heex-ts--range-rules |
| 176 | (treesit-range-rules | 176 | (when (treesit-available-p) |
| 177 | :embed 'elixir | 177 | (treesit-range-rules |
| 178 | :host 'heex | 178 | :embed 'elixir |
| 179 | '((directive [(partial_expression_value) | 179 | :host 'heex |
| 180 | (ending_expression_value)] | 180 | '((directive [(partial_expression_value) |
| 181 | @cap)) | 181 | (ending_expression_value)] |
| 182 | 182 | @cap)) | |
| 183 | :embed 'elixir | 183 | |
| 184 | :host 'heex | 184 | :embed 'elixir |
| 185 | :local t | 185 | :host 'heex |
| 186 | '((directive (expression_value) @cap) | 186 | :local t |
| 187 | (expression (expression_value) @cap)))) | 187 | '((directive (expression_value) @cap) |
| 188 | (expression (expression_value) @cap))))) | ||
| 188 | 189 | ||
| 189 | (defvar elixir-ts--font-lock-settings) | 190 | (defvar elixir-ts--font-lock-settings) |
| 190 | (defvar elixir-ts--font-lock-feature-list) | 191 | (defvar elixir-ts--font-lock-feature-list) |
diff --git a/lisp/progmodes/rust-ts-mode.el b/lisp/progmodes/rust-ts-mode.el index beb27504cc7..9d2450baa90 100644 --- a/lisp/progmodes/rust-ts-mode.el +++ b/lisp/progmodes/rust-ts-mode.el | |||
| @@ -44,7 +44,8 @@ | |||
| 44 | (add-to-list | 44 | (add-to-list |
| 45 | 'treesit-language-source-alist | 45 | 'treesit-language-source-alist |
| 46 | `(rust "https://github.com/tree-sitter/tree-sitter-rust" | 46 | `(rust "https://github.com/tree-sitter/tree-sitter-rust" |
| 47 | ,(if (< (treesit-library-abi-version) 15) "v0.23.2" "v0.24.0")) | 47 | ,(when (treesit-available-p) |
| 48 | (if (< (treesit-library-abi-version) 15) "v0.23.2" "v0.24.0"))) | ||
| 48 | t) | 49 | t) |
| 49 | 50 | ||
| 50 | (defcustom rust-ts-mode-indent-offset 4 | 51 | (defcustom rust-ts-mode-indent-offset 4 |
diff --git a/lisp/treesit.el b/lisp/treesit.el index b9441618024..6075e28e5cb 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el | |||
| @@ -70,6 +70,9 @@ in a Emacs not built with tree-sitter library." | |||
| 70 | (declare-function treesit-language-available-p "treesit.c") | 70 | (declare-function treesit-language-available-p "treesit.c") |
| 71 | (declare-function treesit-language-version "treesit.c") | 71 | (declare-function treesit-language-version "treesit.c") |
| 72 | 72 | ||
| 73 | (declare-function treesit-language-abi-version "treesit.c") | ||
| 74 | (declare-function treesit-library-abi-version "treesit.c") | ||
| 75 | |||
| 73 | (declare-function treesit-parser-p "treesit.c") | 76 | (declare-function treesit-parser-p "treesit.c") |
| 74 | (declare-function treesit-node-p "treesit.c") | 77 | (declare-function treesit-node-p "treesit.c") |
| 75 | (declare-function treesit-compiled-query-p "treesit.c") | 78 | (declare-function treesit-compiled-query-p "treesit.c") |