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