Function: tsx-ts-mode--font-lock-compatibility-bb1f97b
tsx-ts-mode--font-lock-compatibility-bb1f97b is a byte-compiled
function defined in typescript-ts-mode.el.gz.
Signature
(tsx-ts-mode--font-lock-compatibility-bb1f97b LANGUAGE)
Documentation
Font lock rules helper, to handle different releases of tree-sitter-tsx.
Check if a node type is available, then return the right font lock rules.
Argument LANGUAGE is either typescript or tsx.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/typescript-ts-mode.el.gz
(defun tsx-ts-mode--font-lock-compatibility-bb1f97b (language)
"Font lock rules helper, to handle different releases of tree-sitter-tsx.
Check if a node type is available, then return the right font lock rules.
Argument LANGUAGE is either `typescript' or `tsx'."
;; handle commit bb1f97b
;; Warning: treesitter-query-capture says both node types are valid,
;; but then raises an error if the wrong node type is used. So it is
;; important to check with the new node type (member_expression)
;;
;; Later typescript grammar removed support for jsx, so the later
;; grammar versions this function just return nil.
(typescript-ts-mode--check-dialect language)
(let ((queries-a '((jsx_opening_element
[(member_expression (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_closing_element
[(member_expression (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_self_closing_element
[(member_expression (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_attribute (property_identifier)
@typescript-ts-jsx-attribute-face)
(jsx_expression (identifier)
@font-lock-variable-use-face)))
(queries-b '((jsx_opening_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_closing_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_self_closing_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_attribute (property_identifier)
@typescript-ts-jsx-attribute-face)
(jsx_expression (identifier)
@font-lock-variable-use-face))))
(or (and (treesit-query-valid-p language queries-a)
queries-a)
(and (treesit-query-valid-p language queries-b)
queries-b)
;; Return a dummy query that doesn't do anything, if neither
;; query works.
'("," @_ignore))))