Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/sway/highlights.scm')
| -rw-r--r-- | runtime/queries/sway/highlights.scm | 318 |
1 files changed, 0 insertions, 318 deletions
diff --git a/runtime/queries/sway/highlights.scm b/runtime/queries/sway/highlights.scm deleted file mode 100644 index 969ef776..00000000 --- a/runtime/queries/sway/highlights.scm +++ /dev/null @@ -1,318 +0,0 @@ -; ------- -; Basic identifiers -; ------- - -; We do not style ? as an operator on purpose as it allows styling ? differently, as many highlighters do. @operator.special might have been a better scope, but @special is already documented so the change would break themes (including the intent of the default theme) -"?" @special - -(type_identifier) @type -(identifier) @variable -(field_identifier) @variable.other.member - -; ------- -; Operators -; ------- - -[ - "*" - "'" - "->" - "=>" - "<=" - "=" - "==" - "!" - "!=" - "%" - "%=" - "&" - "&=" - "&&" - "|" - "|=" - "||" - "^" - "^=" - "*" - "*=" - "-" - "-=" - "+" - "+=" - "/" - "/=" - ">" - "<" - ">=" - ">>" - "<<" - ">>=" - "<<=" - "@" - ".." - "..=" - "'" -] @operator - -; ------- -; Paths -; ------- - -(use_declaration - argument: (identifier) @namespace) -(use_wildcard - (identifier) @namespace) -(dep_item - name: (identifier) @namespace) -(scoped_use_list - path: (identifier)? @namespace) -(use_list - (identifier) @namespace) -(use_as_clause - path: (identifier)? @namespace - alias: (identifier) @namespace) - -; --- -; Remaining Paths -; --- - -(scoped_identifier - path: (identifier)? @namespace - name: (identifier) @namespace) -(scoped_type_identifier - path: (identifier) @namespace) - -; --- -; Primitives -; --- - -(escape_sequence) @constant.character.escape -(primitive_type) @type.builtin -(boolean_literal) @constant.builtin.boolean -(integer_literal) @constant.numeric.integer -(float_literal) @constant.numeric.float -(char_literal) @constant.character -[ - (string_literal) - (raw_string_literal) -] @string -[ - (line_comment) - (block_comment) -] @comment - -; --- -; Extraneous -; --- - -(self) @variable.builtin -(enum_variant (identifier) @type.enum.variant) - -(field_initializer - (field_identifier) @variable.other.member) -(shorthand_field_initializer - (identifier) @variable.other.member) -(shorthand_field_identifier) @variable.other.member - -(loop_label - "'" @label - (identifier) @label) - -; --- -; Punctuation -; --- - -[ - "::" - "." - ";" - "," -] @punctuation.delimiter - -[ - "(" - ")" - "[" - "]" - "{" - "}" - "#" -] @punctuation.bracket -(type_arguments - [ - "<" - ">" - ] @punctuation.bracket) -(type_parameters - [ - "<" - ">" - ] @punctuation.bracket) -(closure_parameters - "|" @punctuation.bracket) - -; --- -; Variables -; --- - -(let_declaration - pattern: [ - ((identifier) @variable) - ((tuple_pattern - (identifier) @variable)) - ]) - -; It needs to be anonymous to not conflict with `call_expression` further below. -(_ - value: (field_expression - value: (identifier)? @variable - field: (field_identifier) @variable.other.member)) - -(parameter - pattern: (identifier) @variable.parameter) -(closure_parameters - (identifier) @variable.parameter) - -; ------- -; Keywords -; ------- - -(for_expression - "for" @keyword.control.repeat) -((identifier) @keyword.control - (#match? @keyword.control "^yield$")) - -"in" @keyword.control - -[ - "match" - "if" - "else" -] @keyword.control.conditional - -[ - "while" -] @keyword.control.repeat - -[ - "break" - "continue" - "return" -] @keyword.control.return - -[ - "contract" - "script" - "predicate" -] @keyword.other - -"use" @keyword.control.import -(dep_item "dep" @keyword.control.import !body) -(use_as_clause "as" @keyword.control.import) - -(type_cast_expression "as" @keyword.operator) - -[ - "as" - "pub" - "dep" - - "abi" - "impl" - "where" - "trait" - "for" -] @keyword - -[ - "struct" - "enum" - "storage" - "configurable" -] @keyword.storage.type - -"let" @keyword.storage -"fn" @keyword.function -"abi" @keyword.function - -(mutable_specifier) @keyword.storage.modifier.mut - -(reference_type "&" @keyword.storage.modifier.ref) -(self_parameter "&" @keyword.storage.modifier.ref) - -[ - "const" - "ref" - "deref" - "move" -] @keyword.storage.modifier - -; TODO: variable.mut to highlight mutable identifiers via locals.scm - -; ------- -; Guess Other Types -; ------- -; Other PascalCase identifiers are assumed to be structs. - -((identifier) @type - (#match? @type "^[A-Z]")) - -((identifier) @constant - (#match? @constant "^[A-Z][A-Z\\d_]*$")) - -; --- -; PascalCase identifiers in call_expressions (e.g. `Ok()`) -; are assumed to be enum constructors. -; --- - -(call_expression - function: [ - ((identifier) @constructor - (#match? @constructor "^[A-Z]")) - (scoped_identifier - name: ((identifier) @constructor - (#match? @constructor "^[A-Z]"))) - ]) - -; --- -; PascalCase identifiers under a path which is also PascalCase -; are assumed to be constructors if they have methods or fields. -; --- - -(field_expression - value: (scoped_identifier - path: [ - (identifier) @type - (scoped_identifier - name: (identifier) @type) - ] - name: (identifier) @constructor - (#match? @type "^[A-Z]") - (#match? @constructor "^[A-Z]"))) - -; ------- -; Functions -; ------- - -(call_expression - function: [ - ((identifier) @function) - (scoped_identifier - name: (identifier) @function) - (field_expression - field: (field_identifier) @function) - ]) -(generic_function - function: [ - ((identifier) @function) - (scoped_identifier - name: (identifier) @function) - (field_expression - field: (field_identifier) @function.method) - ]) - -(function_item - name: (identifier) @function) - -(function_signature_item - name: (identifier) @function) |