Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/c-sharp/highlights.scm')
| -rw-r--r-- | runtime/queries/c-sharp/highlights.scm | 374 |
1 files changed, 272 insertions, 102 deletions
diff --git a/runtime/queries/c-sharp/highlights.scm b/runtime/queries/c-sharp/highlights.scm index 07c3bfc3..38394862 100644 --- a/runtime/queries/c-sharp/highlights.scm +++ b/runtime/queries/c-sharp/highlights.scm @@ -1,63 +1,116 @@ -(identifier) @variable - ;; Methods +(method_declaration + name: (identifier) @function) -(method_declaration name: (identifier) @function) -(local_function_statement name: (identifier) @function) +(method_declaration + type: [(identifier) (qualified_name)] @type) -;; Types +(invocation_expression + (member_access_expression + name: (identifier) @function)) + +(invocation_expression + function: (conditional_access_expression + (member_binding_expression + name: (identifier) @function))) + +(invocation_expression + [(identifier) (qualified_name)] @function) + +(local_function_statement + name: (identifier) @function) +; Generic Method invocation with generic type +(invocation_expression + function: (generic_name + . (identifier) @function)) + +;; Namespaces +(namespace_declaration + name: [(identifier) (qualified_name)] @namespace) + +;; Types (interface_declaration name: (identifier) @type) (class_declaration name: (identifier) @type) (enum_declaration name: (identifier) @type) (struct_declaration (identifier) @type) (record_declaration (identifier) @type) -(namespace_declaration name: (identifier) @namespace) +(namespace_declaration name: (identifier) @type) +(using_directive (_) @namespace) +(constructor_declaration name: (identifier) @type) +(destructor_declaration name: (identifier) @type) +(object_creation_expression [(identifier) (qualified_name)] @type) +(type_parameter_list (type_parameter) @type) +(array_type (identifier) @type) +(for_each_statement type: (identifier) @type) -(generic_name (identifier) @type) -(type_parameter (identifier) @type.parameter) -(parameter type: (identifier) @type) -(type_argument_list (identifier) @type) -(as_expression right: (identifier) @type) -(is_expression right: (identifier) @type) +[ + (implicit_type) + (nullable_type) + (pointer_type) + (function_pointer_type) + (predefined_type) +] @type.builtin -(constructor_declaration name: (identifier) @constructor) -(destructor_declaration name: (identifier) @constructor) +;; Generic Types +(type_of_expression + (generic_name + (identifier) @type)) -(_ type: (identifier) @type) +(base_list + (generic_name + (identifier) @type)) -(base_list (identifier) @type) +(type_constraint + (generic_name + (identifier) @type)) + +(object_creation_expression + (generic_name + (identifier) @type)) -(predefined_type) @type.builtin +(property_declaration + (generic_name + (identifier) @type)) + +(_ + type: (generic_name + (identifier) @type)) ;; Enum -(enum_member_declaration (identifier) @type.enum.variant) +(enum_member_declaration (identifier) @variable.other.member) ;; Literals +[ + (real_literal) + (integer_literal) +] @constant.numeric.integer -(real_literal) @constant.numeric.float -(integer_literal) @constant.numeric.integer (character_literal) @constant.character - [ (string_literal) - (raw_string_literal) (verbatim_string_literal) - (interpolated_string_expression) - (interpolation_start) - (interpolation_quote) + (interpolated_string_text) + (interpolated_verbatim_string_text) + (interpolation_format_clause) + "\"" + "$\"" + "@$\"" + "$@\"" ] @string -(escape_sequence) @constant.character.escape - (boolean_literal) @constant.builtin.boolean -(null_literal) @constant.builtin +[ + (null_literal) + (void_keyword) +] @constant.builtin ;; Comments - (comment) @comment ;; Tokens +(type_argument_list ["<" ">"] @punctuation.bracket) +(type_parameter_list ["<" ">"] @punctuation.bracket) [ ";" @@ -70,7 +123,6 @@ "-" "-=" "&" - "&=" "&&" "+" "++" @@ -88,14 +140,11 @@ ">=" ">>" ">>=" - ">>>" - ">>>=" "|" - "|=" "||" + "|=" "?" "??" - "??=" "^" "^=" "~" @@ -106,103 +155,224 @@ "%" "%=" ":" + "::" + ".." + "&=" + "->" + "??=" ] @operator -[ - "(" - ")" - "[" - "]" - "{" - "}" - (interpolation_brace) -] @punctuation.bracket +["(" ")" "[" "]" "{" "}"] @punctuation.bracket ;; Keywords +(modifier) @keyword.storage.modifier +(this_expression) @keyword +(escape_sequence) @constant.character.escape [ - (modifier) - "this" - (implicit_type) -] @keyword - -[ - "add" - "alias" "as" + "await" "base" - "break" - "case" - "catch" "checked" - "class" - "continue" - "default" - "delegate" - "do" - "else" - "enum" - "event" - "explicit" - "extern" - "finally" - "for" - "foreach" - "global" - "goto" - "if" - "implicit" - "interface" + "from" + "get" + "in" + "init" "is" + "let" "lock" - "namespace" - "notnull" + "new" "operator" + "out" "params" - "return" - "remove" + "ref" + "select" + "set" "sizeof" "stackalloc" - "static" - "struct" - "switch" - "throw" - "try" "typeof" "unchecked" "using" - "while" - "new" - "await" - "in" - "yield" - "get" - "set" "when" - "out" - "ref" - "from" "where" - "select" - "record" - "init" "with" - "let" + "yield" ] @keyword -;; Attribute +[ + "class" + "delegate" + "enum" + "event" + "interface" + "namespace" + "struct" + "record" +] @keyword.storage.type + +[ + "explicit" + "implicit" + "static" +] @keyword.storage.modifier + +[ + "break" + "continue" + "goto" +] @keyword.control -(attribute name: (identifier) @attribute) +[ + "catch" + "finally" + "throw" + "try" +] @keyword.control.exception -;; Parameters +[ + "do" + "for" + "foreach" + "while" +] @keyword.control.repeat +[ + "case" + "default" + "else" + "if" + "switch" +] @keyword.control.conditional + +"return" @keyword.control.return + +[ + (nullable_directive) + (define_directive) + (undef_directive) + (if_directive) + (else_directive) + (elif_directive) + (endif_directive) + (region_directive) + (endregion_directive) + (error_directive) + (warning_directive) + (line_directive) + (pragma_directive) +] @keyword.directive + +;; Linq +(from_clause (identifier) @variable) +(group_clause) +(order_by_clause) +(select_clause (identifier) @variable) +(query_continuation (identifier) @variable) @keyword + +;; Record +(with_expression + (with_initializer_expression + (simple_assignment_expression + (identifier) @variable))) + +;; Exprs +(binary_expression [(identifier) (qualified_name)] @variable [(identifier) (qualified_name)] @variable) +(binary_expression [(identifier) (qualified_name)]* @variable) +(conditional_expression [(identifier) (qualified_name)] @variable) +(conditional_access_expression [(identifier) (qualified_name)] @variable) +(prefix_unary_expression [(identifier) (qualified_name)] @variable) +(postfix_unary_expression [(identifier) (qualified_name)]* @variable) +(assignment_expression [(identifier) (qualified_name)] @variable) +(cast_expression [(identifier) (qualified_name)] @type [(identifier) (qualified_name)] @variable) +(element_access_expression (identifier) @variable) +(member_access_expression + expression: ([(identifier) (qualified_name)] @type + (#match? @type "^[A-Z]"))) +(member_access_expression [(identifier) (qualified_name)] @variable) + +;; Class +(base_list (identifier) @type) +(property_declaration (generic_name)) +(property_declaration + type: (nullable_type) @type + name: (identifier) @variable) +(property_declaration + type: (predefined_type) @type + name: (identifier) @variable) +(property_declaration + type: (identifier) @type + name: (identifier) @variable) + +;; Delegate +(delegate_declaration (identifier) @type) + +;; Lambda +(lambda_expression) @variable + +;; Attribute +(attribute) @type + +;; Parameter (parameter + type: (identifier) @type name: (identifier) @variable.parameter) +(parameter (identifier) @variable.parameter) +(parameter_modifier) @keyword -;; Type constraints +(parameter_list + (parameter + name: (identifier) @parameter)) + +(parameter_list + (parameter + type: [(identifier) (qualified_name)] @type)) -(type_parameter_constraints_clause (identifier) @type.parameter) +;; Typeof +(type_of_expression [(identifier) (qualified_name)] @type) -;; Method calls +;; Variable +(variable_declaration [(identifier) (qualified_name)] @type) +(variable_declarator [(identifier) (qualified_name)] @variable) -(invocation_expression (member_access_expression name: (identifier) @function)) +;; Return +(return_statement (identifier) @variable) +(yield_statement (identifier) @variable) + +;; Type +(generic_name (identifier) @type) +(type_parameter [(identifier) (qualified_name)] @type) +(type_argument_list [(identifier) (qualified_name)] @type) + +;; Type constraints +(type_parameter_constraints_clause (identifier) @variable.parameter) +(type_constraint (identifier) @type) + +;; Exception +(catch_declaration (identifier) @type (identifier) @variable) +(catch_declaration (identifier) @type) + +;; Switch +(switch_statement (identifier) @variable) +(switch_expression (identifier) @variable) + +;; Lock statement +(lock_statement (identifier) @variable) + +;; Declaration expression +(declaration_expression + type: (identifier) @type + name: (identifier) @variable) + +;; Rest +(argument (identifier) @variable) +(name_colon (identifier) @variable) +(if_statement (identifier) @variable) +(for_statement (identifier) @variable) +(for_each_statement (identifier) @variable) +(expression_statement (identifier) @variable) +(array_rank_specifier (identifier) @variable) +(equals_value_clause (identifier) @variable) +(interpolation (identifier) @variable) +(cast_expression (identifier) @variable) +((identifier) @comment.unused + (#eq? @comment.unused "_")) |