Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/solidity/highlights.scm')
| -rw-r--r-- | runtime/queries/solidity/highlights.scm | 122 |
1 files changed, 51 insertions, 71 deletions
diff --git a/runtime/queries/solidity/highlights.scm b/runtime/queries/solidity/highlights.scm index 0e49429d..08178c36 100644 --- a/runtime/queries/solidity/highlights.scm +++ b/runtime/queries/solidity/highlights.scm @@ -1,23 +1,22 @@ ; identifiers ; ----------- (identifier) @variable -((identifier) @variable.builtin (#any-of? @variable.builtin "this" "msg" "block" "tx")) (yul_identifier) @variable ; Pragma -(pragma_directive) @keyword.directive -(solidity_version_comparison_operator _ @keyword.directive) +(pragma_directive) @tag +(solidity_version_comparison_operator _ @tag) + ; Literals ; -------- + [ (string) (hex_string_literal) (unicode_string_literal) (yul_string_literal) ] @string -(hex_string_literal "hex" @string.special.symbol) -(unicode_string_literal "unicode" @string.special.symbol) [ (number_literal) (yul_decimal_number) @@ -26,23 +25,17 @@ [ (true) (false) - (yul_boolean) -] @constant.builtin.boolean +] @constant.builtin (comment) @comment + ; Definitions and references ; ----------- -(type_name) @type -[ - (primitive_type) - (number_unit) -] @type.builtin - -(user_defined_type (_) @type) -(user_defined_type_definition name: (identifier) @type) -(type_alias (identifier) @type) +(type_name) @type +(primitive_type) @type +(user_defined_type (identifier) @type) ; Color payable in payable address conversion as type and not as keyword (payable_conversion_expression "payable" @type) @@ -50,63 +43,63 @@ (type_name "(" @punctuation.bracket "=>" @punctuation.delimiter ")" @punctuation.bracket) ; Definitions -(struct_declaration name: (identifier) @type) -(enum_declaration name: (identifier) @type) -(contract_declaration name: (identifier) @type) -(library_declaration name: (identifier) @type) -(interface_declaration name: (identifier) @type) -(event_definition name: (identifier) @type) -(error_declaration name: (identifier) @type) -(function_definition name: (identifier) @function) -(modifier_definition name: (identifier) @function) +(struct_declaration + name: (identifier) @type) +(enum_declaration + name: (identifier) @type) +(contract_declaration + name: (identifier) @type) +(library_declaration + name: (identifier) @type) +(interface_declaration + name: (identifier) @type) +(event_definition + name: (identifier) @type) + +(function_definition + name: (identifier) @function) + +(modifier_definition + name: (identifier) @function) (yul_evm_builtin) @function.builtin ; Use constructor coloring for special functions (constructor_definition "constructor" @constructor) -(error_declaration "error" @constructor) (fallback_receive_definition "receive" @constructor) (fallback_receive_definition "fallback" @constructor) (struct_member name: (identifier) @variable.other.member) (enum_value) @constant -; SCREAMING_SNAKE_CASE identifier are constants -((identifier) @constant (#match? @constant "^[A-Z][A-Z_]+$")) ; Invocations -(emit_statement name: (expression (identifier) @type)) -(revert_statement error: (expression (identifier) @type)) -(modifier_invocation . (_) @function) +(emit_statement . (identifier) @type) +(modifier_invocation (identifier) @function) -(call_expression . (_(member_expression property: (_) @function.method))) -(call_expression . (expression (identifier) @function)) +(call_expression . (member_expression property: (identifier) @function.method)) +(call_expression . (identifier) @function) ; Function parameters (call_struct_argument name: (identifier) @field) -(event_parameter name: (identifier) @variable.parameter) +(event_paramater name: (identifier) @variable.parameter) (parameter name: (identifier) @variable.parameter) ; Yul functions -(yul_function_call function: (_) @function) -(yul_function_definition - ("function" (yul_identifier) @function "(" ( - (yul_identifier) @variable.parameter ("," (yul_identifier) @variable.parameter)* - ) - ) -) +(yul_function_call function: (yul_identifier) @function) +(yul_function_definition . (yul_identifier) @function (yul_identifier) @variable.parameter) + ; Structs and members (member_expression property: (identifier) @variable.other.member) -(struct_expression type: ((expression (identifier)) @type .)) +(struct_expression type: ((identifier) @type .)) (struct_field_assignment name: (identifier) @variable.other.member) - ; Tokens ; ------- ; Keywords (meta_type_expression "type" @keyword) [ - "abstract" + "pragma" "contract" "interface" "library" @@ -114,7 +107,7 @@ "struct" "enum" "event" - "type" + "using" "assembly" "emit" "public" @@ -125,23 +118,17 @@ "view" "payable" "modifier" + "memory" + "storage" + "calldata" "var" - "let" + "constant" (virtual) (override_specifier) (yul_leave) ] @keyword [ - "memory" - "storage" - "calldata" - "constant" - "transient" - (immutable) -] @keyword.storage.modifier - -[ "for" "while" "do" @@ -160,7 +147,6 @@ [ "try" "catch" - "revert" ] @keyword.control.exception [ @@ -171,12 +157,12 @@ "function" @keyword.function "import" @keyword.control.import -"using" @keyword.control.import (import_directive "as" @keyword.control.import) (import_directive "from" @keyword.control.import) -(event_parameter "indexed" @keyword) +(event_paramater "indexed" @keyword) ; TODO fix spelling once fixed upstream ; Punctuation + [ "(" ")" @@ -186,19 +172,20 @@ "}" ] @punctuation.bracket + [ "." "," - ":" - "->" - "=>" ] @punctuation.delimiter + ; Operators + [ "&&" "||" ">>" + ">>>" "<<" "&" "^" @@ -213,24 +200,17 @@ "<=" "==" "!=" + "!==" ">=" ">" "!" "~" "-" "+" + "delete" + "new" "++" "--" - "+=" - "-=" - "*=" - "/=" - "%=" - "^=" - "&=" - "|=" - "<<=" - ">>=" ] @operator [ |