@@ -0,0 +1,189 @@
4+(pragma_directive) @tag
5+(solidity_version_comparison_operator ">=" @tag)
6+(solidity_version_comparison_operator "<=" @tag)
7+(solidity_version_comparison_operator "=" @tag)
8+(solidity_version_comparison_operator "~" @tag)
9+(solidity_version_comparison_operator "^" @tag)
16+ (unicode_string_literal)
32+(primitive_type) @type
33+(struct_declaration struct_name: (identifier) @type)
34+(enum_declaration enum_type_name: (identifier) @type)
35+; Color payable in payable address conversion as type and not as keyword
36+(payable_conversion_expression "payable" @type)
37+(emit_statement . (identifier) @type)
38+; Handles ContractA, ContractB in function foo() override(ContractA, contractB) {}
39+(override_specifier (identifier) @type)
40+; Ensures that delimiters in mapping( ... => .. ) are not colored like types
41+(type_name "(" @punctuation.bracket "=>" @punctuation.delimiter ")" @punctuation.bracket)
45+; Functions and parameters
48+ function_name: (identifier) @function)
50+ name: (identifier) @function)
51+(yul_evm_builtin) @function.builtin
53+; Use contructor coloring for special functions
54+(constructor_definition "constructor" @constructor)
55+(fallback_receive_definition "receive" @constructor)
56+(fallback_receive_definition "fallback" @constructor)
58+(modifier_invocation (identifier) @function)
60+; Handles expressions like structVariable.g();
61+(call_expression . (member_expression (property_identifier) @function.method))
63+; Handles expressions like g();
64+(call_expression . (identifier) @function)
67+(event_paramater name: (identifier) @variable.parameter)
69+ function_name: (identifier) @variable.parameter)
72+(yul_function_call function: (yul_identifier) @function)
74+; Yul function parameters
75+(yul_function_definition . (yul_identifier) @function (yul_identifier) @variable.parameter)
77+(meta_type_expression "type" @keyword)
79+(member_expression (property_identifier) @variable.other.member)
80+(property_identifier) @variable.other.member
81+(struct_expression ((identifier) @variable.other.member . ":"))
82+(enum_value) @variable.other.member
128+ (override_specifier)
132+(import_directive "as" @keyword)
133+(import_directive "from" @keyword)
134+(event_paramater "indexed" @keyword)
145+] @punctuation.bracket
151+] @punctuation.delimiter
188+(identifier) @variable
189+(yul_identifier) @variable