mirror of
https://github.com/doomemacs/doomemacs
synced 2025-09-12 15:36:53 -05:00
fix(tree-sitter): ignore major-mode-remap-defaults for ts modes
...registered with `set-tree-sitter!`. Then we don't have to chase after packages inconsistently modifying `major-mode-remap-defaults`.
This commit is contained in:
@@ -22,7 +22,7 @@ Note that COMMIT is only available in Emacs >=31."
|
||||
(setq recipes (ensure-list recipes))
|
||||
(dolist (m (ensure-list mode))
|
||||
(add-to-list
|
||||
'major-mode-remap-defaults
|
||||
'+tree-sitter--major-mode-remaps-alist
|
||||
(cons
|
||||
m (let (ensured?)
|
||||
(lambda ()
|
||||
|
@@ -1,5 +1,8 @@
|
||||
;;; tools/tree-sitter/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defvar +tree-sitter--major-mode-remaps-alist nil)
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
@@ -17,6 +20,20 @@
|
||||
(let ((user-emacs-directory doom-profile-data-dir))
|
||||
(apply fn args)))
|
||||
|
||||
;; HACK: Some *-ts-mode packages modify `major-mode-remap-defaults'
|
||||
;; inconsistently. Playing whack-a-mole to undo those changes is more hassle
|
||||
;; then simply ignoring them (by overriding `major-mode-remap-defaults' for
|
||||
;; any modes remapped with `set-tree-sitter!'). The user shouldn't touch
|
||||
;; `major-mode-remap-defaults' anyway; `major-mode-remap-alist' will always
|
||||
;; have precedence.
|
||||
(defadvice! +tree-sitter--ignore-default-major-mode-remaps-a (fn mode)
|
||||
:around #'major-mode-remap
|
||||
(let ((major-mode-remap-defaults
|
||||
(if-let* ((m (assq mode +tree-sitter--major-mode-remaps-alist)))
|
||||
+tree-sitter--major-mode-remaps-alist
|
||||
major-mode-remap-defaults)))
|
||||
(funcall fn mode)))
|
||||
|
||||
;; TODO: Move most of these out to modules
|
||||
(dolist (map '((awk "https://github.com/Beaglefoot/tree-sitter-awk" nil nil nil nil)
|
||||
(bibtex "https://github.com/latex-lsp/tree-sitter-bibtex" nil nil nil nil)
|
||||
|
Reference in New Issue
Block a user