pub const HIGHLIGHTS_QUERY: &str = ";; ----------------------------------------------------------------------------\n;; Literals and comments\n\n[\n  (line_comment)\n  (block_comment)\n] @comment @spell\n\n((line_comment) @comment.documentation @spell\n (#match? @comment.documentation \"^///\"))\n\n(const\n  [\n   (_) @constant\n   (unit) @constant.builtin\n  ])\n\n(primary_constr_args (_) @variable.parameter)\n\n(class_as_reference\n  (_) @variable.parameter.builtin)\n\n\n((argument_patterns (long_identifier (identifier) @character.special))\n (#match? @character.special \"^\\_.*\"))\n\n;; ----------------------------------------------------------------------------\n;; Punctuation\n\n(wildcard_pattern) @character.special\n\n(type_name type_name: (_) @type.definition)\n\n[\n (_type)\n (atomic_type)\n] @type\n\n(member_signature\n  .\n  (identifier) @function.member\n  (curried_spec\n    (arguments_spec\n      \"*\"* @operator\n      (argument_spec\n        (argument_name_spec\n          \"?\"? @character.special\n          name: (_) @variable.parameter)))))\n\n(union_type_case) @constant\n\n(rules\n  (rule\n    pattern: (_) @constant\n    block: (_)))\n\n(identifier_pattern\n  .\n  (_) @constant\n  .\n  (_) @variable)\n\n(optional_pattern\n  \"?\" @character.special)\n\n(fsi_directive_decl . (string) @module)\n\n(import_decl . (_) @module)\n(named_module\n  name: (_) @module)\n(namespace\n  name: (_) @module)\n(module_defn\n  .\n  (_) @module)\n\n(ce_expression\n  .\n  (_) @constant.macro)\n\n(field_initializer\n  field: (_) @property)\n\n(record_fields\n  (record_field\n    .\n    (identifier) @property))\n\n(dot_expression\n  base: (_)? @module)\n\n(value_declaration_left . (_) @variable)\n\n(function_declaration_left\n  . (_) @function\n  . (_)* @variable_parameter)\n\n(member_defn\n  (method_or_prop_defn\n    [\n      (property_or_ident) @function\n      (property_or_ident\n        instance: (identifier) @variable.parameter.builtin\n        method: (identifier) @function.method)\n    ]\n    args: (_)* @variable.parameter))\n\n(application_expression\n  .\n  (_) @function.call\n  .\n  (_) @variable)\n\n((infix_expression\n  .\n  (_)\n  .\n  (infix_op) @operator\n  .\n  (_) @function.call\n  )\n (#eq? @operator \"|>\")\n )\n\n((infix_expression\n  .\n  (_) @function.call\n  .\n  (infix_op) @operator\n  .\n  (_)\n  )\n (#eq? @operator \"<|\")\n )\n\n[\n  (xint)\n  (int)\n  (int16)\n  (uint16)\n  (int32)\n  (uint32)\n  (int64)\n  (uint64)\n  (nativeint)\n  (unativeint)\n] @number\n\n[\n  (ieee32)\n  (ieee64)\n  (float)\n  (decimal)\n] @number.float\n\n(bool) @boolean\n\n([\n  (string)\n  (triple_quoted_string)\n  (verbatim_string)\n  (char)\n] @spell @string)\n\n(compiler_directive_decl) @keyword.directive\n\n(preproc_line\n  \"#line\" @keyword.directive)\n\n(attribute) @attribute\n\n[\n  \"(\"\n  \")\"\n  \"{\"\n  \"}\"\n  \"[\"\n  \"]\"\n  \"[|\"\n  \"|]\"\n  \"{|\"\n  \"|}\"\n] @punctuation.bracket\n\n[\n  \"[<\"\n  \">]\"\n] @punctuation.special\n\n(format_string_eval\n  [\n    \"{\"\n    \"}\"\n  ] @punctuation.special)\n\n[\n  \",\"\n  \";\"\n] @punctuation.delimiter\n\n[\n  \"|\"\n  \"=\"\n  \">\"\n  \"<\"\n  \"-\"\n  \"~\"\n  \"->\"\n  \"<-\"\n  \"&&\"\n  \"||\"\n  \":>\"\n  \":?>\"\n  (infix_op)\n  (prefix_op)\n] @operator\n\n[\n  \"if\"\n  \"then\"\n  \"else\"\n  \"elif\"\n  \"when\"\n  \"match\"\n  \"match!\"\n] @keyword.conditional\n\n[\n  \"and\"\n  \"or\"\n  \"not\"\n  \"upcast\"\n  \"downcast\"\n] @keyword.operator\n\n[\n  \"return\"\n  \"return!\"\n  \"yield\"\n  \"yield!\"\n] @keyword.return\n\n[\n  \"for\"\n  \"while\"\n  \"downto\"\n  \"to\"\n] @keyword.repeat\n\n\n[\n  \"open\"\n  \"#r\"\n  \"#load\"\n] @keyword.import\n\n[\n  \"abstract\"\n  \"delegate\"\n  \"static\"\n  \"inline\"\n  \"mutable\"\n  \"override\"\n  \"rec\"\n  \"global\"\n  (access_modifier)\n] @keyword.modifier\n\n[\n  \"let\"\n  \"let!\"\n  \"use\"\n  \"use!\"\n  \"member\"\n] @keyword.function\n\n[\n  \"enum\"\n  \"type\"\n  \"inherit\"\n  \"interface\"\n  \"and\"\n  \"class\"\n  \"struct\"\n] @keyword.type\n\n((identifier) @keyword.exception\n (#any-of? @keyword.exception \"failwith\" \"failwithf\" \"raise\" \"reraise\"))\n\n[\n  \"as\"\n  \"assert\"\n  \"begin\"\n  \"end\"\n  \"done\"\n  \"default\"\n  \"in\"\n  \"do\"\n  \"do!\"\n  \"event\"\n  \"field\"\n  \"fun\"\n  \"function\"\n  \"get\"\n  \"set\"\n  \"lazy\"\n  \"new\"\n  \"of\"\n  \"param\"\n  \"property\"\n  \"struct\"\n  \"val\"\n  \"module\"\n  \"namespace\"\n  \"with\"\n] @keyword\n\n[\n  \"null\"\n] @constant.builtin\n\n(match_expression \"with\" @keyword.conditional)\n\n(try_expression\n  [\n    \"try\"\n    \"with\"\n    \"finally\"\n  ] @keyword.exception)\n\n((_type\n  (long_identifier (identifier) @type.builtin))\n (#any-of? @type.builtin \"bool\" \"byte\" \"sbyte\" \"int16\" \"uint16\" \"int\" \"uint\" \"int64\" \"uint64\" \"nativeint\" \"unativeint\" \"decimal\" \"float\" \"double\" \"float32\" \"single\" \"char\" \"string\" \"unit\"))\n\n(preproc_if\n  [\n    \"#if\" @keyword.directive\n    \"#endif\" @keyword.directive\n  ]\n  condition: (_)? @keyword.directive)\n\n(preproc_else\n  \"#else\" @keyword.directive)\n\n((long_identifier\n  (identifier)+ @module\n  .\n  (identifier)))\n\n(op_identifier) @operator\n\n((identifier) @module.builtin\n (#any-of? @module.builtin \"Array\" \"Async\" \"Directory\" \"File\" \"List\" \"Option\" \"Path\" \"Map\" \"Set\" \"Lazy\" \"Seq\" \"Task\" \"String\" \"Result\" ))\n\n((value_declaration\n   (attributes\n     (attribute\n       (_type\n         (long_identifier\n           (identifier) @attribute_name))))\n   (function_or_value_defn\n     (value_declaration_left\n       .\n       (_) @constant)))\n (#eq? @attribute_name \"Literal\"))\n";