Constant tree_sitter_solidity::HIGHLIGHT_QUERY
source · pub const HIGHLIGHT_QUERY: &str = "; identifiers\n; -----------\n(identifier) @variable\n(yul_identifier) @variable\n\n; Pragma\n(pragma_directive) @tag\n(solidity_version_comparison_operator _ @tag)\n\n; Literals\n; --------\n\n[\n (string)\n (hex_string_literal)\n (unicode_string_literal)\n (yul_string_literal)\n] @string\n[\n (number_literal)\n (yul_decimal_number)\n (yul_hex_number)\n] @number\n[\n (true)\n (false)\n] @constant.builtin\n\n(comment) @comment\n\n; Definitions and references\n; -----------\n\n(type_name) @type\n(primitive_type) @type\n(user_defined_type (identifier) @type)\n\n(payable_conversion_expression \"payable\" @type)\n; Ensures that delimiters in mapping( ... => .. ) are not colored like types\n(type_name \"(\" @punctuation.bracket \"=>\" @punctuation.delimiter \")\" @punctuation.bracket)\n\n; Definitions\n(struct_declaration\n name: (identifier) @type)\n(enum_declaration\n name: (identifier) @type)\n(contract_declaration\n name: (identifier) @type)\n(library_declaration\n name: (identifier) @type)\n(interface_declaration\n name: (identifier) @type)\n(event_definition\n name: (identifier) @type)\n\n(function_definition\n name: (identifier) @function)\n\n(modifier_definition\n name: (identifier) @function)\n(yul_evm_builtin) @function.builtin\n\n; Use constructor coloring for special functions\n(constructor_definition \"constructor\" @constructor)\n(fallback_receive_definition \"receive\" @constructor)\n(fallback_receive_definition \"fallback\" @constructor)\n\n(struct_member name: (identifier) @property)\n(enum_value) @constant\n\n; Invocations\n(emit_statement . (_) @type)\n(modifier_invocation (identifier) @function)\n\n(call_expression . (_(member_expression property: (_) @function.method)))\n(call_expression . (expression(identifier)) @function)\n\n; Function parameters\n(call_struct_argument name: (_) @field)\n(event_parameter name: (identifier) @parameter)\n(parameter name: (identifier) @variable.parameter)\n\n; Yul functions\n(yul_function_call function: (yul_identifier) @function)\n(yul_function_definition . (yul_identifier) @function (yul_identifier) @parameter)\n\n\n; Structs and members\n(member_expression property: (identifier) @property)\n(struct_expression type: ((expression(identifier)) @type .))\n(struct_field_assignment name: (identifier) @property)\n\n\n; Tokens\n; -------\n\n; Keywords\n(meta_type_expression \"type\" @keyword)\n; Keywords\n[\n \"layout\"\n \"pragma\"\n \"contract\"\n \"abstract\"\n \"interface\"\n \"library\"\n \"is\"\n \"struct\"\n \"enum\"\n \"event\"\n \"using\"\n \"assembly\"\n \"emit\"\n \"public\"\n \"internal\"\n \"private\"\n \"external\"\n \"pure\"\n \"view\"\n \"payable\"\n \"modifier\"\n \"memory\"\n \"storage\"\n \"calldata\"\n \"var\"\n \"constant\"\n (virtual)\n (override_specifier)\n (yul_leave)\n] @keyword\n\n[\n \"for\"\n \"while\"\n \"do\"\n] @repeat\n\n[\n \"break\"\n \"continue\"\n \"if\"\n \"else\"\n \"switch\"\n \"case\"\n \"default\"\n] @conditional\n\n[\n \"try\"\n \"catch\"\n] @exception\n\n[\n \"return\"\n \"returns\"\n] @keyword.return\n\n\"function\" @keyword.function\n\n\"import\" @include\n(import_directive \"as\" @include)\n(import_directive \"from\" @include)\n\n(event_parameter \"indexed\" @keyword)\n\n; Punctuation\n\n[\n \"(\"\n \")\"\n \"[\"\n \"]\"\n \"{\"\n \"}\"\n] @punctuation.bracket\n\n\n[\n \".\"\n \",\"\n] @punctuation.delimiter\n\n\n; Operators\n\n[\n \"&&\"\n \"||\"\n \">>\"\n \"<<\"\n \"&\"\n \"^\"\n \"|\"\n \"+\"\n \"-\"\n \"*\"\n \"/\"\n \"%\"\n \"**\"\n \"<\"\n \"<=\"\n \"==\"\n \"!=\"\n \">=\"\n \">\"\n \"!\"\n \"~\"\n \"-\"\n \"+\"\n \"++\"\n \"--\"\n] @operator\n\n[\n \"delete\"\n \"new\"\n] @keyword.operator\n";Expand description
The syntax highlighting query for this language.