summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorYuan Fu <casouri@gmail.com>2026-05-18 20:56:10 -0700
committerYuan Fu <casouri@gmail.com>2026-05-23 22:10:34 -0700
commit4c55d04ebe31f2a84273dfa2f765ca02e18ffb9d (patch)
tree587a0d842efa9e94a2ea75cef63cc751cb16ac28 /lisp
parent7892ae5eaf4c22a3209a8c44c6267004653c5691 (diff)
Add treesit-ready-p check back to tree-sitter major modes (bug#80909)
* lisp/progmodes/c-ts-mode.el (c-ts-mode): (c++-ts-mode): * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode): * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode): * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): * lisp/progmodes/go-ts-mode.el (go-ts-mode): (go-mod-ts-mode): (go-work-ts-mode): * lisp/progmodes/heex-ts-mode.el (heex-ts-mode): * lisp/progmodes/js.el (js-ts-mode): * lisp/progmodes/lua-ts-mode.el (lua-ts-mode): * lisp/progmodes/python.el (python-ts-mode): * lisp/progmodes/rust-ts-mode.el (rust-ts-mode): * lisp/progmodes/sh-script.el (bash-ts-mode): * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): (tsx-ts-mode): * lisp/textmodes/css-mode.el (css-ts-mode): * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode): * lisp/textmodes/toml-ts-mode.el (toml-ts-mode): * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): * lisp/treesit-x.el (treesit-generic-mode-setup): Add the check.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/progmodes/c-ts-mode.el8
-rw-r--r--lisp/progmodes/cmake-ts-mode.el4
-rw-r--r--lisp/progmodes/dockerfile-ts-mode.el4
-rw-r--r--lisp/progmodes/elixir-ts-mode.el8
-rw-r--r--lisp/progmodes/go-ts-mode.el12
-rw-r--r--lisp/progmodes/heex-ts-mode.el8
-rw-r--r--lisp/progmodes/js.el8
-rw-r--r--lisp/progmodes/lua-ts-mode.el4
-rw-r--r--lisp/progmodes/python.el8
-rw-r--r--lisp/progmodes/rust-ts-mode.el4
-rw-r--r--lisp/progmodes/sh-script.el4
-rw-r--r--lisp/progmodes/typescript-ts-mode.el8
-rw-r--r--lisp/textmodes/css-mode.el4
-rw-r--r--lisp/textmodes/mhtml-ts-mode.el4
-rw-r--r--lisp/textmodes/toml-ts-mode.el4
-rw-r--r--lisp/textmodes/yaml-ts-mode.el4
-rw-r--r--lisp/treesit-x.el4
17 files changed, 74 insertions, 26 deletions
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index c8120d5752c..d08615446a1 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -1475,7 +1475,9 @@ in your init files, or customize `treesit-enabled-modes'."
:group 'c
:after-hook (c-ts-mode-set-modeline)
- (when (treesit-ensure-installed 'c)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'c)
+ (treesit-ready-p 'c))
;; Create an "for-each" parser, see `c-ts-mode--emacs-set-ranges'
;; for more.
(when c-ts-mode-emacs-sources-support
@@ -1554,7 +1556,9 @@ recommended to enable `electric-pair-mode' with this mode."
:group 'c++
:after-hook (c-ts-mode-set-modeline)
- (when (treesit-ensure-installed 'cpp)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'cpp)
+ (treesit-ready-p 'cpp))
(let ((primary-parser (treesit-parser-create 'cpp)))
;; Syntax.
diff --git a/lisp/progmodes/cmake-ts-mode.el b/lisp/progmodes/cmake-ts-mode.el
index d8873191d61..6abd92b5e1a 100644
--- a/lisp/progmodes/cmake-ts-mode.el
+++ b/lisp/progmodes/cmake-ts-mode.el
@@ -220,7 +220,9 @@ Return nil if there is no name or if NODE is not a defun node."
:group 'cmake
:syntax-table cmake-ts-mode--syntax-table
- (when (treesit-ensure-installed 'cmake)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'cmake)
+ (treesit-ready-p 'cmake))
(setq treesit-primary-parser (treesit-parser-create 'cmake))
;; Comments.
diff --git a/lisp/progmodes/dockerfile-ts-mode.el b/lisp/progmodes/dockerfile-ts-mode.el
index 1d42c239b84..b97ec89b99a 100644
--- a/lisp/progmodes/dockerfile-ts-mode.el
+++ b/lisp/progmodes/dockerfile-ts-mode.el
@@ -167,7 +167,9 @@ Return nil if there is no name or if NODE is not a stage node."
:group 'dockerfile
:syntax-table dockerfile-ts-mode--syntax-table
- (when (treesit-ensure-installed 'dockerfile)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'dockerfile)
+ (treesit-ready-p 'dockerfile))
(setq treesit-primary-parser (treesit-parser-create 'dockerfile))
;; Comments.
diff --git a/lisp/progmodes/elixir-ts-mode.el b/lisp/progmodes/elixir-ts-mode.el
index 9514d6bdc91..9bda7f0046f 100644
--- a/lisp/progmodes/elixir-ts-mode.el
+++ b/lisp/progmodes/elixir-ts-mode.el
@@ -737,7 +737,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
(add-hook 'post-self-insert-hook
#'elixir-ts--electric-pair-string-delimiter 'append t)
- (when (treesit-ensure-installed 'elixir)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'elixir)
+ (treesit-ready-p 'elixir))
(setq-local treesit-primary-parser
(treesit-parser-create 'elixir))
@@ -762,7 +764,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
(setq-local treesit-defun-name-function #'elixir-ts--defun-name)
;; Embedded Heex.
- (when (treesit-ensure-installed 'heex)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'heex)
+ (treesit-ready-p 'heex))
(require 'heex-ts-mode)
(treesit-parser-create 'heex)
diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el
index 76de7c9b41b..8de6d0e0700 100644
--- a/lisp/progmodes/go-ts-mode.el
+++ b/lisp/progmodes/go-ts-mode.el
@@ -287,7 +287,9 @@
:group 'go
:syntax-table go-ts-mode--syntax-table
- (when (treesit-ensure-installed 'go)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'go)
+ (treesit-ready-p 'go))
(setq treesit-primary-parser (treesit-parser-create 'go))
;; Comments.
@@ -608,7 +610,9 @@ what the parent of the node would be if it were a node."
:group 'go
:syntax-table go-mod-ts-mode--syntax-table
- (when (treesit-ensure-installed 'gomod)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'gomod)
+ (treesit-ready-p 'gomod))
(setq treesit-primary-parser (treesit-parser-create 'gomod))
;; Comments.
@@ -712,7 +716,9 @@ what the parent of the node would be if it were a node."
"Major mode for editing go.work files, powered by tree-sitter."
:group 'go
- (when (treesit-ensure-installed 'gowork)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'gowork)
+ (treesit-ready-p 'gowork))
(setq treesit-primary-parser (treesit-parser-create 'gowork))
;; Comments.
diff --git a/lisp/progmodes/heex-ts-mode.el b/lisp/progmodes/heex-ts-mode.el
index d756224f371..e8fec8b0469 100644
--- a/lisp/progmodes/heex-ts-mode.el
+++ b/lisp/progmodes/heex-ts-mode.el
@@ -201,7 +201,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
"Major mode for editing HEEx, powered by tree-sitter."
:group 'heex-ts
- (when (treesit-ensure-installed 'heex)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'heex)
+ (treesit-ready-p 'heex))
(setq treesit-primary-parser (treesit-parser-create 'heex))
;; Comments
@@ -236,7 +238,9 @@ Return nil if NODE is not a defun node or doesn't have a name."
(setq-local treesit-font-lock-feature-list
heex-ts--font-lock-feature-list)
- (when (treesit-ensure-installed 'elixir)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'elixir)
+ (treesit-ready-p 'elixir))
(require 'elixir-ts-mode)
(treesit-parser-create 'elixir)
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index e7e5bd901e1..3f2deca317c 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -4041,7 +4041,9 @@ See `treesit-thing-settings' for more information.")
\\<js-ts-mode-map>"
:group 'js
:syntax-table js-mode-syntax-table
- (when (treesit-ensure-installed 'javascript)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'javascript)
+ (treesit-ready-p 'javascript))
;; Borrowed from `js-mode'.
(setq-local prettify-symbols-alist js--prettify-symbols-alist)
(setq-local parse-sexp-ignore-comments t)
@@ -4073,7 +4075,9 @@ See `treesit-thing-settings' for more information.")
(setq-local treesit-font-lock-settings (js--treesit-font-lock-settings))
(setq-local treesit-font-lock-feature-list js--treesit-font-lock-feature-list)
- (when (treesit-ensure-installed 'jsdoc)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'jsdoc)
+ (treesit-ready-p 'jsdoc))
(setq-local treesit-range-settings
(treesit-range-rules
:embed 'jsdoc
diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el
index 8d726b9b15b..2963d5a96af 100644
--- a/lisp/progmodes/lua-ts-mode.el
+++ b/lisp/progmodes/lua-ts-mode.el
@@ -675,7 +675,9 @@ Calls REPORT-FN directly."
:syntax-table lua-ts--syntax-table
(use-local-map lua-ts-mode-map)
- (when (treesit-ensure-installed 'lua)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'lua)
+ (treesit-ready-p 'lua))
(setq treesit-primary-parser (treesit-parser-create 'lua))
;; Comments.
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index ad0e84bf74f..86336979067 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -7477,9 +7477,11 @@ implementations: `python-mode' and `python-ts-mode'."
\\{python-ts-mode-map}"
:syntax-table python-mode-syntax-table
- (when (if (fboundp 'treesit-ensure-installed) ; Emacs 31
- (treesit-ensure-installed 'python)
- (treesit-ready-p 'python))
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (if (fboundp 'treesit-ensure-installed) ; Emacs 31
+ (treesit-ensure-installed 'python)
+ t)
+ (treesit-ready-p 'python))
(setq treesit-primary-parser (treesit-parser-create 'python))
(setq-local treesit-font-lock-feature-list
'(( comment definition)
diff --git a/lisp/progmodes/rust-ts-mode.el b/lisp/progmodes/rust-ts-mode.el
index 9bc4324ff66..dee82f934ce 100644
--- a/lisp/progmodes/rust-ts-mode.el
+++ b/lisp/progmodes/rust-ts-mode.el
@@ -557,7 +557,9 @@ See `prettify-symbols-compose-predicate'."
:group 'rust
:syntax-table rust-ts-mode--syntax-table
- (when (treesit-ensure-installed 'rust)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'rust)
+ (treesit-ready-p 'rust))
(setq treesit-primary-parser (treesit-parser-create 'rust))
;; Syntax.
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 8479c3cfd9a..4d025eeb18d 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1583,7 +1583,9 @@ with your script for an edit-interpret-debug cycle."
This mode automatically falls back to `sh-mode' if the buffer is
not written in Bash or sh."
:syntax-table sh-mode-syntax-table
- (when (treesit-ensure-installed 'bash)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'bash)
+ (treesit-ready-p 'bash))
(sh-set-shell "bash" nil nil)
(add-hook 'flymake-diagnostic-functions #'sh-shellcheck-flymake nil t)
(add-hook 'hack-local-variables-hook
diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
index c9d1d1eff4d..61e281310aa 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -701,7 +701,9 @@ This mode is intended to be inherited by concrete major modes."
:group 'typescript
:syntax-table typescript-ts-mode--syntax-table
- (when (treesit-ensure-installed 'typescript)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'typescript)
+ (treesit-ready-p 'typescript))
(setq treesit-primary-parser (treesit-parser-create 'typescript))
;; Indent.
@@ -757,7 +759,9 @@ at least 3 (which is the default value)."
:group 'typescript
:syntax-table typescript-ts-mode--syntax-table
- (when (treesit-ensure-installed 'tsx)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'tsx)
+ (treesit-ready-p 'tsx))
(setq treesit-primary-parser (treesit-parser-create 'tsx))
;; Comments.
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 355555df090..12632e24e0e 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -1888,7 +1888,9 @@ can also be used to fill comments.
\\{css-mode-map}"
:syntax-table css-mode-syntax-table
- (when (treesit-ensure-installed 'css)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'css)
+ (treesit-ready-p 'css))
;; Borrowed from `css-mode'.
(setq-local syntax-propertize-function
css-syntax-propertize-function)
diff --git a/lisp/textmodes/mhtml-ts-mode.el b/lisp/textmodes/mhtml-ts-mode.el
index 2a1c62b87e4..d53d74e220a 100644
--- a/lisp/textmodes/mhtml-ts-mode.el
+++ b/lisp/textmodes/mhtml-ts-mode.el
@@ -511,7 +511,9 @@ Powered by tree-sitter."
;; jsdoc is not mandatory for js-ts-mode, so we respect this by
;; adding jsdoc range rules only when jsdoc is available.
- (when (treesit-ensure-installed 'jsdoc)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'jsdoc)
+ (treesit-ready-p 'jsdoc))
(setq-local c-ts-common--comment-regexp
js--treesit-jsdoc-comment-regexp))
diff --git a/lisp/textmodes/toml-ts-mode.el b/lisp/textmodes/toml-ts-mode.el
index d3f09526b90..63e3f60edd9 100644
--- a/lisp/textmodes/toml-ts-mode.el
+++ b/lisp/textmodes/toml-ts-mode.el
@@ -138,7 +138,9 @@ Return nil if there is no name or if NODE is not a defun node."
:group 'toml-mode
:syntax-table toml-ts-mode--syntax-table
- (when (treesit-ensure-installed 'toml)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'toml)
+ (treesit-ready-p 'toml))
(setq treesit-primary-parser (treesit-parser-create 'toml))
;; Comments
diff --git a/lisp/textmodes/yaml-ts-mode.el b/lisp/textmodes/yaml-ts-mode.el
index c1521c82c22..5afd4d2d111 100644
--- a/lisp/textmodes/yaml-ts-mode.el
+++ b/lisp/textmodes/yaml-ts-mode.el
@@ -262,7 +262,9 @@ Calls REPORT-FN directly."
:group 'yaml
:syntax-table yaml-ts-mode--syntax-table
- (when (treesit-ensure-installed 'yaml)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed 'yaml)
+ (treesit-ready-p 'yaml))
(setq treesit-primary-parser (treesit-parser-create 'yaml))
;; Comments.
diff --git a/lisp/treesit-x.el b/lisp/treesit-x.el
index 9d0541b458c..86eb417c7b5 100644
--- a/lisp/treesit-x.el
+++ b/lisp/treesit-x.el
@@ -142,7 +142,9 @@ of `define-treesit-generic-mode'.
;;;###autoload
(defun treesit-generic-mode-setup (lang)
"Go into the treesit generic mode MODE."
- (when (treesit-ensure-installed lang)
+ ;; `treesit-ready-p' also checks for buffer size.
+ (when (and (treesit-ensure-installed lang)
+ (treesit-ready-p lang))
(setq treesit-primary-parser (treesit-parser-create lang))
(when-let* ((query (treesit-generic-mode-font-lock-query lang)))