pub const HIGHLIGHTS_QUERY: &str = "; AUTO-GENERATED by scripts/sync_queries.py\n; Edit only the LOCAL section in composed files.\n; File: highlights.scm\n; === BEGIN EXPR ===\n(pattern_expression) @string.regexp\n\n[\n (json_number_literal)\n (numeric_literal)\n] @number\n\n[\n (json_boolean_literal)\n (json_null_literal)\n] @boolean\n\n(json_object_literal_pair\n (json_string_literal) @string.special)\n\n[\n (json_string_literal)\n (string_literal)\n] @string\n\n[\n (keyword_pound_pound_super)\n (keyword_pound_pound_class)\n] @keyword.operator\n\n(system_defined_function) @function.builtin\n\n; this is because . is grouped into system_defined_function\n; and I want the dots to be the same color\n(class_method_call\n \".\" @function.builtin)\n\n(byref_arg\n \".\" @function.builtin)\n\n(oref_chain_segment\n \".\" @function.builtin)\n\n(sql_field_modifier) @keyword.modifier\n\n[\n (property_name)\n (oref_parameter)\n (sql_field_identifier)\n] @variable.member\n\n(method_name) @function.method\n\n[\n (routine_name)\n (class_name)\n] @type\n\n(macro_function) @function.macro\n\n(macro_constant) @constant.macro\n\n[\n (objectscript_identifier)\n (identifier_segment_immediate)\n] @variable\n\n[\n (ssvn)\n (system_defined_variable)\n \"$$\"\n] @variable.builtin\n\n[\n (gvn)\n (objectscript_identifier_special)\n (identifier_segment_immediate_special)\n (instance_variable)\n] @variable.member\n\n(method_arg) @variable.parameter\n\n; I didn\'t include ( or ) in this, because they are often grouped\n; as part of a sequence that gets turned into a single token, so they\n; don\'t get matched, and one ends up getting colored differently than the other.\n[\n \"_\"\n \",\"\n \":\"\n \"..\"\n \"...\"\n \"\'[\"\n \"\']\"\n \"\']]\"\n \"\\\"\"\n \"\\\"\\\"\"\n \"[\"\n \"]\"\n \"]]\"\n \"{\"\n \"}\"\n \"/\"\n \"\\\\\"\n \"#\"\n \"|\"\n \"||\"\n \"$$\"\n] @punctuation.delimiter\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] @operator\n\n(bracket) @punctuation.bracket\n\n; === END EXPR ===\n; === BEGIN CORE ===\n(macro_arg) @variable.member\n\n(macro_value) @constant.builtin\n\n(macro_def) @keyword.directive.define\n\n[\n \"(\"\n \")\"\n] @punctuation.bracket\n\n[\n (keyword_zbreak)\n (keyword_debug)\n (zbreak_command_option)\n (keyword_trace)\n (keyword_step)\n (keyword_nostep)\n (keyword_stepmethod)\n (keyword_errortrap)\n (keyword_interrupt)\n (keyword_zkill)\n (keyword_zn)\n (keyword_zsu)\n (keyword_ztrap)\n (keyword_zz)\n] @keyword.debug\n\n[\n (keyword_pound_define)\n (keyword_pound_def1arg)\n (keyword_pound_if)\n (keyword_pound_elseif)\n (keyword_pound_else)\n (keyword_pound_endif)\n (keyword_pound_ifdef)\n (keyword_pound_ifndef)\n (keyword_dim)\n (keyword_pound_import)\n (keyword_pound_include)\n (keyword_pound_delay)\n (locktype)\n (tag_end_if)\n] @keyword.directive\n\n[\n (keyword_as)\n (keyword_of)\n (keyword_public)\n (keyword_private)\n (keyword_methodimpl)\n (device_keywords)\n (close_parameter_option_value)\n (keyword_clear)\n (keyword_on)\n (keyword_off)\n (keyword_all)\n (keyword_ext)\n (keyword_stepmethod)\n (keyword_destruct)\n] @keyword.modifier\n\n[\n (keyword_print)\n (keyword_zprint)\n (keyword_set)\n (keyword_write)\n (keyword_zwrite)\n (keyword_do)\n (keyword_do_old)\n (keyword_kill)\n (keyword_lock)\n (keyword_read)\n (keyword_open)\n (keyword_close)\n (keyword_use)\n (keyword_new)\n (keyword_job)\n (keyword_merge)\n (keyword_goto)\n (keyword_halt_or_hang)\n (keyword_halt)\n (keyword_hang)\n (keyword_tcommit)\n (keyword_trollback)\n (keyword_tstart)\n (keyword_xecute)\n (keyword_view)\n (keyword_zremove)\n (command_keyword)\n (keyword_zload)\n (keyword_for)\n (keyword_while)\n (keyword_continue)\n (keyword_quit)\n (keyword_break)\n (keyword_return)\n (keyword_if)\n (keyword_old_if)\n (keyword_elseif)\n (keyword_else)\n (keyword_oldelse)\n (keyword_throw)\n (keyword_try)\n (keyword_catch)\n] @keyword\n\n[\n (keyword_embedded_html)\n (keyword_embedded_xml)\n (keyword_embedded_sql_amp)\n (keyword_embedded_sql_hash)\n (keyword_js)\n] @keyword.operator\n\n[\n (embedded_js_special_case_complete)\n (embedded_sql_marker)\n (embedded_sql_reverse_marker)\n (html_marker)\n (html_marker_reversed)\n] @punctuation.special\n\n[\n (line_comment_1)\n (line_comment_2)\n (line_comment_3)\n (line_comment_4)\n (block_comment)\n (inline_comment)\n (argumentless_inline_comment)\n] @comment\n\n(tag) @function.method\n\n[\n (pound_if_special_case_else)\n (pound_if_special_case)\n] @comment.inactive\n\n\"--\" @operator\n\n(command_if_dotted_block\n \".\" @punctuation.special.dots)\n\n(command_for_dotted_block\n \".\" @punctuation.special.dots)\n\n(command_while_dotted_block\n \".\" @punctuation.special.dots)\n\n(command_dowhile_dotted\n \".\" @punctuation.special.dots)\n\n(command_trycatch_dotted\n \".\" @punctuation.special.dots)\n\n(dotted_statement\n \".\" @punctuation.special.dots)\n\n(else_block_dotted\n \".\" @punctuation.special.dots)\n\n(variable_datatype\n \".\" @function.builtin)\n\n(method_call\n \".\" @function.builtin)\n\n; === END CORE ===\n; === BEGIN LOCAL ===\n(routine_type) @type.builtin\n\n(documatic_line) @comment.documentation @spell\n\n(routine) @keyword.type\n\n(compiled_header) @markup.heading\n\n; === END LOCAL ===\n";Expand description
The syntax highlighting query for ObjectScript routine grammar.