js-ts-mode: Fix font-lock rules conflict

* lisp/progmodes/js.el (js--treesit-font-lock-settings): Move
'property' to after 'jsx'.  Stop using predicate (bug#67684).
(js--treesit-property-not-function-p): Delete.
This commit is contained in:
Dmitry Gutov 2023-12-13 00:00:38 +02:00
parent c165247c30
commit 400ef15bdc

View file

@ -3580,16 +3580,6 @@ Check if a node type is available, then return the right indent rules."
;; full namespace import (* as alias)
(import_clause (namespace_import (identifier) @font-lock-variable-name-face)))
:language 'javascript
:feature 'property
'(((property_identifier) @font-lock-property-use-face
(:pred js--treesit-property-not-function-p
@font-lock-property-use-face))
(pair value: (identifier) @font-lock-variable-use-face)
((shorthand_property_identifier) @font-lock-property-use-face))
:language 'javascript
:feature 'assignment
'((assignment_expression
@ -3610,6 +3600,12 @@ Check if a node type is available, then return the right indent rules."
(jsx_self_closing_element name: (_) @font-lock-function-call-face)
(jsx_attribute (property_identifier) @font-lock-constant-face))
:language 'javascript
:feature 'property
'(((property_identifier) @font-lock-property-use-face)
(pair value: (identifier) @font-lock-variable-use-face)
((shorthand_property_identifier) @font-lock-property-use-face))
:language 'javascript
:feature 'number
'((number) @font-lock-number-face
@ -3661,14 +3657,6 @@ OVERRIDE is the override flag described in
(setq font-beg (treesit-node-end child)
child (treesit-node-next-sibling child)))))
(defun js--treesit-property-not-function-p (node)
"Check that NODE, a property_identifier, is not used as a function."
(not (equal (treesit-node-type
(treesit-node-parent ; Maybe call_expression.
(treesit-node-parent ; Maybe member_expression.
node)))
"call_expression")))
(defvar js--treesit-lhs-identifier-query
(when (treesit-available-p)
(treesit-query-compile 'javascript '((identifier) @id