; Variables (identifier) @variable ; Types (type) @type (scoped_type_identifier (identifier) . (identifier) @type) (struct_literal . (identifier) @type) (builtin_type) @type.builtin ; Constants ((identifier) @constant (#lua-match? @constant "^[A-Z_]+$")) ; Includes [ "use" ] @include (use_statement (scoped_type_identifier (identifier) @namespace)) (use_statement (identifier) @namespace "{") (use_statement . (identifier) @namespace .) ((scoped_type_identifier path: (_) @namespace) (#set! "priority" 105)) ; Keywords [ "def" "enum" "export" "let" "struct" "type" "union" ] @keyword [ "fn" ] @keyword.function [ "defer" "yield" "return" ] @keyword.return [ "as" "is" ] @keyword.operator ; Typedefs (type_declaration "type" (identifier) @type.definition . "=") ; Qualifiers [ "const" "static" "nullable" ] @type.qualifier ; Attributes [ "@fini" "@init" "@test" "@noreturn" "@packed" (declaration_attribute) ] @attribute ; Labels ((label) @label (#set! "priority" 105)) ; Functions (function_declaration "fn" . (identifier) @function) (call_expression . (identifier) @function.call) (call_expression . (scoped_type_identifier . (identifier) . "::" . (identifier) @method.call)) ((call_expression . (identifier) @function.builtin) (#any-of? @function.builtin "align" "assert" "free" "len" "offset" "size")) (size_expression "size" @function.builtin) ((function_declaration "fn" . (identifier) @constructor) (#eq? @constructor "init")) ((call_expression . (identifier) @constructor) (#eq? @constructor "init")) ; Parameters (parameter (_) @parameter . ":") ; Fields ((member_expression "." (_) @field) (#set! "priority" 105)) (field . (identifier) @field) (field_assignment . (identifier) @field) ; Repeats [ "for" ] @repeat ; Conditionals [ "if" "else" "break" "switch" "match" "case" ] @conditional ; Operators [ "+" "-" "*" "/" "%" "||" "&&" "^^" "|" "&" "^" "==" "!=" ">" ">=" "<=" "<" "<<" ">>" "~" "!" "+=" "-=" "*=" "/=" "%=" "<<=" ">>=" "|=" "&=" "^=" "||=" "&&=" "^^=" "=" "?" ] @operator ; Punctuation [ "{" "}" ] @punctuation.bracket [ "[" "]" ] @punctuation.bracket [ "(" ")" ] @punctuation.bracket [ ".." "..." "_" ] @punctuation.special (pointer_type "*" @punctuation.special) (slice_type "*" @punctuation.special) (error_type "!" @punctuation.special) [ "," "." ":" ";" "::" "=>" ] @punctuation.delimiter ; Literals [ (string) (raw_string) ] @string (rune) @character (escape_sequence) @string.escape (number) @number (float) @float (boolean) @boolean [ (void) (null) ] @constant.builtin ; Comments (comment) @comment @spell ; Errors (ERROR) @error