mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
* lisp/treesit-x.el: Use 'treesit-ensure-installed'.
(define-treesit-generic-mode): Append new item to 'treesit-language-source-alist' instead of prepending. (treesit-generic-mode-setup): Remove 'source' arg. Use 'treesit-ensure-installed'. (liquid-generic-ts-mode): Use 'treesit-ensure-installed'. (alpinejs-generic-ts-setup): Run setup hook. (treesit-generic-mode-font-lock-map): Add more mappings.
This commit is contained in:
parent
8fb45fcaed
commit
426c98bd96
1 changed files with 19 additions and 15 deletions
|
|
@ -116,7 +116,7 @@ of `define-treesit-generic-mode'.
|
|||
|
||||
`(progn
|
||||
;; Add lang and source to source-alist.
|
||||
(add-to-list 'treesit-language-source-alist (cons ,lang ,source))
|
||||
(add-to-list 'treesit-language-source-alist (cons ,lang ,source) t)
|
||||
|
||||
;; Add it to auto-mode-alist
|
||||
(dolist (re ,auto-mode)
|
||||
|
|
@ -128,21 +128,14 @@ of `define-treesit-generic-mode'.
|
|||
,(or docstring
|
||||
(concat (or name pretty-name) " mode.\n"
|
||||
"This a tree-sitter mode defined with `define-treesit-generic-mode'."))
|
||||
(treesit-generic-mode-setup ,lang ,source)
|
||||
(treesit-generic-mode-setup ,lang)
|
||||
,@body
|
||||
(treesit-major-mode-setup)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun treesit-generic-mode-setup (lang source)
|
||||
(defun treesit-generic-mode-setup (lang)
|
||||
"Go into the treesit generic mode MODE."
|
||||
(unless (treesit-ready-p lang t)
|
||||
(when (y-or-n-p (format "Install grammar for %s?" lang))
|
||||
(apply
|
||||
#'treesit--install-language-grammar-1
|
||||
(locate-user-emacs-file "tree-sitter")
|
||||
lang source)))
|
||||
|
||||
(when (treesit-ready-p lang)
|
||||
(when (treesit-ensure-installed lang)
|
||||
(setq treesit-primary-parser (treesit-parser-create lang))
|
||||
|
||||
(when-let* ((query (treesit-generic-mode-font-lock-query lang)))
|
||||
|
|
@ -164,17 +157,26 @@ of `define-treesit-generic-mode'.
|
|||
("@boolean" . "@font-lock-constant-face")
|
||||
("@comment" . "@font-lock-comment-face")
|
||||
("@constant" . "@font-lock-constant-face")
|
||||
("@delimiter" . "@font-lock-delimiter-face")
|
||||
("@error" . "@font-lock-warning-face")
|
||||
("@escape" . "@font-lock-escape-face")
|
||||
("@function" . "@font-lock-function-name-face")
|
||||
("@function.call" . "@font-lock-function-call-face")
|
||||
("@keyword" . "@font-lock-keyword-face")
|
||||
("@keyword.operator" . "@font-lock-operator-face")
|
||||
("@number" . "@font-lock-number-face")
|
||||
("@operator" . "@font-lock-operator-face")
|
||||
("@property" . "@font-lock-property-use-face")
|
||||
("@property" . "@font-lock-property-name-face")
|
||||
("@punctuation.bracket" . "@font-lock-bracket-face")
|
||||
("@punctuation.delimiter" . "@font-lock-delimiter-face")
|
||||
("@punctuation.special" . "@font-lock-misc-punctuation-face")
|
||||
("@string" . "@font-lock-string-face")
|
||||
("@string.regexp" . "@font-lock-regexp-face")
|
||||
("@string.special" . "@font-lock-string-face")
|
||||
("@string" . "@font-lock-string-face")
|
||||
("@tag.delimiter" . "@font-lock-delimiter-face")
|
||||
("@text.reference" . "@font-lock-doc-face")
|
||||
("@type" . "@font-lock-type-face")
|
||||
("@variable" . "@font-lock-variable-name-face")
|
||||
("@variable.builtin" . "@font-lock-builtin-face")
|
||||
("@variable.parameter" . "@font-lock-variable-name-face")
|
||||
)
|
||||
|
|
@ -241,7 +243,7 @@ of `define-treesit-generic-mode'.
|
|||
"for_loop_statement")
|
||||
eos)))))
|
||||
|
||||
(when (treesit-ready-p 'yaml t)
|
||||
(when (treesit-ensure-installed 'yaml)
|
||||
(defvar yaml-ts-mode--font-lock-settings)
|
||||
(require 'yaml-ts-mode)
|
||||
(setq-local treesit-range-settings
|
||||
|
|
@ -310,7 +312,9 @@ Intended to be used in combination with such major modes as
|
|||
(:match ,alpinejs-generic-ts-attr-regexp @_name)
|
||||
(quoted_attribute_value "\"" @font-lock-string-face))))))
|
||||
|
||||
(treesit-major-mode-setup))
|
||||
(treesit-major-mode-setup)
|
||||
|
||||
(run-mode-hooks 'alpinejs-generic-ts-setup-hook))
|
||||
|
||||
(provide 'treesit-x)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue