@shikijs/langs-precompiled 3.22.0 → 3.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import type { LanguageRegistration } from '@shikijs/types'
2
+ const langs: LanguageRegistration []
3
+ export default langs
package/dist/bird.mjs ADDED
@@ -0,0 +1,2 @@
1
+ /* Alias bird for bird2 */
2
+ export { default } from './bird2.mjs'
@@ -0,0 +1,3 @@
1
+ import type { LanguageRegistration } from '@shikijs/types'
2
+ const langs: LanguageRegistration []
3
+ export default langs
package/dist/bird2.mjs ADDED
@@ -0,0 +1,5 @@
1
+ const lang = Object.freeze({displayName:"BIRD2 Configuration",fileTypes:["conf","bird","bird2","bird3","bird.conf","bird2.conf","bird3.conf"],foldingStartMarker:/\{\p{space}*(?=\n?$)/dgv,foldingStopMarker:/^\p{space}*\}/dgv,name:"bird2",patterns:[{include:"#comments"},{include:"#strings"},{include:"#numbers"},{include:"#ip-addresses"},{include:"#vpn-rd"},{include:"#bytestrings"},{include:"#bgp-paths"},{include:"#prefixes"},{include:"#template-definitions"},{include:"#filter-definitions"},{include:"#function-definitions"},{include:"#protocol-definitions"},{include:"#next-hop-statements"},{include:"#neighbor-statements"},{include:"#import-export-statements"},{include:"#structural-keywords"},{include:"#functional-keywords"},{include:"#semantic-modifiers"},{include:"#builtin-functions"},{include:"#method-properties"},{include:"#route-attributes"},{include:"#data-types"},{include:"#operators"},{include:"#constants"},{include:"#filter-names"},{include:"#user-variables"},{include:"#function-calls"},{include:"#method-calls"},{include:"#variable-declarations"},{include:"#symbols"},{include:"#blocks"},{include:"#print-statements"}],repository:{"bgp-paths":{patterns:[{begin:/\[=/dgv,beginCaptures:{"0":{name:"punctuation.definition.bgp-path.begin.bird"}},end:/=\]/dgv,endCaptures:{"0":{name:"punctuation.definition.bgp-path.end.bird"}},name:"meta.bgp-path.bird",patterns:[{match:/[\*\+\?]/dgv,name:"keyword.operator.wildcard.bird"},{match:/\b[0-9]+\b/dgv,name:"constant.numeric.asn.bird"},{include:"#numbers"}]}]},blocks:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.begin.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.block.bird",patterns:[{include:"$self"}]},{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.set.begin.bird"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.set.end.bird"}},name:"meta.set.bird",patterns:[{include:"$self"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.tuple.begin.bird"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.tuple.end.bird"}},name:"meta.tuple.bird",patterns:[{include:"$self"}]},{match:/;/dgv,name:"punctuation.terminator.statement.bird"},{match:/,/dgv,name:"punctuation.separator.bird"}]},"builtin-functions":{patterns:[{match:/\b(?:defined|unset|printn??|roa_check|aspa_check|aspa_check_downstream|aspa_check_upstream|from_hex|format|prepend|add|delete|filter|empty|reset|bt_assert|bt_test_suite|bt_test_same)\b/dgv,name:"support.function.builtin.bird"}]},bytestrings:{patterns:[{match:/\b(?:hex:)?(?:\p{AHex}{2}[\-\.\:\p{space}]*){2,}\p{AHex}{2}\b/dgv,name:"constant.numeric.bytestring.bird"},{match:/\b\p{AHex}{32,}\b/dgv,name:"constant.numeric.bytestring.bird"}]},comments:{patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.bird"}},end:/(?=\n?$)/dgv,name:"comment.line.number-sign.bird"},{begin:/\/\*/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.bird"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.bird"}},name:"comment.block.bird"}]},constants:{patterns:[{match:/\b(?:on|off|yes|no|true|false)\b/dgv,name:"constant.language.boolean.bird"},{match:/\b(?:empty|unknown|generic|rt|ro|one|ten)\b/dgv,name:"constant.language.special.bird"},{match:/\bSCOPE_(?:HOST|LINK|SITE|ORGANIZATION|UNIVERSE)\b/dgv,name:"constant.language.scope.bird"},{match:/\bRTS_(?:STATIC|INHERIT|DEVICE|RIP|OSPF|OSPF_IA|OSPF_EXT1|OSPF_EXT2|BGP|PIPE|BABEL)\b/dgv,name:"constant.language.source.bird"},{match:/\bRTD_(?:ROUTER|DEVICE|MULTIPATH|BLACKHOLE|UNREACHABLE|PROHIBIT)\b/dgv,name:"constant.language.dest.bird"},{match:/\bROA_(?:UNKNOWN|INVALID|VALID)\b/dgv,name:"constant.language.roa.bird"},{match:/\bASPA_(?:UNKNOWN|INVALID|VALID)\b/dgv,name:"constant.language.aspa.bird"},{match:/\bNET_(?:IP4|IP6|IP6_SADR|VPN4|VPN6|ROA4|ROA6|FLOW4|FLOW6|MPLS)\b/dgv,name:"constant.language.net-type.bird"},{match:/\bMPLS_POLICY_(?:NONE|STATIC|PREFIX|AGGREGATE|VRF)\b/dgv,name:"constant.language.mpls.bird"}]},"data-types":{patterns:[{match:/\b(?:int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\b/dgv,name:"storage.type.bird"}]},"filter-definitions":{patterns:[{begin:/\b(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.filter.bird"},"2":{name:"entity.name.function.filter.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.filter-definition.bird",patterns:[{include:"$self"}]}]},"filter-names":{patterns:[{match:/\b[A-Z_a-z][0-9A-Z_a-z]*_filter\b/dgv,name:"entity.name.function.filter.bird"}]},"function-calls":{patterns:[{begin:/\b([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\(/dgv,beginCaptures:{"1":{name:"entity.name.function.call.bird"}},end:/\)/dgv,name:"meta.function-call.bird",patterns:[{include:"$self"}]}]},"function-definitions":{patterns:[{begin:/\b(function)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\(/dgv,beginCaptures:{"1":{name:"keyword.control.function.bird"},"2":{name:"entity.name.function.user-defined.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.function-definition.bird",patterns:[{begin:/(?=\()/dgvy,end:/\)/dgv,name:"meta.function-parameters.bird",patterns:[{include:"#data-types"},{include:"#symbols"}]},{begin:/->/dgv,beginCaptures:{"0":{name:"keyword.operator.return-type.bird"}},end:/(?=\{)/dgv,name:"meta.function-return-type.bird",patterns:[{include:"#data-types"}]},{include:"$self"}]}]},"functional-keywords":{patterns:[{match:/\b(?:static|rip|ospf|bgp|babel|rpki|bfd|device|direct|kernel|pipe|perf|mrt|aggregator|l3vpn|radv)\b/dgv,name:"keyword.control.protocol-type.bird"},{match:/\b(?:graceful|restart|preference|disabled|hold|keepalive|connect|retry|start|delay|error|wait|forget|scan|randomize|router|id)\b/dgv,name:"keyword.control.routing.bird"},{match:/\b(?:interface|type|wired|wireless|tunnel|rxcost|limit|hello|update|interval|port|tx|class|dscp|priority|rx|buffer|length|check|link|rtt|cost|min|max|decay|send|timestamps)\b/dgv,name:"keyword.other.interface.bird"},{match:/\b(?:authentication|none|mac|permissive|password|generate|accept|from|to|algorithm|hmac|sha1|sha256|sha384|sha512|blake2s128|blake2s256|blake2b256|blake2b512)\b/dgv,name:"keyword.other.auth.bird"},{match:/\btime\b/dgv,name:"keyword.other.time.bird"},{match:/\b(?:hostname|description|debug|log|syslog|stderr|bird|protocols|tables|channels|timeouts|passwords|bfd|confederation|cluster|stub|dead|neighbors|area|md5|multihop|passive|rfc1583compat|tick|ls|retransmit|transmit|ack|state|database|summary|external|nssa|translator|always|candidate|never|role|stability|election|action|warn|block|disable|keep|filtered|receive|modify|add|delete|withdraw|unreachable|blackhole|prohibit|unreach|igp_metric|localpref|med|origin|community|large_community|ext_community|as_path|prepend|weight|gateway|scope|onlink|recursive|multipath|igp|channel|sadr|src|learn|persist|via|ng)\b/dgv,name:"keyword.other.config.bird"},{match:/\b(?:flow4|flow6|dst|src|proto|header|dport|sport|icmp|code|tcp|flags|dscp|dont_fragment|is_fragment|first_fragment|last_fragment|fragment|label|offset)\b/dgv,name:"keyword.other.flowspec.bird"},{match:/\b(?:vpn|mpls|aspa|roa6??)\b/dgv,name:"keyword.other.address.bird"},{match:/\b(?:all|none)\b/dgv,name:"keyword.other.quick-declaration.bird"}]},"import-export-statements":{patterns:[{captures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"},"3":{name:"entity.name.function.filter.bird"}},match:/\b(import)\p{space}+(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.import-statement.bird"},{begin:/\b(import)\p{space}+(filter)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.import-filter-inline.bird",patterns:[{include:"$self"}]},{begin:/\b(export)\p{space}+(where)\b/dgv,beginCaptures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.where.bird"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.statement.bird"}},name:"meta.export-where-clause.bird",patterns:[{include:"$self"}]},{captures:{"1":{name:"keyword.control.import-export.bird"},"2":{name:"keyword.control.filter.bird"},"3":{name:"entity.name.function.filter.bird"}},match:/\b(export)\p{space}+(filter)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.export-statement.bird"}]},"ip-addresses":{patterns:[{match:/\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:\/[0-9]{1,2})?\b/dgv,name:"constant.numeric.ip.ipv4.bird"},{match:/\b(?:\p{AHex}{0,4}:){2,7}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"},{match:/::(?:\p{AHex}{0,4}:){0,6}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"},{match:/(?:\p{AHex}{0,4}:){1,6}::(?:\p{AHex}{0,4}:){0,5}\p{AHex}{0,4}(?:\/[0-9]{1,3})?\b/dgv,name:"constant.numeric.ip.ipv6.bird"}]},"method-calls":{patterns:[{begin:/\.\p{space}*([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\(/dgv,beginCaptures:{"1":{name:"entity.name.function.method.bird"}},end:/\)/dgv,name:"meta.method-call.bird",patterns:[{include:"$self"}]},{captures:{"1":{name:"variable.other.property.bird"}},match:/\.\p{space}*([A-Z_a-z][0-9A-Z_a-z]*)/dgv,name:"meta.method-access.bird"}]},"method-properties":{patterns:[{match:/\b(?:first|last|last_nonaggregated|len|asn|data1??|data2|is_v4|ip|src|dst|rd|maxlen|type|mask|min|max)\b/dgv,name:"support.variable.property.bird"}]},"neighbor-statements":{patterns:[{captures:{"1":{name:"keyword.control.neighbor.bird"},"2":{name:"constant.numeric.ip-address.bird"},"3":{name:"meta.interface-reference.bird"},"4":{name:"string.quoted.single.interface.bird"},"5":{name:"keyword.control.as.bird"},"6":{name:"constant.numeric.asn.bird"}},match:/\b(neighbor)\p{space}+([\.\:\p{AHex}]+)\p{space}*(%\p{space}*'([^']+)')?\p{space}+(as)\p{space}+([0-9]+)\b/dgv,name:"meta.neighbor-statement.bird"},{captures:{"1":{name:"keyword.control.source.bird"},"2":{name:"constant.numeric.ip-address.bird"}},match:/\b(source address)\p{space}+([\.\:\p{AHex}]+)\b/dgv,name:"meta.source-address-statement.bird"}]},"next-hop-statements":{patterns:[{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.ip-version.bird"},"3":{name:"constant.numeric.ip-address.bird"}},match:/\b(next hop)\p{space}+(ipv4)\p{space}+([\.0-9]+)\b/dgv,name:"meta.next-hop-ipv4.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.ip-version.bird"},"3":{name:"constant.numeric.ip-address.bird"}},match:/\b(next hop)\p{space}+(ipv6)\p{space}+([\:\p{AHex}]+)\b/dgv,name:"meta.next-hop-ipv6.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.semantic-modifier.bird"}},match:/\b(next hop)\p{space}+(self)\b/dgv,name:"meta.next-hop-simple.bird"},{captures:{"1":{name:"keyword.control.routing.bird"},"2":{name:"keyword.other.semantic-modifier.bird"}},match:/\b(extended next hop)\p{space}+(o(?:n|ff))\b/dgv,name:"meta.extended-next-hop-statement.bird"}]},numbers:{patterns:[{match:/\b0x\p{AHex}+\b/dgv,name:"constant.numeric.hex.bird"},{match:/\b[0-9]+\b/dgv,name:"constant.numeric.decimal.bird"},{captures:{"1":{name:"keyword.other.unit.bird"}},match:/\b[0-9]+\p{space}*([mu]??s)\b/dgv,name:"constant.numeric.time.bird"}]},operators:{patterns:[{match:/==|!=|<=|>=|[\<\=\>\~]|!~/dgv,name:"keyword.operator.comparison.bird"},{match:/&&|\|\||!|->/dgv,name:"keyword.operator.logical.bird"},{match:/[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.bird"},{match:/\.\./dgv,name:"keyword.operator.range.bird"},{match:/=/dgv,name:"keyword.operator.assignment.bird"},{match:/\./dgv,name:"keyword.operator.accessor.bird"}]},prefixes:{patterns:[{match:/\b(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}|(?:\p{AHex}{0,4}:)+\p{AHex}{0,4})\/[0-9]{1,3}(?:[\-\+]|\{[0-9]+,[0-9]+\})?\b/dgv,name:"constant.numeric.prefix.bird"}]},"print-statements":{patterns:[{begin:/\b(printn??)\b/dgv,beginCaptures:{"1":{name:"keyword.other.print.bird"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.statement.bird"}},name:"meta.print-statement.bird",patterns:[{include:"$self"}]}]},"protocol-definitions":{patterns:[{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+(from)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.protocol.bird"},"4":{name:"keyword.control.template-reference.bird"},"5":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-with-template.bird",patterns:[{include:"$self"}]},{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-with-name.bird",patterns:[{include:"$self"}]},{begin:/\b(protocol)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.protocol.bird"},"2":{name:"entity.name.type.protocol.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.protocol-definition-anonymous.bird",patterns:[{include:"$self"}]}]},"route-attributes":{patterns:[{match:/\b(?:net|scope|preference|from|gw|proto|source|dest|ifname|ifindex|weight|gw_mpls|gw_mpls_stack|onlink|igp_metric|mpls_label|mpls_policy|mpls_class|bgp_path|bgp_origin|bgp_next_hop|bgp_med|bgp_local_pref|bgp_community|bgp_ext_community|bgp_large_community|bgp_originator_id|bgp_cluster_list|ospf_metric1|ospf_metric2|ospf_tag|ospf_router_id|rip_metric|rip_tag|mypath|mylclist)\b/dgv,name:"support.variable.route-attribute.bird"}]},"semantic-modifiers":{patterns:[{match:/\b(?:self|on|off|remote|extended)\b/dgv,name:"keyword.other.semantic-modifier.bird"}]},strings:{patterns:[{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.bird"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.bird"}},name:"string.quoted.double.bird",patterns:[{match:/\./dgv,name:"constant.character.escape.bird"}]},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.bird"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.bird"}},name:"string.quoted.single.bird"}]},"structural-keywords":{patterns:[{match:/\b(?:if|then|else|case|for|do|while|break|continue|return|in)\b/dgv,name:"keyword.control.bird"},{match:/\belse\p{space}*:/dgv,name:"keyword.control.case.else.bird"},{match:/\b(?:accept|reject|error)\b/dgv,name:"keyword.control.flow.bird"},{match:/\b(?:protocol|table|define|include|attribute|eval|ipv4|ipv6|local|as|from|where|cost|limit|action)\b/dgv,name:"keyword.control.structure.bird"}]},symbols:{patterns:[{match:/\b[A-Z_a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.bird"}]},"template-definitions":{patterns:[{begin:/\b(template)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)\p{space}*\{/dgv,beginCaptures:{"1":{name:"keyword.control.template.bird"},"2":{name:"entity.name.type.protocol.bird"},"3":{name:"entity.name.function.template.bird"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.end.bird"}},name:"meta.template-definition.bird",patterns:[{include:"$self"}]}]},"user-variables":{patterns:[{match:/\b[A-Z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.user-defined.bird"}]},"variable-declarations":{patterns:[{captures:{"1":{name:"storage.type.bird"},"2":{name:"variable.other.declaration.bird"}},match:/\b(int|bool|ip|prefix|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\p{space}+([A-Z_a-z][0-9A-Z_a-z]*)(?:\p{space}*=|;)/dgv,name:"meta.variable-declaration.bird"}]},"vpn-rd":{match:/\b(?:[0-9]+:[0-9]+|[012]:[0-9]+:[0-9]+|(?:[0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]+)\b/dgv,name:"constant.numeric.vpn-rd.bird"}},scopeName:"source.bird2",embeddedLangs:undefined,aliases:["bird"]})
2
+
3
+ export default [
4
+ lang
5
+ ]
package/dist/c3.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"C3",fileTypes:["c3","c3i","c3t"],name:"c3",patterns:[{include:"#top_level"},{include:"#statements"}],repository:{assign_right_expression:{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#expression"}]},attribute:{patterns:[{begin:/@(?:(?:align|allow_deprecated|benchmark|bigendian|builtin|callconv|cname|compact|const|deprecated|dynamic|export|extern|finalizer|format|if|inline|init|jump|link|littleendian|local|maydiscard|naked|noalias|nodiscard|noinit|noinline|nopadding|norecurse|noreturn|nosanitize|nostrip|obfuscate|operator|operator_r|operator_s|optional|overlap|packed|private|public|pure|reflect|safeinfer|safemacro|simd|section|structlike|tag|test|unused|used|wasm|weak|winmain)|\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b/dgv,beginCaptures:{"0":{name:"keyword.annotation.c3"}},end:/(?=[^\t \(])|(?<=\))/dgv,name:"meta.annotation.c3",patterns:[{include:"#parens"}]}]},block:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.block.c3",patterns:[{include:"#statements"}]}]},block_comment:{begin:/\/\*/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.c3"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.c3"}},name:"comment.block.c3",patterns:[{include:"#block_comment_body"}]},block_comment_body:{patterns:[{begin:/\/\*/dgv,end:/\*\//dgv,patterns:[{include:"#block_comment_body"}]}]},brackets:{patterns:[{begin:/\[<?/dgv,beginCaptures:{"0":{name:"punctuation.section.brackets.begin.c3"}},end:/>?\]/dgv,endCaptures:{"0":{name:"punctuation.section.brackets.end.c3"}},name:"meta.brackets.c3",patterns:[{include:"#expression"}]}]},builtin:{patterns:[{captures:{"1":{name:"constant.language.c3"},"2":{name:"entity.name.function.builtin.c3"}},match:/(?:(\$\$\b_*[A-Z][0-9A-Z_]*)|(\$\$\b_*[a-z][0-9A-Z_a-z]*))\b/dgv}]},bytes_literal:{patterns:[{begin:/(x)(["'\`])/dgv,beginCaptures:{"1":{name:"keyword.other.c3"},"2":{name:"punctuation.definition.string.begin.c3"}},end:/\2()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.other.c3",patterns:[{match:/[f\p{space}\p{AHex}]+/dgv,name:"constant.numeric.integer.c3"}]},{begin:/(b64)(["'\`])/dgv,beginCaptures:{"1":{name:"keyword.other.c3"},"2":{name:"punctuation.definition.string.begin.c3"}},end:/\2()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.other.c3",patterns:[{match:/[\+\/-9\=A-Za-z\p{space}]+/dgv,name:"constant.numeric.integer.c3"}]}]},char_literal:{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c3"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.single.c3",patterns:[{include:"#escape_sequence"}]},comments:{patterns:[{include:"#line_comment"},{include:"#block_comment"},{include:"#doc_comment"}]},constants:{patterns:[{match:/\b(true|false|null)\b/dgv,name:"constant.language.c3"},{begin:/\b_*[A-Z][0-9A-Z_]*\b/dgv,beginCaptures:{"0":{name:"variable.other.constant.c3"}},end:/(?=[^\t \{])|(?<=\})/dgv,patterns:[{include:"#generic_params"}]}]},control_statements:{patterns:[{begin:/\$for\b/dgv,beginCaptures:{"0":{name:"keyword.control.ct.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#statements"}]},{begin:/\$foreach\b/dgv,beginCaptures:{"0":{name:"keyword.control.ct.c3"}},end:/(?<=:)/dgv,patterns:[{include:"#comments"},{match:/\$\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.c3"},{match:/,/dgv,name:"punctuation.separator.c3"},{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]}]},{begin:/\bfor\b/dgv,beginCaptures:{"0":{name:"keyword.control.c3"}},end:/(?<=\))/dgv,patterns:[{include:"#comments"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},patterns:[{include:"#statements"}]}]},{begin:/\$(?:switch|case|default|if)\b/dgv,beginCaptures:{"0":{name:"keyword.control.ct.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]},{begin:/\b(?:case|default)\b/dgv,beginCaptures:{"0":{name:"keyword.control.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]}]},doc_comment:{begin:/(?=<\*)/dgv,end:/(\*>)/dgv,endCaptures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"punctuation.definition.comment.end.c3"}},patterns:[{include:"#doc_comment_body"}]},doc_comment_body:{patterns:[{begin:/(<\*)\p{space}*(?=@)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"punctuation.definition.comment.begin.c3"}},end:/(?=\*>)/dgv,patterns:[{captures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"variable.parameter.c3"},"2":{name:"support.type.c3"},"3":{name:"keyword.operator.variadic.c3"}},match:/@param(?:\p{space}*\[&?(?:in|out|inout)\])?\p{space}*(?:([\#\$]?\b_*[a-z][0-9A-Z_a-z]*)\b|(\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b|(\.\.\.))/dgv},{begin:/@(?:require\b|ensure\b|return\?)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"}},end:/(?=:|\*>|(?=\n?$))/dgv,patterns:[{include:"#expression"}]},{match:/@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"comment.block.documentation.c3"},{match:/:/dgv,name:"comment.block.documentation.c3"},{begin:/(["\`])/dgv,end:/\\1/dgv,name:"comment.block.documentation.c3"}]},{begin:/(<\*)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"punctuation.definition.comment.begin.c3"}},end:/(?=^\p{space}*@|\*>)/dgv,name:"comment.block.documentation.c3"},{begin:"",end:/(?=\*>)/dgv,patterns:[{captures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"variable.parameter.c3"},"2":{name:"support.type.c3"},"3":{name:"keyword.operator.variadic.c3"}},match:/^\p{space}*@param(?:\p{space}*\[&?(?:in|out|inout)\])?\p{space}*(?:([\#\$]?\b_*[a-z][0-9A-Z_a-z]*)\b|(\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b|(\.\.\.))/dgv},{begin:/^\p{space}*@(?:require\b|ensure\b|return\?)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"}},end:/(?=:|\*>|(?=\n?$))/dgv,patterns:[{include:"#expression"}]},{match:/^\p{space}*@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"comment.block.documentation.c3"},{match:/:/dgv,name:"comment.block.documentation.c3"},{begin:/(["\`])/dgv,end:/\\1/dgv,name:"comment.block.documentation.c3"}]}]},escape_sequence:{match:/\\(["'0\\abefnrtv]|x\p{AHex}{2}|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.c3"},expression:{patterns:[{include:"#comments"},{include:"#function"},{include:"#constants"},{include:"#builtin"},{include:"#literals"},{include:"#operators"},{include:"#keywords"},{include:"#type"},{include:"#path"},{include:"#function_call"},{include:"#variable"},{include:"#parens"},{include:"#brackets"},{include:"#block"},{include:"#punctuation"},{include:"#leftover_at_ident"}]},function:{begin:/(?=\b(fn|macro)\b)/dgv,end:/(?=[\;\=\{])/dgv,patterns:[{begin:/\b(fn|macro)\b/dgv,beginCaptures:{"1":{name:"keyword.declaration.function.c3"}},end:/(?=\()/dgv,name:"meta.function.c3",patterns:[{include:"#comments"},{include:"#function_header"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.function.parameters.c3",patterns:[{include:"#parameters"}]},{begin:/(?<=\))/dgv,contentName:"meta.function.c3",end:/(?=[\;\=\{])/dgv,patterns:[{include:"#comments"},{include:"#attribute"}]}]},function_call:{begin:/([\#\@]?\b_*[a-z][0-9A-Z_a-z]*)\b(?=\p{space}*(\{[^\n]*\})?\p{space}*\()/dgv,beginCaptures:{"1":{name:"entity.name.function.c3"}},end:/(?<=\))/dgv,name:"meta.function_call.c3",patterns:[{include:"#generic_params"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#comments"},{begin:/([\#\$]?\b_*[a-z][0-9A-Z_a-z]*|\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b\p{space}*(:)(?!:)/dgv,beginCaptures:{"1":{name:"variable.parameter.c3"},"2":{name:"punctuation.separator.c3"}},end:/(?=\))|([\,\;])/dgv,endCaptures:{"1":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]},{begin:/(?=\P{space})/dgv,end:/(?=\))|([\,\;])/dgv,endCaptures:{"1":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]},{match:/;/dgv,name:"punctuation.separator.c3"}]}]},function_header:{patterns:[{include:"#type"},{match:/\./dgv,name:"punctuation.accessor.c3"},{match:/@?\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.function.c3"}]},generic_params:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.generic.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.generic.end.c3"}},name:"meta.generic.c3",patterns:[{include:"#expression"}]}]},integer_literal:{match:/\b(?:0[Xx]\p{AHex}(?:_?\p{AHex})*|0[Oo][0-7](_?[0-7])*|0[Bb][01](_?[01])*|[0-9](?:_?[0-9])*)(?:[IUiu](?:8|16|32|64|128)|[Uu][Ll]{0,2}|[Ll]{1,2})?/dgv,name:"constant.numeric.integer.c3"},keywords:{patterns:[{match:/\$(?:alignof|assert|assignable|default|defined|echo|embed|eval|error|exec|extnameof|feature|include|is_const|kindof|nameof|offsetof|qnameof|sizeof|stringify|vacount|vaconst|vaarg|vaexpr|vasplat)\b/dgv,name:"keyword.other.ct.c3"},{match:/\$(?:case|else|endfor|endforeach|endif|endswitch|for|foreach|if|switch)\b/dgv,name:"keyword.control.ct.c3"},{match:/\b(?:assert|asm|catch|inline|import|module|interface|try|var)\b/dgv,name:"keyword.other.c3"},{match:/\b(?:break|case|continue|default|defer|do|else|for|foreach|foreach_r|if|nextcase|return|switch|while)\b/dgv,name:"keyword.control.c3"}]},leftover_at_ident:{patterns:[{captures:{"0":{name:"keyword.annotation.c3"}},match:/@(?:pure|inline|noinline)/dgv,name:"meta.annotation.c3"},{begin:/@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"entity.name.function.c3"}},end:/(?=[^\t \{])|(?<=\})/dgv,patterns:[{include:"#generic_params"}]}]},line_comment:{match:/\/\/[^\n]*(?=\n?$)/dgv,name:"comment.line.double-slash.c3"},literals:{patterns:[{include:"#string_literal"},{include:"#char_literal"},{include:"#raw_string_literal"},{include:"#real_literal"},{include:"#integer_literal"},{include:"#bytes_literal"}]},modifier_keywords:{patterns:[{match:/\b(?:const|extern|static|tlocal|inline)\b/dgv,name:"storage.modifier.c3"}]},module_path:{patterns:[{include:"#path"},{captures:{"1":{name:"entity.name.scope-resolution.c3"}},match:/\b(_*[a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.path.c3"}]},operators:{patterns:[{match:/=>/dgv,name:"keyword.declaration.function.arrow.c3"},{match:/(?:[\-\%\&\*\+\/\^\|]|>>|<<|\+\+\+)=/dgv,name:"keyword.operator.assignment.augmented.c3"},{match:/<=|>=|==|[\<\>]|!=/dgv,name:"keyword.operator.comparison.c3"},{match:/\.\.\./dgv,name:"keyword.operator.variadic.c3"},{match:/\.\./dgv,name:"keyword.operator.range.c3"},{match:/\+\+\+?|--/dgv,name:"keyword.operator.arithmetic.c3"},{match:/<<|>>|&&&?|\|\|\|?/dgv,name:"keyword.operator.arithmetic.c3"},{match:/[\-\%\+\/\^\|\~]/dgv,name:"keyword.operator.arithmetic.c3"},{match:/=/dgv,name:"keyword.operator.assignment.c3"},{match:/\?\?\??|\?:|[\!\&\*\:\?]/dgv,name:"keyword.operator.c3"}]},parameters:{patterns:[{include:"#comments"},{begin:/\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"support.type.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#expression"}]}]},{include:"#type"},{include:"#punctuation"},{match:/\.\.\./dgv,name:"keyword.operator.variadic.c3"},{match:/&/dgv,name:"keyword.operator.address.c3"},{begin:/;/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\))/dgv,patterns:[{include:"#comments"},{match:/@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.function.c3"},{include:"#parameters"}]},{begin:/[\#\$]?\b_*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"variable.parameter.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{match:/\.\.\./dgv,name:"keyword.operator.variadic.c3"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#expression"}]}]}]},parens:{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#expression"}]}]},path:{captures:{"1":{name:"entity.name.scope-resolution.c3"},"2":{name:"punctuation.separator.scope-resolution.c3"}},match:/\b(_*[a-z][0-9A-Z_a-z]*)\b\p{space}*(::)/dgv,name:"meta.path.c3"},punctuation:{patterns:[{match:/,/dgv,name:"punctuation.separator.c3"},{match:/:/dgv,name:"punctuation.separator.c3"},{match:/\.(?!\.\.)/dgv,name:"punctuation.accessor.c3"}]},raw_string_literal:{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c3"}},end:/`(?!`)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.other.c3",patterns:[{match:/``/dgv,name:"constant.character.escape.c3"}]},real_literal:{patterns:[{match:/\b[0-9](?:_?[0-9])*(?:[Ff](?:16|32|64|128)?|[Dd])/dgv,name:"constant.numeric.float.c3"},{match:/\b(?:[0-9](?:_?[0-9])*[Ee][\-\+]?[0-9]+|[0-9](?:_?[0-9])*\.(?!\.)(?:[0-9](?:_?[0-9])*)?(?:[Ee][\-\+]?[0-9]+)?)(?:[Ff](?:16|32|64|128)?|[Dd])?/dgv,name:"constant.numeric.float.c3"},{match:/\b0[Xx]\p{AHex}(?:_?\p{AHex})*(?:\.(?:\p{AHex}(?:_?\p{AHex})*)?)?[Pp][\-\+]?[0-9]+(?:[Ff](?:16|32|64|128)?|[Dd])?/dgv,name:"constant.numeric.float.c3"}]},statements:{patterns:[{include:"#comments"},{include:"#modifier_keywords"},{match:/;/dgv,name:"punctuation.terminator.c3"},{include:"#control_statements"},{include:"#attribute"},{include:"#block"},{include:"#expression"}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c3"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.double.c3",patterns:[{include:"#escape_sequence"}]},structlike:{begin:/(?=\b(?:((?:|bit)struct)|(union))\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\b(?:((?:|bit)struct)|(union))\b/dgv,beginCaptures:{"1":{name:"keyword.declaration.struct.c3"},"2":{name:"keyword.declaration.union.c3"}},end:/(?=\{)/dgv,name:"meta.struct.c3",patterns:[{include:"#comments"},{match:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.type.struct.c3"},{match:/\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.member.c3"},{include:"#attribute"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\{)/dgv,patterns:[{include:"#comments"},{include:"#type_no_generics"},{include:"#attribute"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#comments"},{include:"#path"},{include:"#type"},{include:"#punctuation"}]}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.struct.body.c3",patterns:[{include:"#comments"},{include:"#structlike"},{include:"#modifier_keywords"},{include:"#type"},{match:/\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.member.c3"},{include:"#attribute"},{match:/;/dgv,name:"punctuation.terminator.c3"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=;)/dgv,patterns:[{include:"#attribute"},{include:"#expression"}]}]}]},top_level:{patterns:[{include:"#comments"},{include:"#modifier_keywords"},{begin:/\$(?:assert|include|echo|exec)\b/dgv,beginCaptures:{"0":{name:"keyword.other.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},patterns:[{include:"#comments"},{include:"#expression"}]},{begin:/\bmodule\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.module.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.module.c3",patterns:[{include:"#comments"},{include:"#attribute"},{include:"#module_path"},{include:"#generic_params"}]},{begin:/\bimport\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.import.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.import.c3",patterns:[{include:"#comments"},{include:"#attribute"},{include:"#module_path"},{match:/,/dgv,name:"punctuation.separator.c3"}]},{include:"#function"},{begin:/\balias\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.alias.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.alias.c3",patterns:[{include:"#comments"},{begin:/(?=\b(_*[a-z][0-9A-Z_a-z]*)\b\p{space}*=\p{space}*module)/dgv,end:/(?=;)/dgv,patterns:[{begin:/\b(_*[a-z][0-9A-Z_a-z]*)\b/dgv,end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{begin:/module/dgv,beginCaptures:{"0":{name:"keyword.declaration.module.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#module_path"}]}]}]}]},{begin:/(?:(@\b_*[a-z][0-9A-Z_a-z]*)|\b(_*[a-z][0-9A-Z_a-z]*)|\b(_*[A-Z][0-9A-Z_]*))\b/dgv,beginCaptures:{"1":{name:"entity.name.function.c3"},"2":{name:"variable.global.c3"},"3":{name:"variable.other.constant.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{include:"#assign_right_expression"}]},{begin:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"entity.name.type.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{include:"#assign_right_expression"}]}]},{begin:/\btypedef\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.typedef.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.typedef.c3",patterns:[{include:"#comments"},{begin:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"entity.name.type.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#parens"},{include:"#attribute"},{include:"#assign_right_expression"}]}]},{begin:/\bfaultdef\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.faultdef.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.faultdef.c3",patterns:[{include:"#comments"},{include:"#attribute"},{match:/\b_*[A-Z][0-9A-Z_]*\b/dgv,name:"variable.other.constant.c3"},{match:/,/dgv,name:"punctuation.separator.c3"}]},{begin:/\battrdef\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.attrdef.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.attrdef.c3",patterns:[{include:"#comments"},{begin:/@\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"keyword.annotation.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#parameters"}]},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{match:/,/dgv,name:"punctuation.separator.c3"}]}]}]},{include:"#structlike"},{begin:/(?=\benum\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\benum\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.enum.c3"}},end:/(?=\{)/dgv,name:"meta.enum.c3",patterns:[{include:"#comments"},{match:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.type.enum.c3"},{include:"#attribute"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\{)/dgv,patterns:[{include:"#comments"},{match:/\b(?:inline|const)\b/dgv,name:"storage.modifier.c3"},{include:"#type_no_generics"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},contentName:"meta.group.c3",end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},patterns:[{include:"#comments"},{match:/\b(?:inline|const)\b/dgv,name:"storage.modifier.c3"},{include:"#parameters"}]},{include:"#attribute"}]}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.enum.body.c3",patterns:[{include:"#comments"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=,)/dgv,patterns:[{include:"#expression"}]},{include:"#attribute"},{match:/\b_*[A-Z][0-9A-Z_]*\b/dgv,name:"variable.other.constant.c3"},{match:/,/dgv,name:"punctuation.separator.c3"}]}]},{begin:/(?=\binterface\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\binterface\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.interface.c3"}},end:/(?=\{)/dgv,name:"meta.interface.c3",patterns:[{include:"#comments"},{match:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.type.interface.c3"},{include:"#attribute"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\{)/dgv,patterns:[{include:"#comments"},{include:"#punctuation"},{include:"#type_no_generics"}]}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.interface.body.c3",patterns:[{include:"#comments"},{match:/;/dgv,name:"punctuation.terminator.c3"},{include:"#function"}]}]}]},type:{patterns:[{include:"#path"},{begin:/(?:\b(void|bool|char|double|float|float16|bfloat|int128|ichar|int|iptr|isz|long|short|uint128|uint|ulong|uptr|ushort|usz|float128|any|fault|typeid)|(\$?\b\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b)\b/dgv,beginCaptures:{"1":{name:"storage.type.built-in.primitive.c3"},"2":{name:"support.type.c3"}},end:/(?=\*>|[^\t \*\?\[\{])/dgv,patterns:[{include:"#comments"},{include:"#generic_params"},{include:"#type_suffix"}]},{include:"#type_expr"}]},type_expr:{patterns:[{begin:/\$(?:typeof|typefrom|evaltype)\b/dgv,beginCaptures:{"0":{name:"storage.type.c3"}},end:/(?<=\))/dgv,patterns:[{include:"#parens"}]},{begin:/\$vatype\b/dgv,beginCaptures:{"0":{name:"storage.type.c3"}},end:/(?<=\])/dgv,patterns:[{include:"#brackets"}]},{include:"#type_suffix"}]},type_no_generics:{patterns:[{include:"#path"},{begin:/(?:\b(void|bool|char|double|float|float16|bfloat|int128|ichar|int|iptr|isz|long|short|uint128|uint|ulong|uptr|ushort|usz|float128|any|fault|typeid)|(\$?\b\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b)\b/dgv,beginCaptures:{"1":{name:"storage.type.built-in.primitive.c3"},"2":{name:"support.type.c3"}},end:/(?=[^\t \*\?\@\[])/dgv,patterns:[{include:"#comments"},{include:"#type_suffix"}]},{include:"#type_expr"}]},type_suffix:{patterns:[{include:"#brackets"},{match:/\*/dgv,name:"keyword.operator.address.c3"},{match:/\?/dgv,name:"keyword.operator.c3"}]},variable:{begin:/(?<!#)\$?\b_*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"variable.other.c3"}},end:/(?=[^\t \{])|(?<=\})/dgv,patterns:[{include:"#generic_params"}]}},scopeName:"source.c3",embeddedLangs:undefined,aliases:undefined})
1
+ const lang = Object.freeze({displayName:"C3",fileTypes:["c3","c3i","c3t"],name:"c3",patterns:[{include:"#top_level"},{include:"#statements"}],repository:{assign_right_expression:{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#expression"}]},attribute:{patterns:[{begin:/@(?:(?:align|allow_deprecated|benchmark|bigendian|builtin|callconv|cname|compact|const|deprecated|dynamic|export|extern|finalizer|format|if|inline|init|jump|link|littleendian|local|maydiscard|naked|noalias|nodiscard|noinit|noinline|nopadding|norecurse|noreturn|nosanitize|nostrip|obfuscate|operator|operator_r|operator_s|optional|overlap|packed|private|public|pure|reflect|safeinfer|safemacro|simd|section|structlike|tag|test|unused|used|wasm|weak|winmain)|\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b/dgv,beginCaptures:{"0":{name:"keyword.annotation.c3"}},end:/(?=[^\t \(])|(?<=\))/dgv,name:"meta.annotation.c3",patterns:[{include:"#parens"}]}]},block:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.block.c3",patterns:[{include:"#statements"}]}]},block_comment:{begin:/\/\*/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.c3"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.c3"}},name:"comment.block.c3",patterns:[{include:"#block_comment_body"}]},block_comment_body:{patterns:[{begin:/\/\*/dgv,end:/\*\//dgv,patterns:[{include:"#block_comment_body"}]}]},brackets:{patterns:[{begin:/\[<?/dgv,beginCaptures:{"0":{name:"punctuation.section.brackets.begin.c3"}},end:/>?\]/dgv,endCaptures:{"0":{name:"punctuation.section.brackets.end.c3"}},name:"meta.brackets.c3",patterns:[{include:"#expression"}]}]},builtin:{patterns:[{captures:{"1":{name:"constant.language.c3"},"2":{name:"entity.name.function.builtin.c3"}},match:/(?:(\$\$\b_*[A-Z][0-9A-Z_]*)|(\$\$\b_*[a-z][0-9A-Z_a-z]*))\b/dgv}]},bytes_literal:{patterns:[{begin:/(x)(["'\`])/dgv,beginCaptures:{"1":{name:"keyword.other.c3"},"2":{name:"punctuation.definition.string.begin.c3"}},end:/\2()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.other.c3",patterns:[{match:/[f\p{space}\p{AHex}]+/dgv,name:"constant.numeric.integer.c3"}]},{begin:/(b64)(["'\`])/dgv,beginCaptures:{"1":{name:"keyword.other.c3"},"2":{name:"punctuation.definition.string.begin.c3"}},end:/\2()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.other.c3",patterns:[{match:/[\+\/-9\=A-Za-z\p{space}]+/dgv,name:"constant.numeric.integer.c3"}]}]},char_literal:{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c3"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.single.c3",patterns:[{include:"#escape_sequence"}]},comments:{patterns:[{include:"#line_comment"},{include:"#block_comment"},{include:"#doc_comment"}]},constants:{patterns:[{match:/\b(true|false|null)\b/dgv,name:"constant.language.c3"},{begin:/\b_*[A-Z][0-9A-Z_]*\b/dgv,beginCaptures:{"0":{name:"variable.other.constant.c3"}},end:/(?=[^\t \{])|(?<=\})/dgv,patterns:[{include:"#generic_args"}]}]},control_statements:{patterns:[{begin:/\$for\b/dgv,beginCaptures:{"0":{name:"keyword.control.ct.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#statements"}]},{begin:/\$foreach\b/dgv,beginCaptures:{"0":{name:"keyword.control.ct.c3"}},end:/(?<=:)/dgv,patterns:[{include:"#comments"},{match:/\$\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.c3"},{match:/,/dgv,name:"punctuation.separator.c3"},{begin:/:/dgv,beginCaptures:{"0":{name:"keyword.operator.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]}]},{begin:/\bfor\b/dgv,beginCaptures:{"0":{name:"keyword.control.c3"}},end:/(?<=\))/dgv,patterns:[{include:"#comments"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},patterns:[{include:"#statements"}]}]},{begin:/\$(?:switch|case|default|if)\b/dgv,beginCaptures:{"0":{name:"keyword.control.ct.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]},{begin:/\b(?:case|default)\b/dgv,beginCaptures:{"0":{name:"keyword.control.c3"}},end:/:/dgv,endCaptures:{"0":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]}]},doc_comment:{begin:/(?=<\*)/dgv,end:/(\*>)/dgv,endCaptures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"punctuation.definition.comment.end.c3"}},patterns:[{include:"#doc_comment_body"}]},doc_comment_body:{patterns:[{begin:/(<\*)\p{space}*(?=@)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"punctuation.definition.comment.begin.c3"}},end:/(?=\*>)/dgv,patterns:[{captures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"variable.parameter.c3"},"2":{name:"support.type.c3"},"3":{name:"keyword.operator.variadic.c3"}},match:/@param(?:\p{space}*\[&?(?:in|out|inout)\])?\p{space}*(?:([\#\$]?\b_*[a-z][0-9A-Z_a-z]*)\b|(\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b|(\.\.\.))/dgv},{begin:/@(?:require\b|ensure\b|return\?)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"}},end:/(?=:|\*>|(?=\n?$))/dgv,patterns:[{include:"#expression"}]},{match:/@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"comment.block.documentation.c3"},{match:/:/dgv,name:"comment.block.documentation.c3"},{begin:/(["\`])/dgv,end:/\1()/dgv,name:"comment.block.documentation.c3"}]},{begin:/(<\*)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"punctuation.definition.comment.begin.c3"}},end:/(?=^\p{space}*@|\*>)/dgv,name:"comment.block.documentation.c3"},{begin:"",end:/(?=\*>)/dgv,patterns:[{captures:{"0":{name:"comment.block.documentation.c3"},"1":{name:"variable.parameter.c3"},"2":{name:"support.type.c3"},"3":{name:"keyword.operator.variadic.c3"}},match:/^\p{space}*@param(?:\p{space}*\[&?(?:in|out|inout)\])?\p{space}*(?:([\#\$]?\b_*[a-z][0-9A-Z_a-z]*)\b|(\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b|(\.\.\.))/dgv},{begin:/^\p{space}*@(?:require\b|ensure\b|return\?)/dgv,beginCaptures:{"0":{name:"comment.block.documentation.c3"}},end:/(?=:|\*>|(?=\n?$))/dgv,patterns:[{include:"#expression"}]},{match:/^\p{space}*@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"comment.block.documentation.c3"},{match:/:/dgv,name:"comment.block.documentation.c3"},{begin:/(["\`])/dgv,end:/\1()/dgv,name:"comment.block.documentation.c3"}]}]},escape_sequence:{match:/\\(["'0\\abefnrtv]|x\p{AHex}{2}|u\p{AHex}{4}|U\p{AHex}{8})/dgv,name:"constant.character.escape.c3"},expression:{patterns:[{include:"#comments"},{include:"#function"},{include:"#constants"},{include:"#builtin"},{include:"#literals"},{include:"#operators"},{include:"#keywords"},{include:"#type"},{include:"#path"},{include:"#function_call"},{include:"#variable"},{include:"#parens"},{include:"#brackets"},{include:"#block"},{include:"#punctuation"},{include:"#leftover_at_ident"}]},function:{begin:/(?=\b(fn|macro)\b)/dgv,end:/(?=[\;\=\{])/dgv,patterns:[{begin:/\b(fn|macro)\b/dgv,beginCaptures:{"1":{name:"keyword.declaration.function.c3"}},end:/(?=\()/dgv,name:"meta.function.c3",patterns:[{include:"#comments"},{include:"#function_header"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.function.parameters.c3",patterns:[{include:"#parameters"}]},{begin:/(?<=\))/dgv,contentName:"meta.function.c3",end:/(?=[\;\=\{])/dgv,patterns:[{include:"#comments"},{include:"#generic_params"},{include:"#attribute"}]}]},function_call:{begin:/([\#\@]?\b_*[a-z][0-9A-Z_a-z]*)\b(?=\p{space}*(\{[^\n]*\})?\p{space}*\()/dgv,beginCaptures:{"1":{name:"entity.name.function.c3"}},end:/(?<=\))/dgv,name:"meta.function_call.c3",patterns:[{include:"#generic_args"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#comments"},{begin:/([\#\$]?\b_*[a-z][0-9A-Z_a-z]*|\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b\p{space}*(:)(?!:)/dgv,beginCaptures:{"1":{name:"variable.parameter.c3"},"2":{name:"punctuation.separator.c3"}},end:/(?=\))|([\,\;])/dgv,endCaptures:{"1":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]},{begin:/(?=\P{space})/dgv,end:/(?=\))|([\,\;])/dgv,endCaptures:{"1":{name:"punctuation.separator.c3"}},patterns:[{include:"#expression"}]},{match:/;/dgv,name:"punctuation.separator.c3"}]}]},function_header:{patterns:[{include:"#type"},{match:/\./dgv,name:"punctuation.accessor.c3"},{match:/@?\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.function.c3"}]},generic_args:{patterns:[{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.generic.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.generic.end.c3"}},name:"meta.generic.c3",patterns:[{include:"#expression"}]}]},generic_params:{patterns:[{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.generic.begin.c3"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.generic.end.c3"}},name:"meta.generic.c3",patterns:[{include:"#comments"},{match:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,name:"support.type.c3"},{match:/\b_*[A-Z][0-9A-Z_]*\b/dgv,name:"variable.other.constant.c3"},{match:/,/dgv,name:"punctuation.separator.c3"}]}]},integer_literal:{match:/\b(?:0[Xx]\p{AHex}(?:_?\p{AHex})*|0[Oo][0-7](_?[0-7])*|0[Bb][01](_?[01])*|[0-9](?:_?[0-9])*)(?:[IUiu](?:8|16|32|64|128)|[Uu][Ll]{0,2}|[Ll]{1,2})?/dgv,name:"constant.numeric.integer.c3"},keywords:{patterns:[{match:/\$(?:alignof|assert|assignable|default|defined|echo|embed|eval|error|exec|extnameof|feature|include|is_const|kindof|nameof|offsetof|qnameof|sizeof|stringify|vacount|vaconst|vaarg|vaexpr|vasplat)\b/dgv,name:"keyword.other.ct.c3"},{match:/\$(?:case|else|endfor|endforeach|endif|endswitch|for|foreach|if|switch)\b/dgv,name:"keyword.control.ct.c3"},{match:/\b(?:assert|asm|catch|inline|import|module|interface|try|var)\b/dgv,name:"keyword.other.c3"},{match:/\b(?:break|case|continue|default|defer|do|else|for|foreach|foreach_r|if|nextcase|return|switch|while)\b/dgv,name:"keyword.control.c3"}]},leftover_at_ident:{patterns:[{captures:{"0":{name:"keyword.annotation.c3"}},match:/@(?:pure|inline|noinline)/dgv,name:"meta.annotation.c3"},{begin:/@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"entity.name.function.c3"}},end:/(?=[^\t \{])|(?<=\})/dgv,patterns:[{include:"#generic_args"}]}]},line_comment:{match:/\/\/[^\n]*(?=\n?$)/dgv,name:"comment.line.double-slash.c3"},literals:{patterns:[{include:"#string_literal"},{include:"#char_literal"},{include:"#raw_string_literal"},{include:"#real_literal"},{include:"#integer_literal"},{include:"#bytes_literal"}]},modifier_keywords:{patterns:[{match:/\b(?:const|extern|static|tlocal|inline)\b/dgv,name:"storage.modifier.c3"}]},module_path:{patterns:[{include:"#path"},{captures:{"1":{name:"entity.name.scope-resolution.c3"}},match:/\b(_*[a-z][0-9A-Z_a-z]*)\b/dgv,name:"meta.path.c3"}]},operators:{patterns:[{match:/=>/dgv,name:"keyword.declaration.function.arrow.c3"},{match:/(?:[\-\%\&\*\+\/\^\|]|>>|<<|\+\+\+)=/dgv,name:"keyword.operator.assignment.augmented.c3"},{match:/<=|>=|==|[\<\>]|!=/dgv,name:"keyword.operator.comparison.c3"},{match:/\.\.\./dgv,name:"keyword.operator.variadic.c3"},{match:/\.\./dgv,name:"keyword.operator.range.c3"},{match:/\+\+\+?|--/dgv,name:"keyword.operator.arithmetic.c3"},{match:/<<|>>|&&&?|\|\|\|?/dgv,name:"keyword.operator.arithmetic.c3"},{match:/[\-\%\+\/\^\|\~]/dgv,name:"keyword.operator.arithmetic.c3"},{match:/=/dgv,name:"keyword.operator.assignment.c3"},{match:/\?\?\??|\?:|[\!\&\*\:\?]/dgv,name:"keyword.operator.c3"}]},parameters:{patterns:[{include:"#comments"},{begin:/\$\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"support.type.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#expression"}]}]},{include:"#type"},{include:"#punctuation"},{match:/\.\.\./dgv,name:"keyword.operator.variadic.c3"},{match:/&/dgv,name:"keyword.operator.address.c3"},{begin:/;/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\))/dgv,patterns:[{include:"#comments"},{match:/@\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.function.c3"},{include:"#parameters"}]},{begin:/[\#\$]?\b_*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"variable.parameter.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{match:/\.\.\./dgv,name:"keyword.operator.variadic.c3"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=[\)\,\;])/dgv,patterns:[{include:"#expression"}]}]}]},parens:{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#expression"}]}]},path:{captures:{"1":{name:"entity.name.scope-resolution.c3"},"2":{name:"punctuation.separator.scope-resolution.c3"}},match:/\b(_*[a-z][0-9A-Z_a-z]*)\b\p{space}*(::)/dgv,name:"meta.path.c3"},punctuation:{patterns:[{match:/,/dgv,name:"punctuation.separator.c3"},{match:/:/dgv,name:"punctuation.separator.c3"},{match:/\.(?!\.\.)/dgv,name:"punctuation.accessor.c3"}]},raw_string_literal:{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c3"}},end:/`(?!`)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.other.c3",patterns:[{match:/``/dgv,name:"constant.character.escape.c3"}]},real_literal:{patterns:[{match:/\b[0-9](?:_?[0-9])*(?:[Ff](?:16|32|64|128)?|[Dd])/dgv,name:"constant.numeric.float.c3"},{match:/\b(?:[0-9](?:_?[0-9])*[Ee][\-\+]?[0-9]+|[0-9](?:_?[0-9])*\.(?!\.)(?:[0-9](?:_?[0-9])*)?(?:[Ee][\-\+]?[0-9]+)?)(?:[Ff](?:16|32|64|128)?|[Dd])?/dgv,name:"constant.numeric.float.c3"},{match:/\b0[Xx]\p{AHex}(?:_?\p{AHex})*(?:\.(?:\p{AHex}(?:_?\p{AHex})*)?)?[Pp][\-\+]?[0-9]+(?:[Ff](?:16|32|64|128)?|[Dd])?/dgv,name:"constant.numeric.float.c3"}]},statements:{patterns:[{include:"#comments"},{include:"#modifier_keywords"},{match:/;/dgv,name:"punctuation.terminator.c3"},{include:"#control_statements"},{include:"#attribute"},{include:"#block"},{include:"#expression"}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c3"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c3"}},name:"string.quoted.double.c3",patterns:[{include:"#escape_sequence"}]},structlike:{begin:/(?=\b(?:((?:|bit)struct)|(union))\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\b(?:((?:|bit)struct)|(union))\b/dgv,beginCaptures:{"1":{name:"keyword.declaration.struct.c3"},"2":{name:"keyword.declaration.union.c3"}},end:/(?=\{)/dgv,name:"meta.struct.c3",patterns:[{include:"#comments"},{match:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.type.struct.c3"},{match:/\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.member.c3"},{include:"#generic_params"},{include:"#attribute"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\{)/dgv,patterns:[{include:"#comments"},{include:"#type_no_generics"},{include:"#generic_params"},{include:"#attribute"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#comments"},{include:"#path"},{include:"#type"},{include:"#punctuation"}]}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.struct.body.c3",patterns:[{include:"#comments"},{include:"#structlike"},{include:"#modifier_keywords"},{include:"#type"},{match:/\b_*[a-z][0-9A-Z_a-z]*\b/dgv,name:"variable.other.member.c3"},{include:"#attribute"},{match:/;/dgv,name:"punctuation.terminator.c3"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=;)/dgv,patterns:[{include:"#attribute"},{include:"#expression"}]}]}]},top_level:{patterns:[{include:"#comments"},{include:"#modifier_keywords"},{begin:/\$(?:assert|include|echo|exec)\b/dgv,beginCaptures:{"0":{name:"keyword.other.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},patterns:[{include:"#comments"},{include:"#expression"}]},{begin:/\bmodule\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.module.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.module.c3",patterns:[{include:"#comments"},{include:"#attribute"},{include:"#module_path"},{include:"#generic_args"},{include:"#generic_params"}]},{begin:/\bimport\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.import.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.import.c3",patterns:[{include:"#comments"},{include:"#attribute"},{include:"#module_path"},{match:/,/dgv,name:"punctuation.separator.c3"}]},{include:"#function"},{begin:/\balias\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.alias.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.alias.c3",patterns:[{include:"#comments"},{begin:/(?=\b(_*[a-z][0-9A-Z_a-z]*)\b\p{space}*=\p{space}*module)/dgv,end:/(?=;)/dgv,patterns:[{begin:/\b(_*[a-z][0-9A-Z_a-z]*)\b/dgv,end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{begin:/module/dgv,beginCaptures:{"0":{name:"keyword.declaration.module.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#module_path"}]}]}]}]},{begin:/(?:(@\b_*[a-z][0-9A-Z_a-z]*)|\b(_*[a-z][0-9A-Z_a-z]*)|\b(_*[A-Z][0-9A-Z_]*))\b/dgv,beginCaptures:{"1":{name:"entity.name.function.c3"},"2":{name:"variable.global.c3"},"3":{name:"variable.other.constant.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#generic_params"},{include:"#attribute"},{include:"#assign_right_expression"}]},{begin:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"entity.name.type.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#generic_params"},{include:"#attribute"},{include:"#assign_right_expression"}]}]},{begin:/\btypedef\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.typedef.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.typedef.c3",patterns:[{include:"#comments"},{begin:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"entity.name.type.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#parens"},{include:"#generic_params"},{include:"#attribute"},{include:"#assign_right_expression"}]}]},{begin:/\bfaultdef\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.faultdef.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.faultdef.c3",patterns:[{include:"#comments"},{include:"#attribute"},{match:/\b_*[A-Z][0-9A-Z_]*\b/dgv,name:"variable.other.constant.c3"},{match:/,/dgv,name:"punctuation.separator.c3"}]},{begin:/\battrdef\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.attrdef.c3"}},end:/;/dgv,endCaptures:{"0":{name:"punctuation.terminator.c3"}},name:"meta.attrdef.c3",patterns:[{include:"#comments"},{begin:/@\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"keyword.annotation.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},name:"meta.group.c3",patterns:[{include:"#parameters"}]},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=;)/dgv,patterns:[{include:"#comments"},{include:"#attribute"},{match:/,/dgv,name:"punctuation.separator.c3"}]}]}]},{include:"#structlike"},{begin:/(?=\benum\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\benum\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.enum.c3"}},end:/(?=\{)/dgv,name:"meta.enum.c3",patterns:[{include:"#comments"},{match:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.type.enum.c3"},{include:"#generic_params"},{include:"#attribute"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\{)/dgv,patterns:[{include:"#comments"},{match:/\b(?:inline|const)\b/dgv,name:"storage.modifier.c3"},{include:"#type_no_generics"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.group.begin.c3"}},contentName:"meta.group.c3",end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.group.end.c3"}},patterns:[{include:"#comments"},{match:/\b(?:inline|const)\b/dgv,name:"storage.modifier.c3"},{include:"#parameters"}]},{include:"#generic_params"},{include:"#attribute"}]}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.enum.body.c3",patterns:[{include:"#comments"},{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.c3"}},end:/(?=,)/dgv,patterns:[{include:"#expression"}]},{include:"#attribute"},{match:/\b_*[A-Z][0-9A-Z_]*\b/dgv,name:"variable.other.constant.c3"},{match:/,/dgv,name:"punctuation.separator.c3"}]}]},{begin:/(?=\binterface\b)/dgv,end:/(?<=\})/dgv,patterns:[{begin:/\binterface\b/dgv,beginCaptures:{"0":{name:"keyword.declaration.interface.c3"}},end:/(?=\{)/dgv,name:"meta.interface.c3",patterns:[{include:"#comments"},{match:/\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*\b/dgv,name:"entity.name.type.interface.c3"},{include:"#generic_params"},{include:"#attribute"},{begin:/:/dgv,beginCaptures:{"0":{name:"punctuation.separator.c3"}},end:/(?=\{)/dgv,patterns:[{include:"#comments"},{include:"#punctuation"},{include:"#type_no_generics"}]}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.c3"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.c3"}},name:"meta.interface.body.c3",patterns:[{include:"#comments"},{match:/;/dgv,name:"punctuation.terminator.c3"},{include:"#function"}]}]}]},type:{patterns:[{include:"#path"},{begin:/(?:\b(void|bool|char|double|float|float16|bfloat|int128|ichar|int|iptr|isz|long|short|uint128|uint|ulong|uptr|ushort|usz|float128|any|fault|typeid)|(\$?\b\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b)\b/dgv,beginCaptures:{"1":{name:"storage.type.built-in.primitive.c3"},"2":{name:"support.type.c3"}},end:/(?=\*>|[^\t \*\?\[\{])/dgv,patterns:[{include:"#comments"},{include:"#generic_args"},{include:"#type_suffix"}]},{include:"#type_expr"}]},type_expr:{patterns:[{begin:/\$(?:typeof|typefrom|evaltype)\b/dgv,beginCaptures:{"0":{name:"storage.type.c3"}},end:/(?<=\))/dgv,patterns:[{include:"#parens"}]},{begin:/\$vatype\b/dgv,beginCaptures:{"0":{name:"storage.type.c3"}},end:/(?<=\])/dgv,patterns:[{include:"#brackets"}]},{include:"#type_suffix"}]},type_no_generics:{patterns:[{include:"#path"},{begin:/(?:\b(void|bool|char|double|float|float16|bfloat|int128|ichar|int|iptr|isz|long|short|uint128|uint|ulong|uptr|ushort|usz|float128|any|fault|typeid)|(\$?\b\b_*[A-Z][0-9A-Z_]*[a-z][0-9A-Z_a-z]*)\b)\b/dgv,beginCaptures:{"1":{name:"storage.type.built-in.primitive.c3"},"2":{name:"support.type.c3"}},end:/(?=[^\t \*\?\@\[])/dgv,patterns:[{include:"#comments"},{include:"#type_suffix"}]},{include:"#type_expr"}]},type_suffix:{patterns:[{include:"#brackets"},{match:/\*/dgv,name:"keyword.operator.address.c3"},{match:/\?/dgv,name:"keyword.operator.c3"}]},variable:{begin:/(?<!#)\$?\b_*[a-z][0-9A-Z_a-z]*\b/dgv,beginCaptures:{"0":{name:"variable.other.c3"}},end:/(?=[^\t \{])|(?<=\})/dgv,patterns:[{include:"#generic_args"}]}},scopeName:"source.c3",embeddedLangs:undefined,aliases:undefined})
2
2
 
3
3
  export default [
4
4
  lang
package/dist/index.mjs CHANGED
@@ -27,6 +27,7 @@ export const languageNames = [
27
27
  "berry",
28
28
  "bibtex",
29
29
  "bicep",
30
+ "bird2",
30
31
  "blade",
31
32
  "bsl",
32
33
  "c",
@@ -120,6 +121,7 @@ export const languageNames = [
120
121
  "jssm",
121
122
  "jsx",
122
123
  "julia",
124
+ "just",
123
125
  "kdl",
124
126
  "kotlin",
125
127
  "kusto",
@@ -147,6 +149,7 @@ export const languageNames = [
147
149
  "move",
148
150
  "narrat",
149
151
  "nextflow",
152
+ "nextflow-groovy",
150
153
  "nginx",
151
154
  "nim",
152
155
  "nix",
@@ -260,6 +263,7 @@ export const languageAliasNames = [
260
263
  "bash",
261
264
  "batch",
262
265
  "be",
266
+ "bird",
263
267
  "cdc",
264
268
  "cjs",
265
269
  "clj",
@@ -0,0 +1,3 @@
1
+ import type { LanguageRegistration } from '@shikijs/types'
2
+ const langs: LanguageRegistration []
3
+ export default langs
package/dist/just.mjs ADDED
@@ -0,0 +1,18 @@
1
+ import shellscript from './shellscript.mjs'
2
+ import javascript from './javascript.mjs'
3
+ import typescript from './typescript.mjs'
4
+ import perl from './perl.mjs'
5
+ import python from './python.mjs'
6
+ import ruby from './ruby.mjs'
7
+
8
+ const lang = Object.freeze({displayName:"Just",fileTypes:["just","justfile","Justfile"],firstLineMatch:/#![\t\p{space}]*\/[^\n]*just\b/dgv,name:"just",patterns:[{include:"#comments"},{include:"#import"},{include:"#module"},{include:"#alias"},{include:"#assignment"},{include:"#builtins"},{include:"#keywords"},{include:"#expression-operators"},{include:"#backtick"},{include:"#strings"},{include:"#parenthesis"},{include:"#recipes"},{include:"#recipe-operators"},{include:"#embedded-languages"},{include:"#escaping"}],repository:{alias:{captures:{"1":{name:"keyword.other.reserved.just"},"2":{name:"variable.name.alias.just"},"3":{name:"keyword.operator.assignment.just"},"4":{name:"variable.other.just"}},match:/^(alias)\p{space}+([A-Z_a-z][\-0-9A-Z_a-z]*)\p{space}*(:=)\p{space}*([A-Z_a-z][\-0-9A-Z_a-z]*)/dgv},assignment:{patterns:[{include:"#variable-assignment"},{include:"#setting-assignment"}]},backtick:{patterns:[{begin:/(```)/dgv,beginCaptures:{"1":{name:"string.interpolated.just"}},contentName:"source.shell",end:/(```)/dgv,endCaptures:{"1":{name:"string.interpolated.just"}},patterns:[{include:"source.shell"}]},{captures:{"1":{name:"string.interpolated.just"},"2":{name:"source.shell",patterns:[{include:"source.shell"}]},"3":{name:"string.interpolated.just"}},match:/(`)([^\`]*)(`)/dgv}]},boolean:{patterns:[{match:/\b(true|false)\b/dgv,name:"constant.language.boolean.just"}]},"builtin-functions":{patterns:[{match:/\b(arch|num_cpus|os|os_family|shell|env_var|env_var_or_default|env|is_dependency|invocation_directory|invocation_dir|invocation_directory_native|invocation_dir_native|justfile|justfile_directory|justfile_dir|just_executable|just_pid|source_file|source_directory|source_dir|module_file|module_directory|module_dir|append|prepend|encode_uri_component|quote|replace|replace_regex|trim|trim_end|trim_end_match|trim_end_matches|trim_start|trim_start_match|trim_start_matches|capitalize|kebabcase|lowercamelcase|lowercase|shoutykebabcase|shoutysnakecase|snakecase|titlecase|uppercamelcase|uppercase|absolute_path|blake3|blake3_file|canonicalize|extension|file_name|file_stem|parent_directory|parent_dir|without_extension|clean|join|path_exists|error|assert|sha256|sha256_file|uuid|choose|datetime|datetime_utc|semver_matches|style|cache_directory|cache_dir|config_directory|config_dir|config_local_directory|config_local_dir|data_directory|data_dir|data_local_directory|data_local_dir|executable_directory|executable_dir|home_directory|home_dir|which|require|read)\b/dgv,name:"support.function.builtin.just"}]},builtins:{patterns:[{match:/\b(HEX|HEXLOWER|HEXUPPER|PATH_SEP|PATH_VAR_SEP|CLEAR|NORMAL|BOLD|ITALIC|UNDERLINE|INVERT|HIDE|STRIKETHROUGH|BLACK|RED|GREEN|YELLOW|BLUE|MAGENTA|CYAN|WHITE|BG_BLACK|BG_RED|BG_GREEN|BG_YELLOW|BG_BLUE|BG_MAGENTA|BG_CYAN|BG_WHITE)\b/dgv,name:"constant.language.const.just"},{include:"#builtin-functions"},{include:"#literal"}]},comments:{patterns:[{match:/#(?!!)[^\n]*(?=\n?$)/dgv,name:"comment.line.number-sign.just"}]},"control-keywords":{patterns:[{match:/\b(if|else)\b/dgv,name:"keyword.control.conditional.just"}]},"embedded-languages":{patterns:[{begin:/^\p{space}+(#!\/usr\/bin\/env\p{space}+(?:-S\p{space}+)?node[^\n]*)(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.line.number-sign.shebang.just"}},contentName:"source.js",end:/(?<=^\P{space}+)/dgv,patterns:[{include:"source.js"}]},{begin:/^\p{space}+(#!\/usr\/bin\/env\p{space}+(?:-S\p{space}+)?deno[^\n]*)(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.line.number-sign.shebang.just"}},contentName:"source.ts",end:/(?<=^\P{space}+)/dgv,patterns:[{include:"source.ts"}]},{begin:/^\p{space}+(#!\/usr\/bin\/env\p{space}+(?:-S\p{space}+)?perl[^\n]*)(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.line.number-sign.shebang.just"}},contentName:"source.perl",end:/(?<=^\P{space}+)/dgv,patterns:[{include:"source.perl"}]},{begin:/^\p{space}+(#!\/usr\/bin\/env\p{space}+(?:-S\p{space}+)?python[^\n]*)(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.line.number-sign.shebang.just"}},contentName:"source.python",end:/(?<=^\P{space}+)/dgv,patterns:[{include:"source.python"}]},{begin:/^\p{space}+(#!\/usr\/bin\/env\p{space}+(?:-S\p{space}+)?ruby[^\n]*)(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.line.number-sign.shebang.just"}},contentName:"source.ruby",end:/(?<=^\P{space}+)/dgv,patterns:[{include:"source.ruby"}]},{begin:/^\p{space}+(#!\/usr\/bin\/env\p{space}+(?:-S\p{space}+)?(?:|ba|z|fi)sh[^\n]*)(?=\n?$)/dgv,beginCaptures:{"1":{name:"comment.line.number-sign.shebang.just"}},contentName:"source.shell",end:/(?<=^\P{space}+)/dgv,patterns:[{include:"source.shell"}]}]},escaping:{patterns:[{captures:{"1":{name:"string.interpolated.escape.just"},"2":{patterns:[{include:"#expression"}]},"3":{name:"string.interpolated.escape.just"}},match:/(?<!\{)(\{\{)\{?(?!\{)([^\n]*?)(\}\})/dgv,name:"string.interpolated.escaping.just"}]},expression:{patterns:[{include:"#backtick"},{include:"#builtins"},{include:"#control-keywords"},{include:"#expression-operators"},{include:"#parenthesis"},{include:"#strings"}]},"expression-operators":{patterns:[{match:/\//dgv,name:"keyword.operator.path-join.just"},{match:/\+/dgv,name:"keyword.operator.concat.just"},{match:/&&/dgv,name:"keyword.operator.and.just"},{match:/\|\|/dgv,name:"keyword.operator.or.just"},{match:/(==|=~|!=)/dgv,name:"keyword.operator.equality.just"}]},import:{begin:/^(import)(\?)?\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.reserved.just"},"2":{name:"punctuation.optional.just"}},end:/(?=\n?$)/dgv,patterns:[{include:"#strings"}]},keywords:{patterns:[{include:"#reserved-keywords"},{include:"#control-keywords"}]},literal:{patterns:[{include:"#boolean"},{include:"#number"}]},module:{begin:/^(mod)(\?)?\p{space}+([A-Z_a-z][\-0-9A-Z_a-z]*)(?=[\$\p{space}])/dgv,beginCaptures:{"1":{name:"keyword.other.reserved.just"},"2":{name:"punctuation.optional.just"},"3":{name:"variable.name.module.just"}},end:/(?=\n?$)/dgv,patterns:[{include:"#strings"}]},number:{patterns:[{match:/(?<![\-A-Z_a-z])(?:\.\p{Nd}+|\p{Nd}+\.\p{Nd}+|\p{Nd}+\.|[1-9]\p{Nd}*)/dgv,name:"constant.numeric.just"},{match:/\b[0-9]+[\-A-Z_a-z]+\b/dgv,name:"invalid.illegal.name.just"}]},parenthesis:{begin:/\(/dgv,end:/\)/dgv,patterns:[{include:"#expression"},{include:"#parenthesis"}]},"recipe-attributes":{patterns:[{captures:{"1":{name:"support.function.system.just"},"2":{name:"support.function.system.just"}},match:/^\[([\-A-z]+)\p{space}*(?:,(\p{space}*[\-A-z]+\p{space}*))*\]\p{space}*(?=\n?$)/dgv},{captures:{"1":{name:"support.function.system.just"},"2":{name:"keyword.operator.attribute.end.just"},"3":{patterns:[{include:"#strings"}]},"4":{patterns:[{include:"#strings"}]}},match:/^\[([\-A-z]+)(?:(:)([^\n]*?)|(\(([^\n]*?)\)))?\]\p{space}*(?=\n?$)/dgv}]},"recipe-dependencies":{captures:{"1":{name:"entity.name.function.just"},"2":{patterns:[{captures:{"1":{name:"entity.name.function.just"},"2":{patterns:[{include:"#expression"}]}},match:/\(([A-Z_a-z][\-0-9A-Z_a-z]*)([^\n]*)\)/dgv}]},"3":{name:"keyword.operator.and.just"}},match:/([A-Z_a-z][\-0-9A-Z_a-z]*)|(\((?:[^\(\)]|\([^\)]*\))*\))|(&&)/dgv},"recipe-operators":{patterns:[{captures:{"1":{name:"keyword.operator.quiet.just"}},match:/^\p{space}+(@)/dgv},{captures:{"1":{name:"keyword.operator.error-suppression.just"}},match:/^\p{space}+(-)/dgv}]},"recipe-params":{captures:{"1":{name:"keyword.other.recipe.variadic.just"},"2":{name:"variable.parameter.recipe.just"},"3":{name:"keyword.operator.default.just"},"4":{patterns:[{include:"#strings"}]},"5":{patterns:[{include:"#backtick"}]},"6":{patterns:[{include:"#parenthesis"}]}},match:/([\$\*\+])?([A-Z_a-z][0-9A-Z_a-z]*)(?:(=)(?:[A-Z_a-z][0-9A-Z_a-z]*|("[^\n]*?"|'[^\n]*?')|(`[^\n]*?`)|(\((?:[^\(\)]|\([^\)]*\))*\))))?/dgv},recipes:{patterns:[{captures:{"1":{name:"keyword.other.recipe.prefix.just"},"2":{name:"entity.name.function.just"},"3":{patterns:[{include:"#recipe-params"}]},"4":{name:"keyword.operator.recipe.end.just"},"5":{patterns:[{include:"#recipe-dependencies"}]}},match:/^(@_|_@|[\@_])?([A-Za-z][\-0-9A-Z_a-z]*)(?:\p{space}+([^\n]*?))?\p{space}*(:)([^\n]*)/dgv},{include:"#recipe-operators"},{include:"#recipe-attributes"},{include:"#embedded-languages"}]},"reserved-keywords":{patterns:[{captures:{"1":{name:"keyword.other.reserved.just"}},match:/^(alias|export|unexport|import|mod|set)\p{space}+/dgv}]},"setting-assignment":{patterns:[{begin:/^(set)\p{space}+([A-Z_a-z][\-0-9A-Z_a-z]*)\p{space}*(:=)?/dgv,beginCaptures:{"1":{name:"keyword.other.reserved.just"},"2":{name:"variable.other.just"},"3":{name:"keyword.operator.assignment.just"}},end:/(?=\n?$)/dgv,patterns:[{include:"#expression"},{include:"#comments"}]}]},strings:{patterns:[{match:/(["']{1,3})\{+(\1)/dgv,name:"string.quoted.double.indented.just"},{begin:/([fx])?(""")/dgv,beginCaptures:{"1":{name:"constant.character.expanded.just"},"2":{name:"string.quoted.double.indented.just"}},end:/"""/dgv,name:"string.quoted.double.indented.just",patterns:[{match:/\\[^\n](?:(?<=u)\{[^\n]+?\})?/dgv,name:"constant.character.escape.just"},{include:"#escaping"}]},{begin:/([fx])?(")/dgv,beginCaptures:{"1":{name:"constant.character.expanded.just"},"2":{name:"string.quoted.double.just"}},end:/"/dgv,name:"string.quoted.double.just",patterns:[{match:/\\[^\n](?:(?<=u)\{[^\n]+?\})?/dgv,name:"constant.character.escape.just"},{include:"#escaping"}]},{begin:/([fx])?(''')/dgv,beginCaptures:{"1":{name:"constant.character.expanded.just"},"2":{name:"string.quoted.single.indented.just"}},end:/'''/dgv,name:"string.quoted.single.indented.just",patterns:[{include:"#escaping"}]},{begin:/([fx])?(')/dgv,beginCaptures:{"1":{name:"constant.character.expanded.just"},"2":{name:"string.quoted.single.just"}},end:/'/dgv,name:"string.quoted.single.just",patterns:[{include:"#escaping"}]}]},"variable-assignment":{patterns:[{captures:{"1":{name:"keyword.other.reserved.just"},"2":{name:"variable.other.just"}},match:/^(unexport)\p{space}+([A-Z_a-z][\-0-9A-Z_a-z]*)/dgv},{begin:/^(?:(export)\p{space}+)?([A-Z_a-z][\-0-9A-Z_a-z]*)\p{space}*(:=)/dgv,beginCaptures:{"1":{name:"keyword.other.reserved.just"},"2":{name:"variable.other.just"},"3":{name:"keyword.operator.assignment.just"}},end:/(?=\n?$)/dgv,patterns:[{include:"#expression"},{include:"#comments"}]}]}},scopeName:"source.just",embeddedLangs:["shellscript","javascript","typescript","perl","python","ruby"],aliases:undefined})
9
+
10
+ export default [
11
+ ...shellscript,
12
+ ...javascript,
13
+ ...typescript,
14
+ ...perl,
15
+ ...python,
16
+ ...ruby,
17
+ lang
18
+ ]