Constant tree_sitter_solidity::HIGHLIGHTS_QUERY[][src]

pub const HIGHLIGHTS_QUERY: &'static str = "(comment) @comment\n\n; Pragma\n(pragma_directive) @tag\n(pragma_directive \">=\" @tag)\n(pragma_directive \"<=\" @tag)\n(pragma_directive \"=\" @tag)\n(pragma_directive \"~\" @tag)\n(pragma_directive \"^\" @tag)\n\n\n; Literals\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\n; Type\n(type_name) @type\n(primitive_type) @type\n(struct_declaration struct_name: (identifier) @type)\n(enum_declaration enum_type_name: (identifier) @type)\n; Color payable in payable address conversion as type and not as keyword\n(payable_conversion_expression \"payable\" @type)\n(emit_statement . (identifier) @type)\n; Handles ContractA, ContractB in function foo() override(ContractA, contractB) {} \n(override_specifier (identifier) @type)\n; Ensures that delimiters in mapping( ... => .. ) are not colored like types\n(type_name \"(\" @punctuation.bracket \"=>\" @punctuation.delimiter \")\" @punctuation.bracket)\n\n\n\n; Functions and parameters\n\n(function_definition\n  function_name:  (identifier) @function)\n(modifier_definition\n  name:  (identifier) @function)\n(yul_evm_builtin) @function.builtin\n\n; Use contructor coloring for special functions\n(constructor_definition \"constructor\" @constructor)\n(fallback_receive_definition \"receive\" @constructor)\n(fallback_receive_definition \"fallback\" @constructor)\n\n(modifier_invocation (identifier) @function)\n\n; Handles expressions like structVariable.g();\n(call_expression . (member_expression (property_identifier) @function.method))\n\n; Handles expressions like g();\n(call_expression . (identifier) @function)\n\n; Function parameters\n(event_paramater name: (identifier) @variable.parameter)\n(function_definition\n  name:  (identifier) @variable.parameter)\n\n; Yul functions\n(yul_function_call function: (yul_identifier) @function)\n\n; Yul function parameters\n(yul_function_definition . (yul_identifier) @function (yul_identifier) @variable.parameter)\n\n(meta_type_expression \"type\" @keyword)\n\n(member_expression (property_identifier) @property)\n(property_identifier) @property\n(struct_expression ((identifier) @property . \":\"))\n(enum_value) @property\n\n\n; Keywords\n[\n \"pragma\"\n \"import\"\n \"contract\"\n \"interface\"\n \"library\"\n \"is\"\n \"struct\"\n \"enum\"\n \"event\"\n \"using\"\n \"assembly\"\n \"switch\"\n \"case\"\n \"default\"\n \"break\"\n \"continue\"\n \"if\"\n \"else\"\n \"for\"\n \"while\"\n \"do\"\n \"try\"\n \"catch\"\n \"return\"\n \"emit\"\n \"public\"\n \"internal\"\n \"private\"\n \"external\"\n \"pure\"\n \"view\"\n \"payable\"\n \"modifier\"\n \"returns\"\n \"memory\"\n \"storage\"\n \"calldata\"\n \"function\"\n \"var\"\n (constant)\n (virtual)\n (override_specifier)\n (yul_leave)\n] @keyword\n\n(import_directive \"as\" @keyword)\n(import_directive \"from\" @keyword)\n(event_paramater \"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  \"delete\"\n  \"new\"\n  \"++\"\n  \"--\"\n] @operator\n\n(identifier) @variable\n(yul_identifier) @variable\n";