branch: externals/csharp-mode commit f94e5a7e03bf900c0911fe8ac50db5e0ccc87d2e Author: Theodor Thornhill <t...@thornhill.no> Commit: Theodor Thornhill <t...@thornhill.no>
More extracting --- csharp-mode.el | 78 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/csharp-mode.el b/csharp-mode.el index be6c527..24739bd 100644 --- a/csharp-mode.el +++ b/csharp-mode.el @@ -182,7 +182,8 @@ (defcustom csharp-mode-literal '([(real_literal) (integer_literal)] @number (null_literal) @constant - (boolean_literal) @constant) + (boolean_literal) @constant + (character_literal) @string) "Patterns for literals in csharp-mode.") (defcustom csharp-mode-linq @@ -219,7 +220,8 @@ type: (identifier) @type name: (identifier) @variable) (class_declaration - name: (identifier) @type)) + name: (identifier) @type) + (constructor_declaration (identifier) @type)) "Patterns for classes in csharp-mode.") (defcustom csharp-mode-method @@ -247,6 +249,43 @@ (attribute (identifier) @variable)) "Patterns for attributes in csharp-mode.") +(defcustom csharp-mode-object-init + '((anonymous_object_creation_expression) + (object_creation_expression (identifier) @type) + (initializer_expression (identifier) @variable)) + "Patterns for object initialization in csharp-mode.") + +(defcustom csharp-mode-variable + '((variable_declaration (identifier) @type) + (variable_declarator (identifier) @variable)) + "Patterns for variables in csharp-mode.") + +(defcustom csharp-mode-type + '((type_parameter + (identifier) @type) + (type_argument_list + (identifier) @type) + (generic_name + (identifier) @type) + (implicit_type) @type) + "Patterns for types in csharp-mode.") + +(defcustom csharp-mode-expression + '((binary_expression (identifier) @variable (identifier) @variable) + (binary_expression (identifier)* @variable) + (conditional_expression (identifier) @variable) + (prefix_unary_expression (identifier)* @variable) + (postfix_unary_expression (identifier)* @variable) + (type_of_expression (identifier) @variable) + (assignment_expression (identifier) @variable) + (cast_expression (identifier) @type)) + "Patterns for expressions in csharp-mode.") + +(defcustom csharp-mode-preprocessor + '((preprocessor_directive) @constant + (preprocessor_call (identifier) @string)) + "Patterns for preprocessors in csharp-mode.") + ;;;###autoload (define-derived-mode csharp-mode prog-mode "C#" "Major mode for editing Csharp code. @@ -306,51 +345,32 @@ Key bindings: csharp-mode-parameter csharp-mode-array csharp-mode-attribute - '( - (qualified_name (identifier) @type) + csharp-mode-object-init + csharp-mode-variable + csharp-mode-type + csharp-mode-expression + csharp-mode-preprocessor + '((qualified_name (identifier) @type) (using_directive (identifier)* @type) - (implicit_type) @type (predefined_type) @type (await_expression (identifier)* @function) (invocation_expression (identifier) @function) - (initializer_expression (identifier) @variable) (element_access_expression (identifier) @variable) (conditional_access_expression (identifier) @variable) (member_binding_expression (identifier) @variable) (member_access_expression (identifier) @function) (name_colon (identifier)* @variable) - (type_parameter - (identifier) @type) - (type_argument_list - (identifier) @type) - (generic_name - (identifier) @type) (name_equals (identifier) @type) - (anonymous_object_creation_expression) - (object_creation_expression (identifier) @type) - (character_literal) @string - (binary_expression (identifier) @variable (identifier) @variable) - (binary_expression (identifier)* @variable) - (conditional_expression (identifier) @variable) ;; foreach (for_each_statement (identifier) @type (identifier) @variable (identifier) @variable) (field_declaration) - (constructor_declaration (identifier) @type) + ;; Unary expressions - (prefix_unary_expression (identifier)* @variable) - (postfix_unary_expression (identifier)* @variable) (nullable_type) @type - (type_of_expression (identifier) @variable) - (assignment_expression (identifier) @variable) - (preprocessor_directive) @constant - (preprocessor_call (identifier) @string) (argument (identifier) @variable) ;; switch statement (switch_statement (identifier) @variable) - ;; Casts - (cast_expression (identifier) @type) - (variable_declaration (identifier) @type) - (variable_declarator (identifier) @variable))))) + )))) (tree-sitter-hl-mode)) ;;;###autoload