fix: backport treesit-available-p sooner

This fixes Doom for Emacs 27-28 users (or builds without treesit).
This commit is contained in:
Henrik Lissner
2025-09-15 17:25:24 -04:00
parent 64802ae654
commit 71ec9a9733
4 changed files with 22 additions and 24 deletions

View File

@@ -132,6 +132,25 @@ The functions in the hook are called with one parameter -- the
(funcall fn theme)
(run-hook-with-args 'enable-theme-functions theme))))
;; Introduced in 29.1
;; In case of Emacs builds where treesit isn't built in (to avoid void-function
;; errors and verbose, redundant checks everywhere).
;;;###autodef
(unless (fboundp 'treesit-available-p)
(defun treesit-available-p ()
"Return non-nil if tree-sitter support is built-in and available."
nil))
;;;###autoload
(unless (fboundp 'treesit-library-abi-version)
(defun treesit-library-abi-version (&optional _min-compatible)
0))
;;;###autoload
(unless (fboundp 'treesit-language-abi-version)
(defun treesit-language-abi-version (&optional _lang)
nil))
;;; From Emacs >= 30
;; Introduced in 30.1

View File

@@ -1,5 +1,5 @@
;;; tools/tree-sitter/autoload/compat-30.el -*- lexical-binding: t; -*-
;;;###if (and (fboundp 'treesit-available-p) (version< emacs-version "31.1"))
;;;###if (and (treesit-available-p) (version< emacs-version "31.1"))
;;
;; Backported from 31.1
;;
@@ -7,24 +7,6 @@
(autoload 'treesit-ready-p "treesit")
;; In case of Emacs builds where treesit isn't built in (to avoid void-function
;; errors and verbose, redundant checks everywhere).
;;;###autodef
(unless (fboundp 'treesit-available-p)
(defun treesit-available-p ()
"Return non-nil if tree-sitter support is built-in and available."
nil))
;;;###autoload
(unless (fboundp 'treesit-library-abi-version)
(defun treesit-library-abi-version (&optional _min-compatible)
0))
;;;###autoload
(unless (fboundp 'treesit-language-abi-version)
(defun treesit-language-abi-version (&optional _lang)
nil))
;;;###autoload
(defcustom treesit-auto-install-grammar 'ask
"Whether to install tree-sitter language grammar libraries when needed.

View File

@@ -4,7 +4,6 @@
;;; Packages
(use-package! treesit
:when (fboundp 'treesit-available-p)
:when (treesit-available-p)
:defer t
:preface
@@ -48,8 +47,7 @@
(let ((mode (funcall fn mode)))
(if-let* ((ts (get mode '+tree-sitter))
(fallback-mode (car ts)))
(cond ((or (not (fboundp 'treesit-available-p))
(not (treesit-available-p)))
(cond ((not (treesit-available-p))
(message "Treesit unavailable, falling back to `%S'" fallback-mode)
fallback-mode)
((not (fboundp mode))

View File

@@ -5,6 +5,5 @@
(if (version< emacs-version "29.1")
(error! "Emacs 29.1 or newer is required for tree-sitter support")
(unless (and (fboundp 'treesit-available-p)
(treesit-available-p))
(unless (treesit-available-p)
(error! "Emacs not built with tree-sitter support!")))