From 333602ff341b8a8add15ff96054cfc5cea0116cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= Date: Sun, 1 Jan 2023 17:27:06 +0100 Subject: [PATCH] lisp/progmodes/csharp-mode.el: adjust function-call fontification - ensure method-invocations are highlighted only on level 4 - ensure consistent fontification of variable declarations (don't highlight usage of all variables) - fix issues with highlighting types in new() expressions. - fix issues with generic types in variable-declarations not using "var". - use fewer, more general queries for function-invocations. simplify code. --- lisp/progmodes/csharp-mode.el | 64 +++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el index da64daf9848..473e8f49fd3 100644 --- a/lisp/progmodes/csharp-mode.el +++ b/lisp/progmodes/csharp-mode.el @@ -696,7 +696,7 @@ csharp-ts-mode--font-lock-settings :feature 'expression '((conditional_expression (identifier) @font-lock-variable-name-face) (postfix_unary_expression (identifier)* @font-lock-variable-name-face) - (assignment_expression (identifier) @font-lock-variable-name-face)) + (initializer_expression (assignment_expression left: (identifier) @font-lock-variable-name-face))) :language 'c-sharp :feature 'bracket @@ -764,8 +764,12 @@ csharp-ts-mode--font-lock-settings (identifier) @font-lock-type-face) (type_argument_list (identifier) @font-lock-type-face) - (generic_name - (identifier) @font-lock-type-face) + (type_argument_list + (generic_name + (identifier) @font-lock-type-face)) + (base_list + (generic_name + (identifier) @font-lock-type-face)) (array_type (identifier) @font-lock-type-face) (cast_expression (identifier) @font-lock-type-face) @@ -773,7 +777,12 @@ csharp-ts-mode--font-lock-settings (type_parameter_constraints_clause target: (identifier) @font-lock-type-face) (type_of_expression (identifier) @font-lock-type-face) - (object_creation_expression (identifier) @font-lock-type-face)) + (object_creation_expression + type: (identifier) @font-lock-type-face) + (object_creation_expression + type: (generic_name (identifier) @font-lock-type-face)) + (as_expression right: (identifier) @font-lock-type-face) + (as_expression right: (generic_name (identifier) @font-lock-type-face))) :language 'c-sharp :feature 'definition @@ -793,7 +802,6 @@ csharp-ts-mode--font-lock-settings (record_declaration (identifier) @font-lock-type-face) (namespace_declaration (identifier) @font-lock-type-face) (base_list (identifier) @font-lock-type-face) - (property_declaration (generic_name)) (property_declaration type: (nullable_type) @font-lock-type-face name: (identifier) @font-lock-variable-name-face) @@ -807,29 +815,10 @@ csharp-ts-mode--font-lock-settings (constructor_declaration name: (_) @font-lock-type-face) - (method_declaration type: (_) @font-lock-type-face) + (method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face) + (method_declaration type: (generic_name (identifier) @font-lock-type-face)) (method_declaration name: (_) @font-lock-function-name-face) - (invocation_expression - (member_access_expression - (generic_name (identifier) @font-lock-function-name-face))) - (invocation_expression - (member_access_expression - ((identifier) @font-lock-variable-name-face - (identifier) @font-lock-function-name-face))) - (invocation_expression - (identifier) @font-lock-function-name-face) - (invocation_expression - (member_access_expression - expression: (identifier) @font-lock-variable-name-face)) - (invocation_expression - function: [(generic_name (identifier)) @font-lock-function-name-face - (generic_name (type_argument_list - ["<"] @font-lock-bracket-face - (identifier) @font-lock-type-face - [">"] @font-lock-bracket-face) - )]) - (catch_declaration ((identifier) @font-lock-type-face)) (catch_declaration @@ -837,13 +826,30 @@ csharp-ts-mode--font-lock-settings (identifier) @font-lock-variable-name-face)) (variable_declaration (identifier) @font-lock-type-face) + (variable_declaration (generic_name (identifier) @font-lock-type-face)) (variable_declarator (identifier) @font-lock-variable-name-face) (parameter type: (identifier) @font-lock-type-face) + (parameter type: (generic_name (identifier) @font-lock-type-face)) (parameter name: (identifier) @font-lock-variable-name-face) - (binary_expression (identifier) @font-lock-variable-name-face) - (argument (identifier) @font-lock-variable-name-face)) + (lambda_expression (identifier) @font-lock-variable-name-face) + + (declaration_expression type: (identifier) @font-lock-type-face) + (declaration_expression name: (identifier) @font-lock-variable-name-face)) + + :language 'c-sharp + :feature 'function + '((invocation_expression + function: (member_access_expression + name: (identifier) @font-lock-function-name-face)) + (invocation_expression + function: (identifier) @font-lock-function-name-face) + (invocation_expression + function: (member_access_expression + name: (generic_name (identifier) @font-lock-function-name-face))) + (invocation_expression + function: (generic_name (identifier) @font-lock-function-name-face))) :language 'c-sharp :feature 'escape-sequence @@ -916,7 +922,7 @@ csharp-ts-mode '(( comment definition) ( keyword string type) ( constant escape-sequence expression literal property) - ( bracket delimiter error))) + ( function bracket delimiter error))) ;; Imenu. (setq-local treesit-simple-imenu-settings -- 2.37.2