mirror of
https://github.com/doomemacs/doomemacs
synced 2025-09-10 15:33:36 -05:00
fix(tree-sitter): remove *-ts-mode-maybe from {auto,interpreter}-mode-alist
Again, removing more over-eager entries. Also fixes `set-tree-sitter!` not accepting multiple MODEs before.
This commit is contained in:
@@ -18,24 +18,28 @@ plists, it will be transformed into entries for `treesit-language-source-alist'
|
|||||||
(which describe what each of these keys mean). Note that COMMIT is ignored
|
(which describe what each of these keys mean). Note that COMMIT is ignored
|
||||||
pre-Emacs 31."
|
pre-Emacs 31."
|
||||||
(declare (indent 2))
|
(declare (indent 2))
|
||||||
(cl-check-type mode symbol)
|
(cl-check-type mode (or list symbol))
|
||||||
(cl-check-type ts-mode symbol)
|
(cl-check-type ts-mode symbol)
|
||||||
(setq recipes (mapcar #'ensure-list (ensure-list recipes)))
|
(let ((recipes (mapcar #'ensure-list (ensure-list recipes))))
|
||||||
(dolist (m (ensure-list mode))
|
(dolist (m (or (ensure-list mode) (list nil)))
|
||||||
(setf (alist-get m major-mode-remap-defaults) ts-mode)
|
(when m
|
||||||
(put ts-mode '+tree-sitter (cons m (mapcar #'car recipes))))
|
(setf (alist-get m major-mode-remap-defaults) ts-mode))
|
||||||
(when (setq recipes (cl-remove-if-not #'cdr recipes))
|
(put ts-mode '+tree-sitter (cons m (mapcar #'car recipes))))
|
||||||
(with-eval-after-load 'treesit
|
(when-let* ((fn (intern-soft (format "%s-maybe" ts-mode))))
|
||||||
(dolist (recipe recipes)
|
(cl-callf2 rassq-delete-all fn auto-mode-alist)
|
||||||
(cl-destructuring-bind (name &key url rev source-dir cc cpp commit) (ensure-list recipe)
|
(cl-callf2 rassq-delete-all fn interpreter-mode-alist))
|
||||||
(setf (alist-get name treesit-language-source-alist)
|
(when-let* ((recipes (cl-delete-if-not #'cdr recipes)))
|
||||||
(append (list url rev source-dir cc cpp)
|
(with-eval-after-load 'treesit
|
||||||
;; COMPAT: 31.1 introduced a COMMIT recipe argument. On
|
(dolist (recipe recipes)
|
||||||
;; <=30.x, extra arguments will trigger an arity error
|
(cl-destructuring-bind (name &key url rev source-dir cc cpp commit) (ensure-list recipe)
|
||||||
;; when installing grammars.
|
(setf (alist-get name treesit-language-source-alist)
|
||||||
(if (eq (cdr (func-arity 'treesit--install-language-grammar-1))
|
(append (list url rev source-dir cc cpp)
|
||||||
'many)
|
;; COMPAT: 31.1 introduced a COMMIT recipe argument. On
|
||||||
(list commit)))))))))
|
;; <=30.x, extra arguments will trigger an arity error
|
||||||
|
;; when installing grammars.
|
||||||
|
(if (eq (cdr (func-arity 'treesit--install-language-grammar-1))
|
||||||
|
'many)
|
||||||
|
(list commit))))))))))
|
||||||
|
|
||||||
;; ;; HACK: Remove and refactor when `use-package' eager macro expansion is solved or `use-package!' is removed
|
;; ;; HACK: Remove and refactor when `use-package' eager macro expansion is solved or `use-package!' is removed
|
||||||
;; ;;;###autoload
|
;; ;;;###autoload
|
||||||
|
Reference in New Issue
Block a user