pub const HIGHLIGHTS_QUERY: &str = ";; Keywords\n\n\"return\" @keyword.return\n\n[\n \"goto\"\n \"in\"\n \"local\"\n] @keyword\n\n(label_statement) @label\n\n(break_statement) @keyword\n\n(do_statement\n[\n  \"do\"\n  \"end\"\n] @keyword)\n\n(while_statement\n[\n  \"while\"\n  \"do\"\n  \"end\"\n] @repeat)\n\n(repeat_statement\n[\n  \"repeat\"\n  \"until\"\n] @repeat)\n\n(if_statement\n[\n  \"if\"\n  \"elseif\"\n  \"else\"\n  \"then\"\n  \"end\"\n] @conditional)\n\n(elseif_statement\n[\n  \"elseif\"\n  \"then\"\n  \"end\"\n] @conditional)\n\n(else_statement\n[\n  \"else\"\n  \"end\"\n] @conditional)\n\n(for_statement\n[\n  \"for\"\n  \"do\"\n  \"end\"\n] @repeat)\n\n(function_declaration\n[\n  \"function\"\n  \"end\"\n] @keyword.function)\n\n(function_definition\n[\n  \"function\"\n  \"end\"\n] @keyword.function)\n\n;; Operators\n\n[\n \"and\"\n \"not\"\n \"or\"\n] @keyword.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] @operator\n\n;; Punctuations\n\n[\n  \";\"\n  \":\"\n  \",\"\n  \".\"\n] @punctuation.delimiter\n\n;; Brackets\n\n[\n \"(\"\n \")\"\n \"[\"\n \"]\"\n \"{\"\n \"}\"\n] @punctuation.bracket\n\n;; Variables\n\n(identifier) @variable\n\n((identifier) @variable.builtin\n (#eq? @variable.builtin \"self\"))\n\n(variable_list\n  (attribute\n    \"<\" @punctuation.bracket\n    (identifier) @attribute\n    \">\" @punctuation.bracket))\n\n;; Constants\n\n((identifier) @constant\n (#match? @constant \"^[A-Z][A-Z_0-9]*$\"))\n\n(vararg_expression) @constant\n\n(nil) @constant.builtin\n\n[\n  (false)\n  (true)\n] @boolean\n\n;; Tables\n\n(field name: (identifier) @field)\n\n(dot_index_expression field: (identifier) @field)\n\n(table_constructor\n[\n  \"{\"\n  \"}\"\n] @constructor)\n\n;; Functions\n\n(parameters (identifier) @parameter)\n\n(function_declaration\n  name: [\n    (identifier) @function\n    (dot_index_expression\n      field: (identifier) @function)\n  ])\n\n(function_declaration\n  name: (method_index_expression\n    method: (identifier) @method))\n\n(assignment_statement\n  (variable_list .\n    name: [\n      (identifier) @function\n      (dot_index_expression\n        field: (identifier) @function)\n    ])\n  (expression_list .\n    value: (function_definition)))\n\n(table_constructor\n  (field\n    name: (identifier) @function\n    value: (function_definition)))\n\n(function_call\n  name: [\n    (identifier) @function.call\n    (dot_index_expression\n      field: (identifier) @function.call)\n    (method_index_expression\n      method: (identifier) @method.call)\n  ])\n\n(function_call\n  (identifier) @function.builtin\n  (#any-of? @function.builtin\n    ;; built-in functions in Lua 5.1\n    \"assert\" \"collectgarbage\" \"dofile\" \"error\" \"getfenv\" \"getmetatable\" \"ipairs\"\n    \"load\" \"loadfile\" \"loadstring\" \"module\" \"next\" \"pairs\" \"pcall\" \"print\"\n    \"rawequal\" \"rawget\" \"rawset\" \"require\" \"select\" \"setfenv\" \"setmetatable\"\n    \"tonumber\" \"tostring\" \"type\" \"unpack\" \"xpcall\"))\n\n;; Others\n\n(comment) @comment\n\n(hash_bang_line) @preproc\n\n(number) @number\n\n(string) @string\n\n(escape_sequence) @string.escape\n";