From b7eb9b37eb9cfd6a94a862f5944b00c113ee7efb Mon Sep 17 00:00:00 2001 From: Noah Peart Date: Thu, 18 Apr 2024 18:22:05 -0700 Subject: [PATCH] Add font-locking for Rust macros * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): Add font-locking for Rust macro metavariables, fragment specifiers and repitition patterns. --- lisp/progmodes/rust-ts-mode.el | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lisp/progmodes/rust-ts-mode.el b/lisp/progmodes/rust-ts-mode.el index 7112ceced57..69538568d1c 100644 --- a/lisp/progmodes/rust-ts-mode.el +++ b/lisp/progmodes/rust-ts-mode.el @@ -178,6 +178,8 @@ rust-ts-mode--font-lock-settings '((function_item name: (identifier) @font-lock-function-name-face) (macro_definition "macro_rules!" @font-lock-constant-face) (macro_definition (identifier) @font-lock-preprocessor-face) + (token_binding_pattern + name: (metavariable) @font-lock-variable-name-face) (field_declaration name: (field_identifier) @font-lock-property-name-face) (parameter pattern: (_) @rust-ts-mode--fontify-pattern) (closure_parameters (_) @rust-ts-mode--fontify-pattern) @@ -218,7 +220,9 @@ rust-ts-mode--font-lock-settings :language 'rust :feature 'operator - `([,@rust-ts-mode--operators] @font-lock-operator-face) + `([,@rust-ts-mode--operators] @font-lock-operator-face + (token_repetition_pattern ["$" "*" "+"] @font-lock-operator-face) + (token_repetition ["$" "*" "+"] @font-lock-operator-face)) :language 'rust :feature 'string @@ -248,8 +252,7 @@ rust-ts-mode--font-lock-settings (_ type: (scoped_identifier path: (identifier) @font-lock-type-face)))) (mod_item name: (identifier) @font-lock-constant-face) - (primitive_type) @font-lock-type-face - (type_identifier) @font-lock-type-face + [(fragment_specifier) (primitive_type) (type_identifier)] @font-lock-type-face ((scoped_identifier name: (identifier) @rust-ts-mode--fontify-tail)) ((scoped_identifier path: (identifier) @font-lock-type-face) (:match ,(rx bos @@ -259,8 +262,7 @@ rust-ts-mode--font-lock-settings eos) @font-lock-type-face)) ((scoped_identifier path: (identifier) @rust-ts-mode--fontify-scope)) - ((scoped_type_identifier path: (identifier) @rust-ts-mode--fontify-scope)) - (type_identifier) @font-lock-type-face) + ((scoped_type_identifier path: (identifier) @rust-ts-mode--fontify-scope))) :language 'rust :feature 'property @@ -294,7 +296,8 @@ rust-ts-mode--font-lock-settings (return_expression (identifier) @font-lock-variable-use-face) (tuple_expression (identifier) @font-lock-variable-use-face) (unary_expression (identifier) @font-lock-variable-use-face) - (while_expression condition: (identifier) @font-lock-variable-use-face)) + (while_expression condition: (identifier) @font-lock-variable-use-face) + (metavariable) @font-lock-variable-use-face) :language 'rust :feature 'escape-sequence -- 2.34.1