Constant HIGHLIGHTS_QUERY
Source pub const HIGHLIGHTS_QUERY: &str = "[\n \".\"\n \";\"\n \":\"\n \",\"\n] @punctuation.delimiter\n\n[\n \"(\"\n \")\"\n \"[\"\n \"]\"\n \"{\"\n \"}\"\n] @punctuation.bracket\n\n; Identifiers\n(type_identifier) @type\n\n[\n (self_expression)\n (super_expression)\n] @variable.builtin\n\n; Declarations\n[\n \"func\"\n \"deinit\"\n] @keyword.function\n\n[\n (visibility_modifier)\n (member_modifier)\n (function_modifier)\n (property_modifier)\n (parameter_modifier)\n (inheritance_modifier)\n (mutation_modifier)\n] @keyword.modifier\n\n(simple_identifier) @variable\n\n(function_declaration\n (simple_identifier) @function.method)\n\n(protocol_function_declaration\n name: (simple_identifier) @function.method)\n\n(init_declaration\n \"init\" @constructor)\n\n(parameter\n external_name: (simple_identifier) @variable.parameter)\n\n(parameter\n name: (simple_identifier) @variable.parameter)\n\n(type_parameter\n (type_identifier) @variable.parameter)\n\n(inheritance_constraint\n (identifier\n (simple_identifier) @variable.parameter))\n\n(equality_constraint\n (identifier\n (simple_identifier) @variable.parameter))\n\n[\n \"protocol\"\n \"extension\"\n \"indirect\"\n \"nonisolated\"\n \"override\"\n \"convenience\"\n \"required\"\n \"some\"\n \"any\"\n \"weak\"\n \"unowned\"\n \"didSet\"\n \"willSet\"\n \"subscript\"\n \"let\"\n \"var\"\n (throws)\n (where_keyword)\n (getter_specifier)\n (setter_specifier)\n (modify_specifier)\n (else)\n (as_operator)\n] @keyword\n\n[\n \"enum\"\n \"struct\"\n \"class\"\n \"typealias\"\n] @keyword.type\n\n[\n \"async\"\n \"await\"\n] @keyword.coroutine\n\n(shebang_line) @keyword.directive\n\n(class_body\n (property_declaration\n (pattern\n (simple_identifier) @variable.member)))\n\n(protocol_property_declaration\n (pattern\n (simple_identifier) @variable.member))\n\n(navigation_expression\n (navigation_suffix\n (simple_identifier) @variable.member))\n\n(value_argument\n name: (value_argument_label\n (simple_identifier) @variable.member))\n\n(import_declaration\n \"import\" @keyword.import)\n\n(enum_entry\n \"case\" @keyword)\n\n(modifiers\n (attribute\n \"@\" @attribute\n (user_type\n (type_identifier) @attribute)))\n\n; Function calls\n(call_expression\n (simple_identifier) @function.call) ; foo()\n\n(call_expression\n ; foo.bar.baz(): highlight the baz()\n (navigation_expression\n (navigation_suffix\n (simple_identifier) @function.call)))\n\n(call_expression\n (prefix_expression\n (simple_identifier) @function.call)) ; .foo()\n\n((navigation_expression\n (simple_identifier) @type) ; SomeType.method(): highlight SomeType as a type\n (#match? @type \"^[A-Z]\"))\n\n(directive) @keyword.directive\n\n; See https://docs.swift.org/swift-book/documentation/the-swift-programming-language/lexicalstructure/#Keywords-and-Punctuation\n[\n (diagnostic)\n (availability_condition)\n (playground_literal)\n (key_path_string_expression)\n (selector_expression)\n (external_macro_definition)\n] @function.macro\n\n(special_literal) @constant.macro\n\n; Statements\n(for_statement\n \"for\" @keyword.repeat)\n\n(for_statement\n \"in\" @keyword.repeat)\n\n[\n \"while\"\n \"repeat\"\n \"continue\"\n \"break\"\n] @keyword.repeat\n\n(guard_statement\n \"guard\" @keyword.conditional)\n\n(if_statement\n \"if\" @keyword.conditional)\n\n(switch_statement\n \"switch\" @keyword.conditional)\n\n(switch_entry\n \"case\" @keyword)\n\n(switch_entry\n \"fallthrough\" @keyword)\n\n(switch_entry\n (default_keyword) @keyword)\n\n\"return\" @keyword.return\n\n(ternary_expression\n [\n \"?\"\n \":\"\n ] @keyword.conditional.ternary)\n\n[\n (try_operator)\n \"do\"\n (throw_keyword)\n (catch_keyword)\n] @keyword.exception\n\n(statement_label) @label\n\n; Comments\n[\n (comment)\n (multiline_comment)\n] @comment @spell\n\n((comment) @comment.documentation\n (#match? @comment.documentation \"^///[^/]\"))\n\n((comment) @comment.documentation\n (#match? @comment.documentation \"^///$\"))\n\n((multiline_comment) @comment.documentation\n (#match? @comment.documentation \"^/[*][*][^*].*[*]/$\"))\n\n; String literals\n(line_str_text) @string\n\n(str_escaped_char) @string.escape\n\n(multi_line_str_text) @string\n\n(raw_str_part) @string\n\n(raw_str_end_part) @string\n\n(line_string_literal\n [\n \"\\\\(\"\n \")\"\n ] @punctuation.special)\n\n(multi_line_string_literal\n [\n \"\\\\(\"\n \")\"\n ] @punctuation.special)\n\n(raw_str_interpolation\n [\n (raw_str_interpolation_start)\n \")\"\n ] @punctuation.special)\n\n[\n \"\\\"\"\n \"\\\"\\\"\\\"\"\n] @string\n\n; Lambda literals\n(lambda_literal\n \"in\" @keyword.operator)\n\n; Basic literals\n[\n (integer_literal)\n (hex_literal)\n (oct_literal)\n (bin_literal)\n] @number\n\n(real_literal) @number.float\n\n(boolean_literal) @boolean\n\n\"nil\" @constant.builtin\n\n(wildcard_pattern) @character.special\n\n; Regex literals\n(regex_literal) @string.regexp\n\n; Operators\n(custom_operator) @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 \"|\"\n \"||\"\n \"~\"\n \"%=\"\n \"!=\"\n \"!==\"\n \"==\"\n \"===\"\n \"?\"\n \"??\"\n \"->\"\n \"..<\"\n \"...\"\n (bang)\n] @operator\n\n(type_arguments\n [\n \"<\"\n \">\"\n ] @punctuation.bracket)\n";