pub const HIGHLIGHTS_QUERY: &str = "; Variables\n\n(identifier) @variable\n\n; Parameters\n\n(parameter\n  name: (identifier) @variable.parameter)\n\n; Types\n\n(parameter\n  type: (identifier) @type)\n\n((identifier) @type\n  (#lua-match? @type \"^[A-Z_][a-zA-Z0-9_]*\"))\n\n(variable_declaration\n  (identifier) @type\n  \"=\"\n  [\n    (struct_declaration)\n    (enum_declaration)\n    (union_declaration)\n    (opaque_declaration)\n  ])\n\n[\n  (builtin_type)\n  \"anyframe\"\n] @type.builtin\n\n; Constants\n\n((identifier) @constant\n  (#lua-match? @constant \"^[A-Z][A-Z_0-9]+$\"))\n\n[\n  \"null\"\n  \"unreachable\"\n  \"undefined\"\n] @constant.builtin\n\n(field_expression\n  .\n  member: (identifier) @constant)\n\n(enum_declaration\n  (container_field\n    type: (identifier) @constant))\n\n; Labels\n\n(block_label (identifier) @label)\n\n(break_label (identifier) @label)\n\n; Fields\n\n(field_initializer\n  .\n  (identifier) @variable.member)\n\n(field_expression\n  (_)\n  member: (identifier) @variable.member)\n\n(container_field\n  name: (identifier) @variable.member)\n\n(initializer_list\n  (assignment_expression\n      left: (field_expression\n              .\n              member: (identifier) @variable.member)))\n\n; Functions\n\n(builtin_identifier) @function.builtin\n\n(call_expression\n  function: (identifier) @function.call)\n\n(call_expression\n  function: (field_expression\n    member: (identifier) @function.call))\n\n(function_declaration\n  name: (identifier) @function)\n\n; Modules\n\n(variable_declaration\n  (identifier) @module\n  (builtin_function\n    (builtin_identifier) @keyword.import\n    (#any-of? @keyword.import \"@import\" \"@cImport\")))\n\n; Builtins\n\n[\n  \"c\"\n  \"...\"\n] @variable.builtin\n\n((identifier) @variable.builtin\n  (#eq? @variable.builtin \"_\"))\n\n(calling_convention\n  (identifier) @variable.builtin)\n\n; Keywords\n\n[\n  \"asm\"\n  \"defer\"\n  \"errdefer\"\n  \"test\"\n  \"error\"\n  \"const\"\n  \"var\"\n] @keyword\n\n[\n  \"struct\"\n  \"union\"\n  \"enum\"\n  \"opaque\"\n] @keyword.type\n\n[\n  \"async\"\n  \"await\"\n  \"suspend\"\n  \"nosuspend\"\n  \"resume\"\n] @keyword.coroutine\n\n\"fn\" @keyword.function\n\n[\n  \"and\"\n  \"or\"\n  \"orelse\"\n] @keyword.operator\n\n\"return\" @keyword.return\n\n[\n  \"if\"\n  \"else\"\n  \"switch\"\n] @keyword.conditional\n\n[\n  \"for\"\n  \"while\"\n  \"break\"\n  \"continue\"\n] @keyword.repeat\n\n[\n  \"usingnamespace\"\n  \"export\"\n] @keyword.import\n\n[\n  \"try\"\n  \"catch\"\n] @keyword.exception\n\n[\n  \"volatile\"\n  \"allowzero\"\n  \"noalias\"\n  \"addrspace\"\n  \"align\"\n  \"callconv\"\n  \"linksection\"\n  \"pub\"\n  \"inline\"\n  \"noinline\"\n  \"extern\"\n  \"comptime\"\n  \"packed\"\n  \"threadlocal\"\n] @keyword.modifier\n\n; Operator\n\n[\n  \"=\"\n  \"*=\"\n  \"*%=\"\n  \"*|=\"\n  \"/=\"\n  \"%=\"\n  \"+=\"\n  \"+%=\"\n  \"+|=\"\n  \"-=\"\n  \"-%=\"\n  \"-|=\"\n  \"<<=\"\n  \"<<|=\"\n  \">>=\"\n  \"&=\"\n  \"^=\"\n  \"|=\"\n  \"!\"\n  \"~\"\n  \"-\"\n  \"-%\"\n  \"&\"\n  \"==\"\n  \"!=\"\n  \">\"\n  \">=\"\n  \"<=\"\n  \"<\"\n  \"&\"\n  \"^\"\n  \"|\"\n  \"<<\"\n  \">>\"\n  \"<<|\"\n  \"+\"\n  \"++\"\n  \"+%\"\n  \"-%\"\n  \"+|\"\n  \"-|\"\n  \"*\"\n  \"/\"\n  \"%\"\n  \"**\"\n  \"*%\"\n  \"*|\"\n  \"||\"\n  \".*\"\n  \".?\"\n  \"?\"\n  \"..\"\n] @operator\n\n; Literals\n\n(character) @character\n\n([\n  (string)\n  (multiline_string)\n] @string\n  (#set! \"priority\" 95))\n\n(integer) @number\n\n(float) @number.float\n\n(boolean) @boolean\n\n(escape_sequence) @string.escape\n\n; Punctuation\n\n[\n  \"[\"\n  \"]\"\n  \"(\"\n  \")\"\n  \"{\"\n  \"}\"\n] @punctuation.bracket\n\n[\n  \";\"\n  \".\"\n  \",\"\n  \":\"\n  \"=>\"\n  \"->\"\n] @punctuation.delimiter\n\n(payload \"|\" @punctuation.bracket)\n\n; Comments\n\n(comment) @comment @spell\n\n((comment) @comment.documentation\n  (#lua-match? @comment.documentation \"^//!\"))\n";
Expand description

The syntax highlighting query for this language.