(type_identifier) @type (primitive_type) @type.builtin (field_identifier) @property (call_expression function: [ (identifier) @function (scoped_identifier name: (identifier) @function) (field_expression field: (field_identifier) @function.method) ]) (function_item name: (identifier) @function.definition) (function_signature_item name: (identifier) @function.definition) ; Identifier conventions ; Assume uppercase names are enum constructors ((identifier) @variant (#match? @variant "^[A-Z]")) ; Assume that uppercase names in paths are types ((scoped_identifier path: (identifier) @type) (#match? @type "^[A-Z]")) ((scoped_identifier path: (scoped_identifier name: (identifier) @type)) (#match? @type "^[A-Z]")) ; Assume all-caps names are constants ((identifier) @constant (#match? @constant "^[A-Z][A-Z\\d_]+$")) [ "as" "async" "break" "const" "continue" "default" "dyn" "else" "enum" "extern" "for" "fn" "if" "in" "impl" "let" "loop" "macro_rules!" "match" "mod" "move" "pub" "return" "static" "struct" "trait" "type" "use" "where" "while" "union" "unsafe" (mutable_specifier) (super) ] @keyword [ (string_literal) (raw_string_literal) (char_literal) ] @string [ (line_comment) (block_comment) ] @comment