From 1014bcc8e32c8ab7b25e148d13e7e3a82f9635b9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jostein=20Kj=C3=B8nigsen?= Date: Thu, 8 Dec 2022 15:45:00 +0100 Subject: [PATCH] Fix fontification of method-invocations in js-ts-mode (bug#59904) * lisp/progmodes/js.el (js--treesit-font-lock-settings): Move rules for property in front of function names, so function names override property. --- lisp/progmodes/js.el | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 45dfef372cd..f7318c481a2 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -3543,6 +3543,20 @@ This function is intended for use in `after-change-functions'." (arrow_function parameter: (identifier) @font-lock-variable-name-face)) + :language 'javascript + :override t + :feature 'property + ;; This needs to be before function-name feature, because methods + ;; can be both property and function-name, and we want them in + ;; function-name face. + `((property_identifier) @font-lock-property-face + + (pair value: (identifier) @font-lock-variable-name-face) + + ((shorthand_property_identifier) @font-lock-property-face) + + ((shorthand_property_identifier_pattern) @font-lock-property-face)) + :language 'javascript :override t :feature 'expression @@ -3611,18 +3625,7 @@ This function is intended for use in `after-change-functions'." :language 'javascript :feature 'escape-sequence :override t - '((escape_sequence) @font-lock-escape-face) - - :language 'javascript - :override t - :feature 'property - `((property_identifier) @font-lock-property-face - - (pair value: (identifier) @font-lock-variable-name-face) - - ((shorthand_property_identifier) @font-lock-property-face) - - ((shorthand_property_identifier_pattern) @font-lock-property-face))) + '((escape_sequence) @font-lock-escape-face)) "Tree-sitter font-lock settings.") (defun js--fontify-template-string (node override start end &rest _) -- 2.39.2