pub const STUDIO_HIGHLIGHTS_QUERY: &str = "; start @punctuation.bracket.json (magenta fg, default bg)\n[\n (json_array_literal\n [\n \"[\"\n \"]\"\n ] @punctuation.bracket.json)\n (json_object_literal\n [\n \"{\"\n \"}\"\n ] @punctuation.bracket.json)\n]\n\n[\n (class_body\n [\n \"{\"\n \"}\"\n ] @punctuation.special)\n (method_definition\n [\n \"{\"\n \"}\"\n ] @punctuation.special)\n]\n\n; end @punctuation.bracket.json\n; start @label (maroon fg, yellow bg)\n(tag) @label\n\n; end @label (maroon fg, yellow bg)\n; start @variable.builtin @keyword.directive @variable.member.oref @constant.builtin (blue fg, default bg)\n[\n (ssvn)\n (system_defined_variable)\n (system_defined_function)\n \"$$\"\n] @variable.builtin\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(macro_value) @constant.builtin\n\n[\n (oref_property)\n (oref_parameter)\n] @variable.member.oref\n\n(oref_method\n (method_name) @variable.member.oref)\n\n(class_method_call\n (method_name) @variable.member.oref)\n\n; end @variable.builtin @keyword.directive @variable.member.oref @constant.builtin (blue fg, default bg)\n; start @type.definition (purple fg)\n[\n (keyword_embedded_html)\n (keyword_embedded_xml)\n (keyword_embedded_sql_amp)\n (keyword_embedded_sql_hash)\n (keyword_js)\n (sql_field_reference)\n] @type.definition\n\n; end @type.definition (purple fg)\n; local variable \"maroon fg, light_cyan bg\"\n(lvn) @variable\n\n; end local variable\n; start black fg, default bg @punctuation.special, @variable.member, @number, @keyword.debug\n[\n (embedded_js_special_case_complete)\n (embedded_sql_marker)\n (embedded_sql_reverse_marker)\n (html_marker)\n (html_marker_reversed)\n \"@\"\n \":\"\n \",\"\n \"=\"\n \"\'=\"\n \"..\"\n \"...\"\n \"^\"\n \"+\"\n \"-\"\n \"|\"\n (bracket)\n (binary_operator)\n \"\'?\"\n \"?\"\n \"<\"\n \">\"\n \"/\"\n] @punctuation.special\n\n[\n (json_number_literal)\n (numeric_literal)\n] @number\n\n[\n (keyword_trace)\n (keyword_errortrap)\n (keyword_interrupt)\n (zbreak_command_option)\n (keyword_clear)\n (keyword_all)\n (keyword_debug)\n (keyword_step)\n (keyword_nostep)\n (keyword_stepmethod)\n (keyword_ext)\n (keyword_destruct)\n] @keyword.debug\n\n[\n (instance_variable)\n (gvn)\n (macro_arg)\n (macro_def)\n] @variable.member\n\n; end black fg, default bg @punctuation.special, @variable.member, @number, @keyword.debug\n; \"Navy FG, Default BG\" (Object (Class, super))\n[\n (keyword_pound_pound_super)\n (keyword_pound_pound_class)\n] @keyword.operator\n\n; end \"Navy FG, Default BG\" (Object (Class, super))\n; keyword names (red fg, default bg)\n[\n (keyword_for)\n (keyword_while)\n (keyword_continue)\n (keyword_quit)\n (keyword_if)\n (keyword_elseif)\n (keyword_else)\n (keyword_oldelse)\n (keyword_throw)\n (keyword_try)\n (keyword_catch)\n (keyword_return)\n (keyword_break)\n (keyword_zbreak)\n (keyword_zkill)\n (keyword_ztrap)\n (keyword_zz)\n (keyword_public)\n (keyword_private)\n (keyword_methodimpl)\n (device_keywords)\n (close_parameter_option_value)\n (keyword_print)\n (keyword_zprint)\n (keyword_zn)\n (keyword_set)\n (keyword_write)\n (keyword_zwrite)\n (keyword_do)\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_do_old)\n (keyword_old_if)\n (old_if_remove)\n (keyword_old_if_refactor)\n] @keyword\n\n; end (red fg, default bg)\n; macro (silver bg, blue fg)\n(macro) @function.macro\n\n; end macro (silver bg, blue fg)\n; start (teal fg, default bg) @type.builtin\n(class_ref\n (class_name) @type.builtin)\n\n; end (teal fg, default bg) @type.builtin\n; start comment (green fg, default bg)\n[\n (line_comment_1)\n (line_comment_2)\n (line_comment_3)\n (line_comment_4)\n (block_comment)\n] @comment @spell\n\n; end (green fg, default bg)\n; start string (\"black fg, pink bg\")\n[\n (json_string_literal)\n (string_literal)\n] @string\n\n; end string (\"black fg, pink bg\")\n; start brackets (purple fg, default bg)\n[\n \"{\"\n \"}\"\n (bracket)\n] @punctuation.bracket\n\n; end brackets (purple fg, default bg)\n; start @label (maroon fg, yellow bg)\n(routine_name) @label\n\n; end @label (maroon fg, yellow bg)\n; start @string.regexp (olive fg, default bg)\n(pattern_expression) @string.regexp\n\n(keyword_zsu) @keyword.modifier\n\n; end @string.regexp (olive fg, default bg)\n[\n (command_quit)\n (command_else)\n (command_continue)\n (command_if)\n (command_do)\n (command_for)\n (command_lock)\n (command_return)\n (command_halt_or_hang)\n (command_break)\n (command_tcommit)\n (command_trollback)\n (command_tstart)\n (command_zbreak)\n] @comment\n\n; start Dots in dotted statements, (black fg,silver bg)\n(dotted_statement\n (dot) @punctuation.special.dots)\n\n; end Dots in dotted statements (black fg,silver bg)\n; start #dim command\n; @type.builtin -> teal fg, default bg\n; @variable.member -> black fg, default bg\n; @variable -> maroon fg, light_cyan bg\n(pound_dim\n (keyword_as)\n .\n (variable_datatype\n [\n (instance_variable)\n (macro)\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @type.builtin) @type.builtin)\n\n(pound_dim\n (keyword_as)\n .\n (variable_datatype\n [\n (instance_variable)\n (macro)\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @variable.member) @variable.member\n .\n (keyword_of) @punctuation.special\n .\n (variable_datatype\n [\n (instance_variable)\n (macro)\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @type.builtin) @type.builtin)\n\n(pound_dim\n (keyword_dim)\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @variable)\n\n; end #dim command\n; start write command/read command\n; @punctuation.special -> black fg, default bg\n[\n \"!\"\n \"*\"\n \"?\"\n (mnemonic_name)\n (read_fchar)\n] @punctuation.special\n\n; end write command/read command\n; start lock command\n; @punctuation.special -> black fg, default background\n(command_lock_arguments_variant_1\n [\n \"+\"\n \"-\"\n ] @punctuation.special)\n\n(command_lock_arguments_variant_2\n [\n \"+\"\n \"-\"\n ] @punctuation.special)\n\n(locktype\n [\n \"#\"\n \"_\"\n ] @punctuation.special)\n\n; end lock command\n; read command # start (black fg, default bg)\n(read_variable\n \"#\" @punctuation.special)\n\n; read command # end\n; start line_ref\n; @label -> maroon fg, yellow bg\n; @variable -> \"maroon fg, light_cyan bg\"\n(line_ref\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @label)\n\n(line_ref\n [\n \"+\"\n \"-\"\n ] @punctuation.special\n .\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @variable)\n\n; end line_ref\n; start dollarsf\n; @variable -> maroon fg, light_cyan bg\n; @variable.member.oref -> blue fg, default bg\n(dollarsf\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @type.builtin\n \".\"\n .\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @variable.member.oref)\n\n; end dollarsf\n; start extrinsic_function\n(extrinsic_function\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @label)\n\n; end extrinsic_function\n; start highlighting for code never touched\n[\n (pound_if_special_case)\n (pound_if_special_case_else)\n (pound_if_special_case_else_if)\n] @comment.inactive\n\n; end highlighting for code never touched\n; start zload command\n; @label -> (maroon fg, yellow bg)\n(command_zload\n (expression\n (expr_atom\n [\n (lvn\n (objectscript_identifier) @label)\n (lvn\n (objectscript_identifier_special) @label)\n (instance_variable) @label\n (oref_chain_expr\n [\n (lvn)\n (instance_variable)\n ] @label\n (oref_chain_segment\n (oref_property\n (property_name\n (identifier_segment_immediate) @label) @label)) @label)\n ] @label)))\n\n; end zload command\n; start #ifdef command\n; @variable.member -> black fg, default bg\n(pound_ifdef\n (keyword_pound_ifdef)\n .\n (expression\n (expr_atom\n (lvn\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @variable.member))))\n\n; end #ifdef command\n; start #ifndef command\n; @variable.member -> black fg, default bg\n(pound_ifndef\n (keyword_pound_ifndef)\n .\n (expression\n (expr_atom\n (lvn\n [\n (objectscript_identifier)\n (objectscript_identifier_special)\n ] @variable.member))))\n\n; end #ifdef command\n; start #import command\n; @variable.member -> black fg, default bg\n(pound_import\n (class_name) @variable.member)\n\n; end #import command\n; start #include command\n; @label -> (maroon fg, yellow bg)\n(pound_include\n (class_name) @label)\n\n; end #include command\n; === END CORE ===\n; === BEGIN LOCAL ===\n(iris_username) @variable.member\n\n[\n (keyword_import)\n (keyword_include)\n (keyword_includegenerator)\n (keyword_class)\n (keyword_method)\n (keyword_classmethod)\n (class_extends)\n (keyword_xdata)\n (keyword_query)\n (keyword_foreignkey)\n (keyword_index)\n (keyword_property)\n (keyword_projection)\n (keyword_relationship)\n (keyword_parameter)\n (keyword_references)\n (keyword_trigger)\n (keyword_storage)\n] @keyword.type\n\n(class_definition\n (class_name) @keyword.type)\n\n;start brackets representing keywords\n;@punctuation.special -> black fg, default bg\n(query_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(class_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(query_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(property_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(parameter_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(method_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(foreignkey_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(index_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(extent_index_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(call_method_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(projection_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(relationship_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(expression_method_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(external_method_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(xdata_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(storage_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n(trigger_keywords\n [\n \"[\"\n \"]\"\n ] @punctuation.special)\n\n; end brackets representing keywords\n(class_keyword\n (_\n [\n \"{\"\n \"}\"\n ] @punctuation.special))\n\n(class_keyword_owner\n [\n \"{\"\n \"}\"\n ] @punctuation.special)\n\n(documatic_line) @comment.documentation @spell\n\n; start keywords\n; @keyword.operator -> navy fg, default bg\n; \n[\n (xdata_keyword)\n (class_keyword)\n (method_keyword)\n (expression_method_keywords)\n (call_method_keywords)\n (external_method_keywords)\n (foreignkey_keyword)\n (index_keyword)\n (index_keyword_extent)\n (keyword_byref)\n (keyword_output)\n (parameter_keyword)\n (property_keyword)\n (projection_keyword)\n (relationship_keyword)\n (query_keyword)\n (trigger_keyword)\n] @keyword.operator\n\n(property_keyword\n (_\n (query_name) @variable.member.sql))\n\n(query_keyword\n (_\n (query_name) @variable.member.sql))\n\n(class_keyword\n (_\n (query_name) @variable.member.sql))\n\n(index_keyword\n (_\n (query_name) @variable.member.sql))\n\n(method_keyword\n (_\n (query_name) @variable.member.sql))\n\n(trigger_keyword\n (_\n (query_name) @variable.member.sql))\n\n(class_keyword\n (_\n [\n (property_name)\n (typename)\n (storage_name)\n ] @type.definition))\n\n(query_keyword\n (_\n [\n (property_name)\n (typename)\n ] @type.definition))\n\n(relationship_keyword\n (_\n [\n (variable_datatype)\n (typename)\n ] @type.definition))\n\n(method_keyword\n (_\n [\n (property_name)\n (typename)\n (xml_identifier)\n ] @type.definition))\n\n(method_keyword_external_proc_name\n (objectscript_identifier) @type.definition)\n\n(parameter_keyword\n (_\n [\n (typename)\n (keyword_list)\n ] @type.definition))\n\n(trigger_keyword\n (_\n [\n (typename)\n (trigger_event_value)\n ] @type.definition))\n\n(property_keyword\n (_\n (typename) @type.definition))\n\n(property_keyword_aliases\n (property_name) @variable.member)\n\n(foreignkey_keyword\n (_\n (typename) @type.definition))\n\n(foreignkey_keyword\n (_\n (query_name) @variable.member.sql))\n\n(expression_method_keywords\n (_\n (typename) @type.definition))\n\n(call_method_keywords\n (_\n (typename) @type.definition))\n\n(external_method_keywords\n (_\n (typename) @type.definition))\n\n(method_keyword\n (_\n (method_name) @variable.member))\n\n; start class member names\n; @variable.member -> black fg, default bg\n(method_definition\n (method_name) @variable.member)\n\n(xdata\n (xdata_name) @variable.member)\n\n(property\n (property_name) @variable.member)\n\n(parameter\n (parameter_name) @variable.member)\n\n(relationship\n (relationship_name) @variable.member)\n\n(query\n (query_name) @variable.member)\n\n(foreignkey\n [\n (foreignkey_name)\n (property_name)\n (index_name)\n ] @variable.member)\n\n(index\n (index_name) @variable.member)\n\n(projection\n (projection_name) @variable.member)\n\n(trigger\n (trigger_name) @variable.member)\n\n(storage\n (storage_name) @variable.member)\n\n; end class member names\n(foreignkey\n (class_name) @keyword.type)\n\n(xdata_keyword\n (_\n (typename) @type.definition))\n\n(xdata_keyword_mimetype\n (typename) @type.definition) @keyword.operator\n\n; start return_type @keyword.type\n(return_type) @keyword.type\n\n; end return_type\n; start method_arg @variable.parameter\n(method_arg) @variable.parameter\n\n(method_arg\n (lvn\n (objectscript_identifier) @variable.parameter))\n\n(method_arg\n (expr_atom\n (lvn\n (objectscript_identifier) @variable.parameter)))\n\n; end method_arg @variable.parameter\n; END LOCAL\n; start Include, Import, Includegenerator\n(import_code\n (include_clause\n (class_name) @keyword.type))\n\n(include_code\n (include_clause\n (class_name) @keyword.type))\n\n(include_generator\n (include_clause\n (class_name) @keyword.type))\n\n; end Include, Import, Includegenerator\n; start index\n(index\n (keyword_on) @keyword.operator\n (index_properties\n (index_item) @variable.member))\n\n(index\n \";\" @punctuation.special)\n\n(index_properties\n [\n \"(\"\n \")\"\n ] @punctuation.special)\n\n; end index\n; start parameter\n(parameter\n \";\" @punctuation.special)\n\n(parameter_type\n (keyword_as) @keyword.operator) @variable.member\n\n; end parameter\n; start property\n(property\n \";\" @punctuation.special)\n\n; end property\n; start projection\n(projection\n \";\" @punctuation.special)\n\n; end projection\n;start relationship\n(relationship\n \";\" @punctuation.special)\n\n; end relationship\n(default_argument_value) @type.definition\n";Expand description
The syntax highlighting query for ObjectScript UDL (Studio Version).