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";