Function: alpinejs-generic-ts-setup
alpinejs-generic-ts-setup is a byte-compiled function defined in
treesit-x.el.gz.
Signature
(alpinejs-generic-ts-setup)
Documentation
Tree-sitter generic setup for Alpine.js framework.
It uses JavaScript highlighting inside a limited set of HTML attributes.
Intended to be used in combination with such major modes as
mhtml-ts-mode and liquid-generic-ts-mode. For example:
(add-hook 'mhtml-ts-mode-hook 'alpinejs-generic-ts-setup)
(add-hook 'liquid-generic-ts-mode-hook 'alpinejs-generic-ts-setup)
Source Code
;; Defined in /usr/src/emacs/lisp/treesit-x.el.gz
(defun alpinejs-generic-ts-setup ()
"Tree-sitter generic setup for Alpine.js framework.
It uses JavaScript highlighting inside a limited set of HTML attributes.
Intended to be used in combination with such major modes as
`mhtml-ts-mode' and `liquid-generic-ts-mode'. For example:
\(add-hook \\='mhtml-ts-mode-hook \\='alpinejs-generic-ts-setup)
\(add-hook \\='liquid-generic-ts-mode-hook \\='alpinejs-generic-ts-setup)"
;; Use JavaScript highlighting for Alpinejs HTML attributes
(setq-local treesit-range-settings
(append treesit-range-settings
(treesit-range-rules
:embed 'javascript
:host 'html
:local t
`((attribute
(attribute_name) @_name
(:match ,alpinejs-generic-ts-attr-regexp @_name)
(quoted_attribute_value
(attribute_value) @cap))))))
;; Highlight only non-Alpinejs HTML attributes
(setq-local treesit-font-lock-settings
(treesit-replace-font-lock-feature-settings
(treesit-font-lock-rules
:language 'html
:override t
:feature 'string
`((attribute
(attribute_name) @_name
(:pred alpinejs-generic-ts-attr-not-match @_name)
(quoted_attribute_value) @font-lock-string-face)))
treesit-font-lock-settings))
;; Highlight only quotes for Alpinejs HTML attributes
(setq-local treesit-font-lock-settings
(append treesit-font-lock-settings
(treesit-font-lock-rules
:language 'html
:override t
:feature 'string
`((attribute
(attribute_name) @_name
(:match ,alpinejs-generic-ts-attr-regexp @_name)
(quoted_attribute_value "\"" @font-lock-string-face))))))
(treesit-major-mode-setup)
(run-mode-hooks 'alpinejs-generic-ts-setup-hook))