pub const HIGHLIGHTS_QUERY: &str = "; Variable\n(identifier) @variable\n\n; Keywords\n; --------------------\n[\n (assert_builtin)\n (break_builtin)\n (const_builtin)\n (part_of_builtin)\n (rethrow_builtin)\n (void_type)\n \"abstract\"\n \"as\"\n \"async\"\n \"async*\"\n \"await\"\n \"base\"\n \"case\"\n \"catch\"\n \"class\"\n \"continue\"\n \"covariant\"\n \"default\"\n \"deferred\"\n \"do\"\n \"else\"\n \"enum\"\n \"export\"\n \"extends\"\n \"extension\"\n \"external\"\n \"factory\"\n \"final\"\n \"finally\"\n \"for\"\n \"Function\"\n \"get\"\n \"hide\"\n \"if\"\n \"implements\"\n \"import\"\n \"in\"\n \"interface\"\n \"is\"\n \"late\"\n \"library\"\n \"mixin\"\n \"new\"\n \"on\"\n \"operator\"\n \"part\"\n \"required\"\n \"return\"\n \"sealed\"\n \"set\"\n \"show\"\n \"static\"\n \"super\"\n \"switch\"\n \"sync*\"\n \"throw\"\n \"try\"\n \"typedef\"\n \"var\"\n \"when\"\n \"while\"\n \"with\"\n \"yield\"\n] @keyword\n\n; Methods\n; --------------------\n\n; NOTE: This query is a bit of a work around for the fact that the dart grammar doesn\'t\n; specifically identify a node as a function call\n(((identifier) @function (#match? @function \"^_?[a-z]\"))\n . (selector . (argument_part))) @function\n\n; Annotations\n; --------------------\n(annotation\n name: (identifier) @attribute)\n\n; Operators and Tokens\n; --------------------\n(template_substitution\n \"$\" @punctuation.special\n \"{\" @punctuation.special\n \"}\" @punctuation.special\n) @none\n\n(template_substitution\n \"$\" @punctuation.special\n (identifier_dollar_escaped) @variable\n) @none\n\n(escape_sequence) @string.escape\n\n[\n \"@\"\n \"=>\"\n \"..\"\n \"??\"\n \"==\"\n \"?\"\n \":\"\n \"&&\"\n \"%\"\n \"<\"\n \">\"\n \"=\"\n \">=\"\n \"<=\"\n \"||\"\n \"~/\"\n (increment_operator)\n (is_operator)\n (prefix_operator)\n (equality_operator)\n (additive_operator)\n] @operator\n\n(type_arguments\n \"<\" @punctuation.bracket\n \">\" @punctuation.bracket)\n\n(type_parameters\n \"<\" @punctuation.bracket\n \">\" @punctuation.bracket)\n\n[\n \"(\"\n \")\"\n \"[\"\n \"]\"\n \"{\"\n \"}\"\n] @punctuation.bracket\n\n; Delimiters\n; --------------------\n[\n \";\"\n \".\"\n \",\"\n] @punctuation.delimiter\n\n; Types\n; --------------------\n(type_identifier) @type\n((type_identifier) @type.builtin\n (#match? @type.builtin \"^(int|double|String|bool|List|Set|Map|Runes|Symbol)$\"))\n(class_definition\n name: (identifier) @type)\n(constructor_signature\n name: (identifier) @type)\n(scoped_identifier\n scope: (identifier) @type)\n(function_signature\n name: (identifier) @function)\n(getter_signature\n (identifier) @function)\n(setter_signature\n name: (identifier) @function)\n\n((scoped_identifier\n scope: (identifier) @type\n name: (identifier) @type)\n (#match? @type \"^[a-zA-Z]\"))\n\n; Enums\n; -------------------\n(enum_declaration\n name: (identifier) @type)\n(enum_constant\n name: (identifier) @identifier.constant)\n\n; Variables\n; --------------------\n; var keyword\n(inferred_type) @keyword\n\n((identifier) @type\n (#match? @type \"^_?[A-Z].*[a-z]\"))\n\n(\"Function\" @type)\n\n(this) @variable.builtin\n\n; properties\n\n(unconditional_assignable_selector\n (identifier) @property)\n\n(conditional_assignable_selector\n (identifier) @property)\n\n(cascade_section\n (cascade_selector\n (identifier) @property))\n\n((selector\n (unconditional_assignable_selector (identifier) @function))\n (selector (argument_part (arguments)))\n)\n\n(cascade_section\n (cascade_selector (identifier) @function)\n (argument_part (arguments))\n)\n\n; assignments\n(assignment_expression\n left: (assignable_expression) @variable)\n\n(this) @variable.builtin\n\n; Parameters\n; --------------------\n(formal_parameter\n name: (identifier) @identifier.parameter)\n\n(named_argument\n (label (identifier) @identifier.parameter))\n\n; Literals\n; --------------------\n[\n (hex_integer_literal)\n (decimal_integer_literal)\n (decimal_floating_point_literal)\n ; TODO: inaccessbile nodes\n ; (octal_integer_literal)\n ; (hex_floating_point_literal)\n] @number\n\n(string_literal) @string\n(symbol_literal (identifier) @constant) @constant\n(true) @boolean\n(false) @boolean\n(null_literal) @constant.null\n\n(documentation_comment) @comment\n(comment) @comment\n";