@shikijs/langs-precompiled 4.0.1 → 4.1.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.
package/dist/ruby.mjs CHANGED
@@ -12,7 +12,7 @@ import shellscript from './shellscript.mjs'
12
12
  import lua from './lua.mjs'
13
13
  import yaml from './yaml.mjs'
14
14
 
15
- const lang = Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"entity.name.type.class.ruby"},"5":{name:"punctuation.separator.namespace.ruby"},"7":{name:"punctuation.separator.inheritance.ruby"},"8":{name:"entity.other.inherited-class.ruby"},"11":{name:"punctuation.separator.namespace.ruby"}},match:/\b(class)\p{space}+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)\p{space}*((<)\p{space}*(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*))?/dgv,name:"meta.class.ruby"},{captures:{"1":{name:"keyword.control.module.ruby"},"2":{name:"entity.name.type.module.ruby"},"5":{name:"punctuation.separator.namespace.ruby"}},match:/\b(module)\p{space}+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)/dgv,name:"meta.module.ruby"},{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"punctuation.separator.inheritance.ruby"}},match:/\b(class)\p{space}*(<<)\p{space}*/dgv,name:"meta.class.ruby"},{match:/(?<!\.)\belse(\p{space})+if\b/dgv,name:"invalid.deprecated.ruby"},{captures:{"1":{name:"variable.ruby"},"2":{name:"keyword.operator.assignment.augmented.ruby"}},match:/^\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"4":{name:"keyword.operator.assignment.augmented.ruby"}},match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"variable.ruby"},"2":{name:"keyword.operator.assignment.augmented.ruby"}},match:/^\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*(([\-\%\*\+\/]|\*\*|[\&\^\|]|<<|>>)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"4":{name:"keyword.operator.assignment.augmented.ruby"}},match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*(([\-\%\*\+\/]|\*\*|[\&\^\|]|<<|>>)=)/dgv},{captures:{"1":{name:"variable.ruby"}},match:/^\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*(?==[^\=\>])/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"}},match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"punctuation.definition.constant.hashkey.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*[\\!\\?]?))\\1)(:)(?!:)","dgv",{"hiddenCaptures":[1]}),name:"constant.language.symbol.hashkey.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*[\\!\\?]?))\\2)(?=\\p{space}*=>)","dgv",{"hiddenCaptures":[2]}),name:"constant.language.symbol.hashkey.ruby"},{match:/(?<!\.)\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\b(?![\!\?])/dgv,name:"keyword.control.ruby"},{match:/(?<!\.)\bdo\b/dgv,name:"keyword.control.start-block.ruby"},{match:/(?<=\{)(\p{space}+)/dgv,name:"meta.syntax.ruby.start-block"},{match:/(?<!\.)\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\b(?![\!\?])|\bdefined\?|\b(block_given|iterator)\?/dgv,name:"keyword.control.pseudo-method.ruby"},{match:/\bnil\b(?![\!\?])/dgv,name:"constant.language.nil.ruby"},{match:/\b(true|false)\b(?![\!\?])/dgv,name:"constant.language.boolean.ruby"},{match:/\b(__(FILE|LINE)__)\b(?![\!\?])/dgv,name:"variable.language.ruby"},{match:/\bself\b(?![\!\?])/dgv,name:"variable.language.self.ruby"},{match:/\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\b(?![\!\?])/dgv,name:"keyword.other.special-method.ruby"},{begin:/\b(?<!\.|::)(require(?:|_relative))\b(?![\!\?])/dgv,captures:{"1":{name:"keyword.other.special-method.ruby"}},end:/(?=\n?$)|(?=[\#\}])/dgv,name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)([\!\&'\+\@\`]|\p{Nd}+|["\$\*\,\.\/\:-\?\\_\~]|-[0FIadilpv])/dgv,name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:/\b(ENV)\[/dgv,beginCaptures:{"1":{name:"variable.other.constant.ruby"}},end:/\]/dgv,name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:/\b[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*(?=((\.|::)[A-Za-z]|\[))/dgv,name:"support.class.ruby"},{match:/\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|printf??|proc|putc|puts|rand|readlines??|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\b(?![\!\?])|autoload\?|exit!)/dgv,name:"support.function.kernel.ruby"},{match:/\b[A-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.other.constant.ruby"},{begin:/(->)\(/dgv,beginCaptures:{"1":{name:"support.function.kernel.ruby"}},end:/\)/dgv,patterns:[{begin:/(?=[\&\*A-Z_a-z])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\4)))\\3)?(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?!>)))\\6)?|===?|!=|>[\\=\\>]?|<=>|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))\\p{space}*(\\()","dgv",{"hiddenCaptures":[3,4,5,6]}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"},"3":{name:"punctuation.definition.parameters.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*A-Z_a-z])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\4)))\\3)?(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?!>)))\\6)?|===?|!=|>[\\=\\>]?|<=>|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))[\\t ](?=[\\t ]*[^\\#\\;\\p{space}])","dgv",{"hiddenCaptures":[3,4,5,6]}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"}},end:/(?=;)|(?<=[\]\!"'\)\?\`\}\p{L}\p{M}\p{N}\p{Pc}])(?=\p{space}*#|\p{space}*(?=\n?$))/dgv,name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*A-Z_a-z])/dgv,end:/(?=[\,\;]|\p{space}*#|\p{space}*(?=\n?$))/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{captures:{"1":{name:"keyword.control.def.ruby"},"3":{name:"entity.name.function.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\b(\\p{space}+((?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\5)))\\4)?(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?!>)))\\7)?|===?|!=|>[\\=\\>]?|<=>|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\6)))?","dgv",{"hiddenCaptures":[4,5,6,7]}),name:"meta.function.method.without-arguments.ruby"},{match:/*@__PURE__*/ new EmulatedRegExp("\\b(\\p{Nd}(?:(?=(_?\\p{Nd}))\\2)*(\\.(?![^\\p{space}\\p{Nd}])(?:(?=(_?\\p{Nd}))\\4)*)?([Ee][\\-\\+]?\\p{Nd}(?:(?=(_?\\p{Nd}))\\6)*)?|0(?:[Xx]\\p{AHex}(?:(?=(_?\\p{AHex}))\\7)*|[Oo]?[0-7](?:(?=(_?[0-7]))\\8)*|[Bb][01](?:(?=(_?[01]))\\9)*|[Dd]\\p{Nd}(?:(?=(_?\\p{Nd}))\\10)*))\\b","dgv",{"hiddenCaptures":[2,4,6,7,8,9,10]}),name:"constant.numeric.ruby"},{begin:/:'/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\['\\]/dgv,name:"constant.character.escape.ruby"}]},{begin:/:"/dgv,beginCaptures:{"0":{name:"punctuation.section.symbol.begin.ruby"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.section.symbol.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{match:/(?<!\()\/=/dgv,name:"keyword.operator.assignment.augmented.ruby"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:/\\['\\]/dgv,name:"constant.character.escape.ruby"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<!\.)`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?<![\\)\\p{L}\\p{M}\\p{N}\\p{Pc}])((/))(?![\\*\\+\\?])(?!\\p{space}*(?=\\n?$))(?=(?:(?=((?:\\\\/|[^\\/])*))\\3)/[eimnosux]*\\p{space}*(?:[\\]\\#\\)\\,\\.\\:\\?\\}]|\\|\\||&&|<=>|=>|==|=~|!~|!=|;|(?=\\n?$)|if|else|elsif|then|do|end|unless|while|until|or|and))","dgv",{"hiddenCaptures":[3]}),captures:{"1":{name:"string.regexp.interpolated.ruby"},"2":{name:"punctuation.section.regexp.ruby"}},contentName:"string.regexp.interpolated.ruby",end:/((\/[eimnosux]*))/dgv,patterns:[{include:"#regex_sub"}]},{begin:/%r\{/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\}[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},{begin:/%r\[/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\][eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},{begin:/%r\(/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\)[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},{begin:/%r</dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/>[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},{begin:/%r([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\1[eimnosux]*()/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"}]},{begin:/%I\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%I\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%I</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%I\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%I([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%i\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%i\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%i</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%i\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%i([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[^\n]/dgv}]},{begin:/%W\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%W\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%W</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%W\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%W([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%w\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%w\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%w</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%w\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%w([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[^\n]/dgv}]},{begin:/%[Qx]?\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%[Qx]?\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%[Qx]?\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%[Qx]?</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%[Qx]([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%([^\=\p{L}\p{M}\p{N}\p{Pc}\p{space}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%q\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%q</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%q\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%q\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%q([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[^\n]/dgv}]},{begin:/%s\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%s</dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%s\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%s\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%s([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[^\n]/dgv}]},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=([\\$A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?![\\=\\>])))\\3)?|===?|<=>|>[\\=\\>]?|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?|@@?[A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*))\\2)","dgv",{"hiddenCaptures":[2,3]}),name:"constant.language.symbol.ruby"},{begin:/^=begin/dgv,captures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/^=end/dgv,name:"comment.block.documentation.ruby"},{include:"#yard"},{begin:/(^[\t ]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ruby"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/\n/dgv,name:"comment.line.number-sign.ruby"}]},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])\?(\\(x\p{AHex}{1,2}(?!\p{AHex})\b|0[0-7]{0,2}(?![0-7])\b|[^0CMx])|(\\[CM]-)+[\p{L}\p{M}\p{N}\p{Pc}]|[^\\\p{space}])/dgv,name:"constant.numeric.ruby"},{begin:/^__END__\n/dgv,captures:{"0":{name:"string.unquoted.program-block.ruby"}},contentName:"text.plain",end:/(?=not)impossible/dgv,patterns:[{begin:/(?=<?xml|<[Hh][Tt][Mm][Ll]\b|!DOCTYPE [Hh][Tt][Mm][Ll]\b)/dgv,end:/(?=not)impossible/dgv,name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.html",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.html",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.haml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.haml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.haml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.xml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.xml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.sql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.sql",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)G(?:RAPHQL|QL))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.graphql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)G(?:RAPHQL|QL))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.graphql",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.graphql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.css",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.css",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.cpp",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.cpp",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.cpp"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.c",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.c",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)J(?:S|AVASCRIPT))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.js",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)J(?:S|AVASCRIPT))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.js",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.js.jquery",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.js.jquery",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SH(?:|ELL))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.shell",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SH(?:|ELL))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.shell",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.lua",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.lua",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.ruby",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.ruby",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)YA?ML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.yaml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)YA?ML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.yaml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.yaml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.slim",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.slim",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.slim"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(=\\p{space}*<<([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"string.unquoted.heredoc.ruby",end:/^\2(?=\n?$)()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(((<<[\\-\\~]?([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\4,\\p{space}?)*<<[\\-\\~]?([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\6)))\\1)([^\\n]*)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"1":{name:"string.definition.begin.ruby"},"7":{patterns:[{include:"source.ruby"}]}},contentName:"string.unquoted.heredoc.ruby",end:/^\p{space}*\6(?=\n?$)()()()()()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<=\{|\{\p{space}+|[^\$0-\:\@-Z_a-z]do|^do|[^\$0-\:\@-Z_a-z]do\p{space}+|^do\p{space}+)(\|)/dgv,captures:{"1":{name:"punctuation.separator.variable.ruby"}},end:/(?<!\|)(\|)(?!\|)/dgv,name:"meta.block.parameters.ruby",patterns:[{begin:/(?![\(\,\|\p{space}])/dgv,end:/(?=,|\|\p{space}*)/dgv,patterns:[{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"variable.other.block.ruby"}},match:/((?:&|\*\*?)?)([A-Z_a-z][_\p{L}\p{M}\p{N}\p{Pc}]*)/dgvy}]},{match:/,/dgv,name:"punctuation.separator.variable.ruby"}]},{match:/=>/dgv,name:"punctuation.separator.key-value"},{match:/->/dgv,name:"support.function.kernel.ruby"},{match:/<<=|%=|&{1,2}=|\*=|\*\*=|\+=|-=|\^=|\|{1,2}=|<</dgv,name:"keyword.operator.assignment.augmented.ruby"},{match:/<=>|<(?![\<\=])|>(?![\<\=\>])|<=|>=|===?|=~|!=|!~|(?<=[\t ])\?/dgv,name:"keyword.operator.comparison.ruby"},{match:/(?<!\.)\b(and|not|or)\b(?![\!\?])/dgv,name:"keyword.operator.logical.ruby"},{match:/(?<=^|[\t \!])!|&&|\|\||\^/dgv,name:"keyword.operator.logical.ruby"},{captures:{"1":{name:"keyword.operator.logical.ruby"}},match:/(&\.)\p{space}*(?![A-Z])/dgv},{match:/([\%\&]|\*\*|[\-\*\+\/])/dgv,name:"keyword.operator.arithmetic.ruby"},{match:/=/dgv,name:"keyword.operator.assignment.ruby"},{match:/[\|\~]|>>/dgv,name:"keyword.operator.other.ruby"},{match:/;/dgv,name:"punctuation.separator.statement.ruby"},{match:/,/dgv,name:"punctuation.separator.object.ruby"},{captures:{"1":{name:"punctuation.separator.namespace.ruby"}},match:/(::)\p{space}*(?=[A-Z])/dgv},{captures:{"1":{name:"punctuation.separator.method.ruby"}},match:/(\.|::)\p{space}*(?![A-Z])/dgv},{match:/:/dgv,name:"punctuation.separator.other.ruby"},{match:/\{/dgv,name:"punctuation.section.scope.begin.ruby"},{match:/\}/dgv,name:"punctuation.section.scope.end.ruby"},{match:/\[/dgv,name:"punctuation.section.array.begin.ruby"},{match:/\]/dgv,name:"punctuation.section.array.end.ruby"},{match:/[\(\)]/dgv,name:"punctuation.section.function.ruby"},{begin:/(?<=[^\.]\.|::)(?=[A-Za-z][\!0-9\?A-Z_a-z]*[^\!0-9\?A-Z_a-z])/dgv,end:/(?<=[\!0-9\?A-Z_a-z])(?=[^\!0-9\?A-Z_a-z])/dgv,name:"meta.function-call.ruby",patterns:[{match:/([A-Za-z][\!0-9\?A-Z_a-z]*)(?=[^\!0-9\?A-Z_a-z])/dgv,name:"entity.name.function.ruby"}]},{begin:/([A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*[\!\?]?)(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.ruby"},"2":{name:"punctuation.section.function.ruby"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.section.function.ruby"}},name:"meta.function-call.ruby",patterns:[{include:"$self"}]}],repository:{escaped_char:{match:/\\(?:[0-7]{1,3}|x[A-Fa-f\p{Nd}]{1,2}|[^\n])/dgv,name:"constant.character.escape.ruby"},heredoc:{begin:/^<<[\-\~]?[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,end:/(?=\n?$)/dgv,patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:/#\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#\$)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"}]},method_parameters:{patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"#params"},{include:"$self"}],repository:{braces:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.scope.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.scope.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},brackets:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},params:{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"constant.other.symbol.hashkey.parameter.function.ruby"},"3":{name:"punctuation.definition.constant.ruby"},"4":{name:"variable.parameter.function.ruby"}},match:/(&|\*\*?)?(?:([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*[\!\?]?(:))|([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))/dgvy},parens:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.function.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]}}},nest_brackets:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#nest_brackets"}]},nest_brackets_i:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},nest_brackets_r:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},nest_curly:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly"}]},nest_curly_and_self:{patterns:[{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]},nest_curly_i:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},nest_curly_r:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},nest_ltgt:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#nest_ltgt"}]},nest_ltgt_i:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},nest_ltgt_r:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},nest_parens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#nest_parens"}]},nest_parens_i:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},nest_parens_r:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.ruby"},"3":{name:"punctuation.definition.arbitrary-repetition.ruby"}},match:/(\{)\p{Nd}+(,\p{Nd}+)?(\})/dgv,name:"string.regexp.arbitrary-repetition.ruby"},{begin:/\[(?:\^?\])?/dgv,captures:{"0":{name:"punctuation.definition.character-class.ruby"}},end:/\]/dgv,name:"string.regexp.character-class.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.group.ruby"}},end:/\)/dgv,name:"string.regexp.group.ruby",patterns:[{include:"#regex_sub"}]},{begin:/(?<=^|\p{space})(#)\p{space}(?=[\-\t \!\,\.0-9\?A-Za-z[^\x00-\x7F]]*(?=\n?$))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.ruby"}},end:/(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},name:"comment.line.number-sign.ruby"}]},yard:{patterns:[{include:"#yard_comment"},{include:"#yard_param_types"},{include:"#yard_option"},{include:"#yard_tag"},{include:"#yard_types"},{include:"#yard_directive"},{include:"#yard_see"},{include:"#yard_macro_attribute"}]},yard_comment:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_continuation:{match:/^\p{space}*#/dgv,name:"punctuation.definition.comment.ruby"},yard_directive:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(endgroup|group|method|parse|scope|visibility)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_macro_attribute:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(attribute|macro)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})(\p{space}+([_a-z][\p{L}\p{M}\p{N}\p{Pc}]*:?))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"11":{name:"comment.line.parameter.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_option:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(option)(?=\\p{space})(?:(?=(\\p{space}+([_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\6)?(?:(?=(\\p{space}+((\\[)[^\\n]+(\\]))))\\8)?(?:(?=(\\p{space}+((\\P{space}*))))\\12)?(?:(?=(\\p{space}+((\\()[^\\n]+(\\)))))\\15)?","dgv",{"hiddenCaptures":[6,8,12,15]}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.keyword.yard.ruby"},"11":{name:"comment.line.hashkey.yard.ruby"},"12":{name:"comment.line.defaultvalue.yard.ruby"},"13":{name:"comment.line.punctuation.yard.ruby"},"14":{name:"comment.line.punctuation.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_param_types:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\p{space})(?:(?=(\\p{space}+(?:(?=(([_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)|((\\[)[^\\n]+(\\]))))\\7)))\\6)?(?:(?=(\\p{space}+(?:(?=(((\\[)[^\\n]+(\\]))|([_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\13)))\\12)?","dgv",{"hiddenCaptures":[6,7,12,13]}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.type.yard.ruby"},"11":{name:"comment.line.punctuation.yard.ruby"},"12":{name:"comment.line.punctuation.yard.ruby"},"13":{name:"comment.line.parameter.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_see:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(see)(?=\p{space})(\p{space}+([^\n]+?))?(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.parameter.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_tag:{captures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},match:/^(\p{space}*)(#)(\p{space}*)(@)(private)(?=\n?$)/dgv,name:"comment.line.number-sign.ruby"},yard_types:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(raise|return|yield(?:return)?)(?=\p{space})(\p{space}+((\[)[^\n]+(\])))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]}},scopeName:"source.ruby",embeddedLangs:["html","haml","xml","sql","graphql","css","cpp","c","javascript","shellscript","lua","yaml"],aliases:["rb"]})
15
+ const lang = Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"entity.name.type.class.ruby"},"5":{name:"punctuation.separator.namespace.ruby"},"7":{name:"punctuation.separator.inheritance.ruby"},"8":{name:"entity.other.inherited-class.ruby"},"11":{name:"punctuation.separator.namespace.ruby"}},match:/\b(class)\p{space}+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)\p{space}*((<)\p{space}*(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*))?/dgv,name:"meta.class.ruby"},{captures:{"1":{name:"keyword.control.module.ruby"},"2":{name:"entity.name.type.module.ruby"},"5":{name:"punctuation.separator.namespace.ruby"}},match:/\b(module)\p{space}+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)/dgv,name:"meta.module.ruby"},{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"punctuation.separator.inheritance.ruby"}},match:/\b(class)\p{space}*(<<)\p{space}*/dgv,name:"meta.class.ruby"},{match:/(?<!\.)\belse(\p{space})+if\b/dgv,name:"invalid.deprecated.ruby"},{captures:{"1":{name:"variable.ruby"},"2":{name:"keyword.operator.assignment.augmented.ruby"}},match:/^\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"4":{name:"keyword.operator.assignment.augmented.ruby"}},match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"variable.ruby"},"2":{name:"keyword.operator.assignment.augmented.ruby"}},match:/^\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*(([\-\%\*\+\/]|\*\*|[\&\^\|]|<<|>>)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"4":{name:"keyword.operator.assignment.augmented.ruby"}},match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*(([\-\%\*\+\/]|\*\*|[\&\^\|]|<<|>>)=)/dgv},{captures:{"1":{name:"variable.ruby"}},match:/^\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*(?==[^\=\>])/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"}},match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([_a-z][0-9A-Z_a-z]*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"punctuation.definition.constant.hashkey.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*[\\!\\?]?))\\1)(:)(?!:)","dgv",{"hiddenCaptures":[1]}),name:"constant.language.symbol.hashkey.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*[\\!\\?]?))\\2)(?=\\p{space}*=>)","dgv",{"hiddenCaptures":[2]}),name:"constant.language.symbol.hashkey.ruby"},{match:/(?<!\.)\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\b(?![\!\?])/dgv,name:"keyword.control.ruby"},{match:/(?<!\.)\bdo\b/dgv,name:"keyword.control.start-block.ruby"},{match:/(?<=\{)(\p{space}+)/dgv,name:"meta.syntax.ruby.start-block"},{match:/(?<!\.)\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\b(?![\!\?])|\bdefined\?|\b(block_given|iterator)\?/dgv,name:"keyword.control.pseudo-method.ruby"},{match:/\bnil\b(?![\!\?])/dgv,name:"constant.language.nil.ruby"},{match:/\b(true|false)\b(?![\!\?])/dgv,name:"constant.language.boolean.ruby"},{match:/\b(__(FILE|LINE)__)\b(?![\!\?])/dgv,name:"variable.language.ruby"},{match:/\bself\b(?![\!\?])/dgv,name:"variable.language.self.ruby"},{match:/\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\b(?![\!\?])/dgv,name:"keyword.other.special-method.ruby"},{begin:/\b(?<!\.|::)(require(?:|_relative))\b(?![\!\?])/dgv,captures:{"1":{name:"keyword.other.special-method.ruby"}},end:/(?=\n?$)|(?=[\#\}])/dgv,name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)([\!\&'\+\@\`]|\p{Nd}+|["\$\*\,\.\/\:-\?\\_\~]|-[0FIadilpv])/dgv,name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:/\b(ENV)\[/dgv,beginCaptures:{"1":{name:"variable.other.constant.ruby"}},end:/\]/dgv,name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:/\b[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*(?=((\.|::)[A-Za-z]|\[))/dgv,name:"support.class.ruby"},{match:/\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|printf??|proc|putc|puts|rand|readlines??|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\b(?![\!\?])|autoload\?|exit!)/dgv,name:"support.function.kernel.ruby"},{match:/\b[A-Z_][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.other.constant.ruby"},{begin:/(->)\(/dgv,beginCaptures:{"1":{name:"support.function.kernel.ruby"}},end:/\)/dgv,patterns:[{begin:/(?=[\&\*A-Z_a-z])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\4)))\\3)?(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?!>)))\\6)?|===?|!=|>[\\=\\>]?|<=>|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))\\p{space}*(\\()","dgv",{"hiddenCaptures":[3,4,5,6]}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"},"3":{name:"punctuation.definition.parameters.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*A-Z_a-z])/dgv,end:/(?=[\)\,])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\4)))\\3)?(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?!>)))\\6)?|===?|!=|>[\\=\\>]?|<=>|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))[\\t ](?=[\\t ]*[^\\#\\;\\p{space}])","dgv",{"hiddenCaptures":[3,4,5,6]}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"}},end:/(?=;)|(?<=[\]\!"'\)\?\`\}\p{L}\p{M}\p{N}\p{Pc}])(?=\p{space}*#|\p{space}*(?=\n?$))/dgv,name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*A-Z_a-z])/dgv,end:/(?=[\,\;]|\p{space}*#|\p{space}*(?=\n?$))/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{captures:{"1":{name:"keyword.control.def.ruby"},"3":{name:"entity.name.function.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\b(\\p{space}+((?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\5)))\\4)?(?:(?=([A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?!>)))\\7)?|===?|!=|>[\\=\\>]?|<=>|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\6)))?","dgv",{"hiddenCaptures":[4,5,6,7]}),name:"meta.function.method.without-arguments.ruby"},{match:/*@__PURE__*/ new EmulatedRegExp("\\b(\\p{Nd}(?:(?=(_?\\p{Nd}))\\2)*(\\.(?![^\\p{space}\\p{Nd}])(?:(?=(_?\\p{Nd}))\\4)*)?([Ee][\\-\\+]?\\p{Nd}(?:(?=(_?\\p{Nd}))\\6)*)?|0(?:[Xx]\\p{AHex}(?:(?=(_?\\p{AHex}))\\7)*|[Oo]?[0-7](?:(?=(_?[0-7]))\\8)*|[Bb][01](?:(?=(_?[01]))\\9)*|[Dd]\\p{Nd}(?:(?=(_?\\p{Nd}))\\10)*))\\b","dgv",{"hiddenCaptures":[2,4,6,7,8,9,10]}),name:"constant.numeric.ruby"},{begin:/:'/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\['\\]/dgv,name:"constant.character.escape.ruby"}]},{begin:/:"/dgv,beginCaptures:{"0":{name:"punctuation.section.symbol.begin.ruby"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.section.symbol.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{match:/(?<!\()\/=/dgv,name:"keyword.operator.assignment.augmented.ruby"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:/\\['\\]/dgv,name:"constant.character.escape.ruby"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<!\.)`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?<![\\)\\p{L}\\p{M}\\p{N}\\p{Pc}])((/))(?![\\*\\+\\?])(?!\\p{space}*(?=\\n?$))(?=(?:(?=((?:\\\\/|[^\\/])*))\\3)/[eimnosux]*\\p{space}*(?:[\\]\\#\\)\\,\\.\\:\\?\\}]|\\|\\||&&|<=>|=>|==|=~|!~|!=|;|(?=\\n?$)|if|else|elsif|then|do|end|unless|while|until|or|and))","dgv",{"hiddenCaptures":[3]}),captures:{"1":{name:"string.regexp.interpolated.ruby"},"2":{name:"punctuation.section.regexp.ruby"}},contentName:"string.regexp.interpolated.ruby",end:/((\/[eimnosux]*))/dgv,patterns:[{include:"#regex_sub"}]},{begin:/%r\{/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\}[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},{begin:/%r\[/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\][eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},{begin:/%r\(/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\)[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},{begin:/%r</dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/>[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},{begin:/%r([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\1[eimnosux]*()/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"}]},{begin:/%I\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%I\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%I</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%I\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%I([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%i\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%i\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%i</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%i\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%i([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[^\n]/dgv}]},{begin:/%W\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%W\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%W</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%W\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%W([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%w\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%w\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%w</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%w\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%w([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[^\n]/dgv}]},{begin:/%[Qx]?\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%[Qx]?\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%[Qx]?\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%[Qx]?</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%[Qx]([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%([^\=\p{L}\p{M}\p{N}\p{Pc}\p{space}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%q\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%q</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%q\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%q\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%q([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\[^\n]/dgv}]},{begin:/%s\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\)\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%s</dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\>\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%s\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\]\\]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%s\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[\\\}]/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%s([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\[^\n]/dgv}]},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=([\\$A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\!\\?]|=(?![\\=\\>])))\\3)?|===?|<=>|>[\\=\\>]?|<[\\<\\=]?|[\\%\\&\\/\\`\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?|@@?[A-Z_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*))\\2)","dgv",{"hiddenCaptures":[2,3]}),name:"constant.language.symbol.ruby"},{begin:/^=begin/dgv,captures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/^=end/dgv,name:"comment.block.documentation.ruby"},{include:"#yard"},{begin:/(^[\t ]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ruby"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/\n/dgv,name:"comment.line.number-sign.ruby"}]},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])\?(\\(x\p{AHex}{1,2}(?!\p{AHex})\b|0[0-7]{0,2}(?![0-7])\b|[^0CMx])|(\\[CM]-)+[\p{L}\p{M}\p{N}\p{Pc}]|[^\\\p{space}])/dgv,name:"constant.numeric.ruby"},{begin:/^__END__\n/dgv,captures:{"0":{name:"string.unquoted.program-block.ruby"}},contentName:"text.plain",end:/(?=not)impossible/dgv,patterns:[{begin:/(?=<?xml|<[Hh][Tt][Mm][Ll]\b|!DOCTYPE [Hh][Tt][Mm][Ll]\b)/dgv,end:/(?=not)impossible/dgv,name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)HTML)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.html",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.html",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)HTML)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)HAML)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.haml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.haml",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.haml"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)HAML)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)XML)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.xml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.xml",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)XML)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)SQL)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.sql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.sql",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)SQL)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)G(?:RAPHQL|QL))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)G(?:RAPHQL|QL))(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.graphql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)G(?:RAPHQL|QL))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.graphql",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.graphql"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)G(?:RAPHQL|QL))\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)CSS)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.css",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.css",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)CSS)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)CPP)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.cpp",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.cpp",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.cpp"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)CPP)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)C)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.c",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.c",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)C)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)J(?:S|AVASCRIPT))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)J(?:S|AVASCRIPT))(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.js",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)J(?:S|AVASCRIPT))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.js",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)J(?:S|AVASCRIPT))\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)JQUERY)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.js.jquery",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.js.jquery",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)JQUERY)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SH(?:|ELL))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)SH(?:|ELL))(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.shell",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SH(?:|ELL))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.shell",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)SH(?:|ELL))\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)LUA)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.lua",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.lua",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)LUA)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)RUBY)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.ruby",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)RUBY)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)YA?ML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)YA?ML)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.yaml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)YA?ML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"source.yaml",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.yaml"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)YA?ML)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),end:/^\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)SLIM)(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},name:"meta.embedded.block.slim",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]?([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"text.slim",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.slim"},{include:"#escaped_char"}],while:/^(?!\p{space}*((?:[_\p{L}\p{M}\p{N}\p{Pc}]+_|)SLIM)\p{space}*(?=\n?$))/dgv}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(=\\p{space}*<<([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"string.definition.begin.ruby"}},contentName:"string.unquoted.heredoc.ruby",end:/^\2(?=\n?$)()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(((<<[\\-\\~]?([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\4,\\p{space}?)*<<[\\-\\~]?([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\6)))\\1)([^\\n]*)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"1":{name:"string.definition.begin.ruby"},"7":{patterns:[{include:"source.ruby"}]}},contentName:"string.unquoted.heredoc.ruby",end:/^\p{space}*\6(?=\n?$)()()()()()()/dgv,endCaptures:{"0":{name:"string.definition.end.ruby"}},patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<=\{|\{\p{space}+|[^\$0-\:\@-Z_a-z]do|^do|[^\$0-\:\@-Z_a-z]do\p{space}+|^do\p{space}+)(\|)/dgv,captures:{"1":{name:"punctuation.separator.variable.ruby"}},end:/(?<!\|)(\|)(?!\|)/dgv,name:"meta.block.parameters.ruby",patterns:[{begin:/(?![\(\,\|\p{space}])/dgv,end:/(?=,|\|\p{space}*)/dgv,patterns:[{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"variable.other.block.ruby"}},match:/((?:&|\*\*?)?)([A-Z_a-z][_\p{L}\p{M}\p{N}\p{Pc}]*)/dgvy}]},{match:/,/dgv,name:"punctuation.separator.variable.ruby"}]},{match:/=>/dgv,name:"punctuation.separator.key-value"},{match:/->/dgv,name:"support.function.kernel.ruby"},{match:/<<=|%=|&{1,2}=|\*=|\*\*=|\+=|-=|\^=|\|{1,2}=|<</dgv,name:"keyword.operator.assignment.augmented.ruby"},{match:/<=>|<(?![\<\=])|>(?![\<\=\>])|<=|>=|===?|=~|!=|!~|(?<=[\t ])\?/dgv,name:"keyword.operator.comparison.ruby"},{match:/(?<!\.)\b(and|not|or)\b(?![\!\?])/dgv,name:"keyword.operator.logical.ruby"},{match:/(?<=^|[\t \!])!|&&|\|\||\^/dgv,name:"keyword.operator.logical.ruby"},{captures:{"1":{name:"keyword.operator.logical.ruby"}},match:/(&\.)\p{space}*(?![A-Z])/dgv},{match:/([\%\&]|\*\*|[\-\*\+\/])/dgv,name:"keyword.operator.arithmetic.ruby"},{match:/=/dgv,name:"keyword.operator.assignment.ruby"},{match:/[\|\~]|>>/dgv,name:"keyword.operator.other.ruby"},{match:/;/dgv,name:"punctuation.separator.statement.ruby"},{match:/,/dgv,name:"punctuation.separator.object.ruby"},{captures:{"1":{name:"punctuation.separator.namespace.ruby"}},match:/(::)\p{space}*(?=[A-Z])/dgv},{captures:{"1":{name:"punctuation.separator.method.ruby"}},match:/(\.|::)\p{space}*(?![A-Z])/dgv},{match:/:/dgv,name:"punctuation.separator.other.ruby"},{match:/\{/dgv,name:"punctuation.section.scope.begin.ruby"},{match:/\}/dgv,name:"punctuation.section.scope.end.ruby"},{match:/\[/dgv,name:"punctuation.section.array.begin.ruby"},{match:/\]/dgv,name:"punctuation.section.array.end.ruby"},{match:/[\(\)]/dgv,name:"punctuation.section.function.ruby"},{begin:/(?<=[^\.]\.|::)(?=[A-Za-z][\!0-9\?A-Z_a-z]*[^\!0-9\?A-Z_a-z])/dgv,end:/(?<=[\!0-9\?A-Z_a-z])(?=[^\!0-9\?A-Z_a-z])/dgv,name:"meta.function-call.ruby",patterns:[{match:/([A-Za-z][\!0-9\?A-Z_a-z]*)(?=[^\!0-9\?A-Z_a-z])/dgv,name:"entity.name.function.ruby"}]},{begin:/([A-Za-z][\p{L}\p{M}\p{N}\p{Pc}]*[\!\?]?)(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.ruby"},"2":{name:"punctuation.section.function.ruby"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.section.function.ruby"}},name:"meta.function-call.ruby",patterns:[{include:"$self"}]}],repository:{escaped_char:{match:/\\(?:[0-7]{1,3}|x[A-Fa-f\p{Nd}]{1,2}|[^\n])/dgv,name:"constant.character.escape.ruby"},heredoc:{begin:/^<<[\-\~]?[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,end:/(?=\n?$)/dgv,patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:/#\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@@)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#\$)[A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"}]},method_parameters:{patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"#params"},{include:"$self"}],repository:{braces:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.scope.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.scope.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},brackets:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},params:{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"constant.other.symbol.hashkey.parameter.function.ruby"},"3":{name:"punctuation.definition.constant.ruby"},"4":{name:"variable.parameter.function.ruby"}},match:/(&|\*\*?)?(?:([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*[\!\?]?(:))|([A-Z_a-z][\p{L}\p{M}\p{N}\p{Pc}]*))/dgvy},parens:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.function.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]}}},nest_brackets:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#nest_brackets"}]},nest_brackets_i:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},nest_brackets_r:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},nest_curly:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly"}]},nest_curly_and_self:{patterns:[{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]},nest_curly_i:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},nest_curly_r:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},nest_ltgt:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#nest_ltgt"}]},nest_ltgt_i:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},nest_ltgt_r:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},nest_parens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#nest_parens"}]},nest_parens_i:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},nest_parens_r:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.ruby"},"3":{name:"punctuation.definition.arbitrary-repetition.ruby"}},match:/(\{)\p{Nd}+(,\p{Nd}+)?(\})/dgv,name:"string.regexp.arbitrary-repetition.ruby"},{begin:/\[(?:\^?\])?/dgv,captures:{"0":{name:"punctuation.definition.character-class.ruby"}},end:/\]/dgv,name:"string.regexp.character-class.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.group.ruby"}},end:/\)/dgv,name:"string.regexp.group.ruby",patterns:[{include:"#regex_sub"}]},{begin:/(?<=^|\p{space})(#)\p{space}(?=[\-\t \!\,\.0-9\?A-Za-z[^\x00-\x7F]]*(?=\n?$))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.ruby"}},end:/(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},name:"comment.line.number-sign.ruby"}]},yard:{patterns:[{include:"#yard_comment"},{include:"#yard_param_types"},{include:"#yard_option"},{include:"#yard_tag"},{include:"#yard_types"},{include:"#yard_directive"},{include:"#yard_see"},{include:"#yard_macro_attribute"}]},yard_comment:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_continuation:{match:/^\p{space}*#/dgv,name:"punctuation.definition.comment.ruby"},yard_directive:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(endgroup|group|method|parse|scope|visibility)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_macro_attribute:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(attribute|macro)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})(\p{space}+([_a-z][\p{L}\p{M}\p{N}\p{Pc}]*:?))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"11":{name:"comment.line.parameter.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_option:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(option)(?=\\p{space})(?:(?=(\\p{space}+([_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\6)?(?:(?=(\\p{space}+((\\[)[^\\n]+(\\]))))\\8)?(?:(?=(\\p{space}+((\\P{space}*))))\\12)?(?:(?=(\\p{space}+((\\()[^\\n]+(\\)))))\\15)?","dgv",{"hiddenCaptures":[6,8,12,15]}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.keyword.yard.ruby"},"11":{name:"comment.line.hashkey.yard.ruby"},"12":{name:"comment.line.defaultvalue.yard.ruby"},"13":{name:"comment.line.punctuation.yard.ruby"},"14":{name:"comment.line.punctuation.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_param_types:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\p{space})(?:(?=(\\p{space}+(?:(?=(([_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)|((\\[)[^\\n]+(\\]))))\\7)))\\6)?(?:(?=(\\p{space}+(?:(?=(((\\[)[^\\n]+(\\]))|([_a-z][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\13)))\\12)?","dgv",{"hiddenCaptures":[6,7,12,13]}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.type.yard.ruby"},"11":{name:"comment.line.punctuation.yard.ruby"},"12":{name:"comment.line.punctuation.yard.ruby"},"13":{name:"comment.line.parameter.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_see:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(see)(?=\p{space})(\p{space}+([^\n]+?))?(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.parameter.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_tag:{captures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},match:/^(\p{space}*)(#)(\p{space}*)(@)(private)(?=\n?$)/dgv,name:"comment.line.number-sign.ruby"},yard_types:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(raise|return|yield(?:return)?)(?=\p{space})(\p{space}+((\[)[^\n]+(\])))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]}},scopeName:"source.ruby",embeddedLangs:["html","haml","xml","sql","graphql","css","cpp","c","javascript","shellscript","lua","yaml"],aliases:["rb"]})
16
16
 
17
17
  export default [
18
18
  ...html,
package/dist/sql.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"SQL",name:"sql",patterns:[{match:/((?<!@)@)\b([\p{L}\p{M}\p{N}\p{Pc}]+)\b/dgv,name:"text.variable"},{match:/(\[)[^\]]*(\])/dgv,name:"text.bracketed"},{include:"#comments"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.sql"},"5":{name:"entity.name.function.sql"}},match:/^\p{space}*([Cc][Rr][Ee][Aa][Tt][Ee](?:\p{space}+[Oo][Rr]\p{space}+[Rr][Ee][Pp][Ll][Aa][Cc][Ee])?)\p{space}+([Aa][Gg][Gg][Rr][Ee][Gg][Aa][Tt][Ee]|[Cc][Oo][Nn][Vv][Ee][Rr][Ssſ][Ii][Oo][Nn]|[Dd][Aa][Tt][Aa][Bb][Aa][Ssſ][Ee]|[Dd][Oo][Mm][Aa][Ii][Nn]|[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn]|[Gg][Rr][Oo][Uu][Pp]|([Uu][Nn][Ii][Qq][Uu][Ee]\p{space}+)?[Ii][Nn][Dd][Ee][Xx]|[Ll][Aa][Nn][Gg][Uu][Aa][Gg][Ee]|[Oo][Pp][Ee][Rr][Aa][Tt][Oo][Rr] [Cc][Ll][Aa][Ssſ][Ssſ]|[Oo][Pp][Ee][Rr][Aa][Tt][Oo][Rr]|[Rr][Uu][Ll][Ee]|[Ssſ][Cc][Hh][Ee][Mm][Aa]|[Ssſ][Ee][Qq][Uu][Ee][Nn][Cc][Ee]|[Tt][Aa][Bb][Ll][Ee]|[Tt][Aa][Bb][Ll][Ee][Ssſ][Pp][Aa][Cc][Ee]|[Tt][Rr][Ii][Gg][Gg][Ee][Rr]|[Tt][Yy][Pp][Ee]|[Uu][Ssſ][Ee][Rr]|[Vv][Ii][Ee][Ww])\p{space}+(["'\`]?)([\p{L}\p{M}\p{N}\p{Pc}]+)\4/dgv,name:"meta.create.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.sql"}},match:/^\p{space}*(drop)\p{space}+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)/dgiv,name:"meta.drop.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.table.sql"},"3":{name:"entity.name.function.sql"},"4":{name:"keyword.other.cascade.sql"}},match:/\p{space}*(drop)\p{space}+(table)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+)(\p{space}+cascade)?\b/dgiv,name:"meta.drop.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.table.sql"}},match:/^\p{space}*(alter)\p{space}+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\p{space}+/dgiv,name:"meta.alter.sql"},{captures:{"1":{name:"storage.type.sql"},"2":{name:"storage.type.sql"},"3":{name:"constant.numeric.sql"},"4":{name:"storage.type.sql"},"5":{name:"constant.numeric.sql"},"6":{name:"storage.type.sql"},"7":{name:"constant.numeric.sql"},"8":{name:"constant.numeric.sql"},"9":{name:"storage.type.sql"},"10":{name:"constant.numeric.sql"},"11":{name:"storage.type.sql"},"12":{name:"storage.type.sql"},"13":{name:"storage.type.sql"},"14":{name:"constant.numeric.sql"},"15":{name:"storage.type.sql"}},match:/\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\p{space}precision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\b|\b(bit\p{space}varying|character\p{space}(?:varying)?|tinyint|var\p{space}char|float|interval)\((\p{Nd}+)\)|\b(char|number|varchar\p{Nd}?)\b(?:\((\p{Nd}+)\))?|\b(numeric|decimal)\b(?:\((\p{Nd}+),(\p{Nd}+)\))?|\b(times?)\b(?:\((\p{Nd}+)\))?(\p{space}with(?:out)?\p{space}time\p{space}zone\b)?|\b(timestamp)(s|tz)?\b(?:\((\p{Nd}+)\))?(\p{space}(with(?:|out))\p{space}time\p{space}zone\b)?/dgiv},{match:/\b((?:primary|foreign)\p{space}+key|references|on\p{space}+(delete|update)(\p{space}+cascade)?|nocheck|check|constraint|collate|default)\b/dgiv,name:"storage.modifier.sql"},{match:/\b\p{Nd}+\b/dgv,name:"constant.numeric.sql"},{match:/\b(select(\p{space}+(all|distinct))?|insert\p{space}+(ignore\p{space}+)?into|update|delete|from|set|where|group\p{space}+by|or|like|and|union(\p{space}+all)?|having|order\p{space}+by|limit|cross\p{space}+join|join|straight_join|(inner|(left|right|full)(\p{space}+outer)?)\p{space}+join|natural(\p{space}+(inner|(left|right|full)(\p{space}+outer)?))?\p{space}+join)\b/dgiv,name:"keyword.other.DML.sql"},{match:/\b(on|off|((is\p{space}+)?not\p{space}+)?null)\b/dgiv,name:"keyword.other.DDL.create.II.sql"},{match:/\bvalues\b/dgiv,name:"keyword.other.DML.II.sql"},{match:/\b(begin(\p{space}+work)?|start\p{space}+transaction|commit(\p{space}+work)?|rollback(\p{space}+work)?)\b/dgiv,name:"keyword.other.LUW.sql"},{match:/\b(grant(\p{space}with\p{space}grant\p{space}option)?|revoke)\b/dgiv,name:"keyword.other.authorization.sql"},{match:/\bin\b/dgiv,name:"keyword.other.data-integrity.sql"},{match:/^\p{space}*(comment\p{space}+on\p{space}+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\p{space}+/dgiv,name:"keyword.other.object-comments.sql"},{match:/\bAS\b/dgiv,name:"keyword.other.alias.sql"},{match:/\b(DESC|ASC)\b/dgiv,name:"keyword.other.order.sql"},{match:/\*/dgv,name:"keyword.operator.star.sql"},{match:/[\!\<\>]?=|<>|[\<\>]/dgv,name:"keyword.operator.comparison.sql"},{match:/[\-\+\/]/dgv,name:"keyword.operator.math.sql"},{match:/\|\|/dgv,name:"keyword.operator.concatenator.sql"},{captures:{"1":{name:"support.function.aggregate.sql"}},match:/\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdevp??|varp??)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.analytic.sql"}},match:/\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.bitmanipulation.sql"}},match:/\b((?:bit_coun|get_bi|left_shif|right_shif|set_bi)t)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.conversion.sql"}},match:/\b(cast|convert|parse|try_cast|try_convert|try_parse)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.collation.sql"}},match:/\b(collationproperty|tertiary_weights)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.cryptographic.sql"}},match:/\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.cursor.sql"}},match:/\b(cursor_status)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.datetime.sql"}},match:/\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.datatype.sql"}},match:/\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.expression.sql"}},match:/\b(coalesce|nullif)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.globalvar.sql"}},match:/(?<!@)@@\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.json.sql"}},match:/\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.logical.sql"}},match:/\b(choose|iif|greatest|least)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.mathematical.sql"}},match:/\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.metadata.sql"}},match:/\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.ranking.sql"}},match:/\b(rank|dense_rank|ntile|row_number)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.rowset.sql"}},match:/\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.security.sql"}},match:/\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.string.sql"}},match:/\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.system.sql"}},match:/\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.textimage.sql"}},match:/\b(patindex|textptr|textvalid)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.vector.sql"}},match:/\b(vector_(?:distance|norm|normalize))\b\p{space}*\(/dgiv},{captures:{"1":{name:"constant.other.database-name.sql"},"2":{name:"constant.other.table-name.sql"}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+?)\.([\p{L}\p{M}\p{N}\p{Pc}]+)/dgv},{include:"#strings"},{include:"#regexps"},{match:/*@__PURE__*/ new EmulatedRegExp("\\b(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime2??|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|sessions??|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablockx??|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|top??|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|values??|varbinary|varchar|vector|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|windows??|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b","dgiv",{"lazyCompile":true}),name:"keyword.other.sql"},{captures:{"1":{name:"punctuation.section.scope.begin.sql"},"2":{name:"punctuation.section.scope.end.sql"}},match:/(\()(\))/dgv,name:"meta.block.sql"}],repository:{"comment-block":{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.sql"}},end:/\*\//dgv,name:"comment.block",patterns:[{include:"#comment-block"}]},comments:{patterns:[{begin:/(^[\t ]+)?(?=--)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.sql"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.sql"}},end:/\n/dgv,name:"comment.line.double-dash.sql"}]},{begin:/(^[\t ]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.sql"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[]},{include:"#comment-block"}]},regexps:{patterns:[{begin:/\/(?=\P{space}[^\n]*\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/\//dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.sql",patterns:[{include:"#string_interpolation"},{match:/\\\//dgv,name:"constant.character.escape.slash.sql"}]},{begin:/%r\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.modr.sql",patterns:[{include:"#string_interpolation"}]}]},string_escape:{match:/\\[^\n]/dgv,name:"constant.character.escape.sql"},string_interpolation:{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"3":{name:"punctuation.definition.string.end.sql"}},match:/(#\{)([^\}]*)(\})/dgv,name:"string.interpolated.sql"},strings:{patterns:[{captures:{"2":{name:"punctuation.definition.string.begin.sql"},"3":{name:"punctuation.definition.string.end.sql"}},match:/(N)?(')[^']*(')/dgv,name:"string.quoted.single.sql"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.single.sql",patterns:[{include:"#string_escape"}]},{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"2":{name:"punctuation.definition.string.end.sql"}},match:/(`)[^\\\`]*(`)/dgv,name:"string.quoted.other.backtick.sql"},{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.other.backtick.sql",patterns:[{include:"#string_escape"}]},{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"2":{name:"punctuation.definition.string.end.sql"}},match:/(")[^"\#]*(")/dgv,name:"string.quoted.double.sql"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.double.sql",patterns:[{include:"#string_interpolation"}]},{begin:/%\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.other.quoted.brackets.sql",patterns:[{include:"#string_interpolation"}]}]}},scopeName:"source.sql",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"SQL",name:"sql",patterns:[{match:/((?<!@)@)\b([\p{L}\p{M}\p{N}\p{Pc}]+)\b/dgv,name:"text.variable"},{match:/(\[)[^\]]*(\])/dgv,name:"text.bracketed"},{include:"#comments"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.sql"},"5":{name:"entity.name.function.sql"}},match:/^\p{space}*([Cc][Rr][Ee][Aa][Tt][Ee](?:\p{space}+[Oo][Rr]\p{space}+[Rr][Ee][Pp][Ll][Aa][Cc][Ee])?)\p{space}+([Aa][Gg][Gg][Rr][Ee][Gg][Aa][Tt][Ee]|[Cc][Oo][Nn][Vv][Ee][Rr][Ssſ][Ii][Oo][Nn]|[Dd][Aa][Tt][Aa][Bb][Aa][Ssſ][Ee]|[Dd][Oo][Mm][Aa][Ii][Nn]|[Ff][Uu][Nn][Cc][Tt][Ii][Oo][Nn]|[Gg][Rr][Oo][Uu][Pp]|([Uu][Nn][Ii][Qq][Uu][Ee]\p{space}+)?[Ii][Nn][Dd][Ee][Xx]|[Ll][Aa][Nn][Gg][Uu][Aa][Gg][Ee]|[Oo][Pp][Ee][Rr][Aa][Tt][Oo][Rr] [Cc][Ll][Aa][Ssſ][Ssſ]|[Oo][Pp][Ee][Rr][Aa][Tt][Oo][Rr]|[Rr][Uu][Ll][Ee]|[Ssſ][Cc][Hh][Ee][Mm][Aa]|[Ssſ][Ee][Qq][Uu][Ee][Nn][Cc][Ee]|[Tt][Aa][Bb][Ll][Ee]|[Tt][Aa][Bb][Ll][Ee][Ssſ][Pp][Aa][Cc][Ee]|[Tt][Rr][Ii][Gg][Gg][Ee][Rr]|[Tt][Yy][Pp][Ee]|[Uu][Ssſ][Ee][Rr]|[Vv][Ii][Ee][Ww])\p{space}+(["'\`]?)([\p{L}\p{M}\p{N}\p{Pc}]+)\4/dgv,name:"meta.create.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.sql"}},match:/^\p{space}*(drop)\p{space}+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)/dgiv,name:"meta.drop.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.table.sql"},"3":{name:"entity.name.function.sql"},"4":{name:"keyword.other.cascade.sql"}},match:/\p{space}*(drop)\p{space}+(table)\p{space}+([\p{L}\p{M}\p{N}\p{Pc}]+)(\p{space}+cascade)?\b/dgiv,name:"meta.drop.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.table.sql"}},match:/^\p{space}*(alter)\p{space}+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\p{space}+/dgiv,name:"meta.alter.sql"},{captures:{"1":{name:"storage.type.sql"},"2":{name:"storage.type.sql"},"3":{name:"constant.numeric.sql"},"4":{name:"storage.type.sql"},"5":{name:"constant.numeric.sql"},"6":{name:"storage.type.sql"},"7":{name:"constant.numeric.sql"},"8":{name:"constant.numeric.sql"},"9":{name:"storage.type.sql"},"10":{name:"constant.numeric.sql"},"11":{name:"storage.type.sql"},"12":{name:"storage.type.sql"},"13":{name:"storage.type.sql"},"14":{name:"constant.numeric.sql"},"15":{name:"storage.type.sql"}},match:/\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\p{space}precision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\b|\b(bit\p{space}varying|character\p{space}(?:varying)?|tinyint|var\p{space}char|float|interval)\((\p{Nd}+)\)|\b(char|number|varchar\p{Nd}?)\b(?:\((\p{Nd}+)\))?|\b(numeric|decimal)\b(?:\((\p{Nd}+),(\p{Nd}+)\))?|\b(times?)\b(?:\((\p{Nd}+)\))?(\p{space}with(?:out)?\p{space}time\p{space}zone\b)?|\b(timestamp)(s|tz)?\b(?:\((\p{Nd}+)\))?(\p{space}(with(?:|out))\p{space}time\p{space}zone\b)?/dgiv},{match:/\b((?:primary|foreign)\p{space}+key|references|on\p{space}+(delete|update)(\p{space}+cascade)?|nocheck|check|constraint|collate|default)\b/dgiv,name:"storage.modifier.sql"},{match:/\b\p{Nd}+\b/dgv,name:"constant.numeric.sql"},{match:/\b(select(\p{space}+(all|distinct))?|insert\p{space}+(ignore\p{space}+)?into|update|delete|from|set|where|group\p{space}+by|or|like|and|union(\p{space}+all)?|having|order\p{space}+by|limit|cross\p{space}+join|join|straight_join|(inner|(left|right|full)(\p{space}+outer)?)\p{space}+join|natural(\p{space}+(inner|(left|right|full)(\p{space}+outer)?))?\p{space}+join)\b/dgiv,name:"keyword.other.DML.sql"},{match:/\b(on|off|((is\p{space}+)?not\p{space}+)?null)\b/dgiv,name:"keyword.other.DDL.create.II.sql"},{match:/\bvalues\b/dgiv,name:"keyword.other.DML.II.sql"},{match:/\b(begin(\p{space}+work)?|start\p{space}+transaction|commit(\p{space}+work)?|rollback(\p{space}+work)?)\b/dgiv,name:"keyword.other.LUW.sql"},{match:/\b(grant(\p{space}with\p{space}grant\p{space}option)?|revoke)\b/dgiv,name:"keyword.other.authorization.sql"},{match:/\bin\b/dgiv,name:"keyword.other.data-integrity.sql"},{match:/^\p{space}*(comment\p{space}+on\p{space}+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\p{space}+/dgiv,name:"keyword.other.object-comments.sql"},{match:/\bAS\b/dgiv,name:"keyword.other.alias.sql"},{match:/\b(DESC|ASC)\b/dgiv,name:"keyword.other.order.sql"},{match:/\*/dgv,name:"keyword.operator.star.sql"},{match:/[\!\<\>]?=|<>|[\<\>]/dgv,name:"keyword.operator.comparison.sql"},{match:/[\-\+\/]/dgv,name:"keyword.operator.math.sql"},{match:/\|\|/dgv,name:"keyword.operator.concatenator.sql"},{captures:{"1":{name:"support.function.aggregate.sql"}},match:/\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdevp??|varp??)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.analytic.sql"}},match:/\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.bitmanipulation.sql"}},match:/\b((?:bit_coun|get_bi|left_shif|right_shif|set_bi)t)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.conversion.sql"}},match:/\b(cast|convert|parse|try_cast|try_convert|try_parse)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.collation.sql"}},match:/\b(collationproperty|tertiary_weights)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.cryptographic.sql"}},match:/\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.cursor.sql"}},match:/\b(cursor_status)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.datetime.sql"}},match:/\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.datatype.sql"}},match:/\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.expression.sql"}},match:/\b(coalesce|nullif)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.globalvar.sql"}},match:/(?<!@)@@\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.json.sql"}},match:/\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.logical.sql"}},match:/\b(choose|iif|greatest|least)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.mathematical.sql"}},match:/\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.metadata.sql"}},match:/\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.ranking.sql"}},match:/\b(rank|dense_rank|ntile|row_number)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.rowset.sql"}},match:/\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.security.sql"}},match:/\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.string.sql"}},match:/\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.system.sql"}},match:/\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.textimage.sql"}},match:/\b(patindex|textptr|textvalid)\b\p{space}*\(/dgiv},{captures:{"1":{name:"support.function.vector.sql"}},match:/\b(vector_(?:distance|norm|normalize))\b\p{space}*\(/dgiv},{captures:{"1":{name:"constant.other.database-name.sql"},"2":{name:"constant.other.table-name.sql"}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+?)\.([\p{L}\p{M}\p{N}\p{Pc}]+)/dgv},{include:"#strings"},{include:"#regexps"},{match:/*@__PURE__*/ new EmulatedRegExp("\\b(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime2??|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|sessions??|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablockx??|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|top??|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|values??|varbinary|varchar|vector|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|windows??|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b","dgiv",{"lazyCompile":true}),name:"keyword.other.sql"},{captures:{"1":{name:"punctuation.section.scope.begin.sql"},"2":{name:"punctuation.section.scope.end.sql"}},match:/(\()(\))/dgv,name:"meta.block.sql"}],repository:{"comment-block":{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.sql"}},end:/\*\//dgv,name:"comment.block",patterns:[{include:"#comment-block"}]},comments:{patterns:[{begin:/(^[\t ]+)?(?=--)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.sql"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.sql"}},end:/\n/dgv,name:"comment.line.double-dash.sql"}]},{begin:/(^[\t ]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.sql"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[]},{include:"#comment-block"}]},regexps:{patterns:[{begin:/\/(?=\P{space}[^\n]*\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/\//dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.sql",patterns:[{include:"#string_interpolation"},{match:/\\\//dgv,name:"constant.character.escape.slash.sql"}]},{begin:/%r\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.modr.sql",patterns:[{include:"#string_interpolation"}]}]},string_escape:{match:/\\[^\n]/dgv,name:"constant.character.escape.sql"},string_interpolation:{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"3":{name:"punctuation.definition.string.end.sql"}},match:/(#\{)([^\}]*)(\})/dgv,name:"string.interpolated.sql"},strings:{patterns:[{captures:{"2":{name:"punctuation.definition.string.begin.sql"},"3":{name:"punctuation.definition.string.end.sql"}},match:/(?:(?<![0-9A-Z_a-z])(N))?(')[^']*(')/dgv,name:"string.quoted.single.sql"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.single.sql",patterns:[{include:"#string_escape"}]},{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"2":{name:"punctuation.definition.string.end.sql"}},match:/(`)[^\\\`]*(`)/dgv,name:"string.quoted.other.backtick.sql"},{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.other.backtick.sql",patterns:[{include:"#string_escape"}]},{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"2":{name:"punctuation.definition.string.end.sql"}},match:/(")[^"\#]*(")/dgv,name:"string.quoted.double.sql"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.double.sql",patterns:[{include:"#string_interpolation"}]},{begin:/%\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.other.quoted.brackets.sql",patterns:[{include:"#string_interpolation"}]}]}},scopeName:"source.sql",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang
package/dist/typespec.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze({displayName:"TypeSpec",fileTypes:["tsp"],name:"typespec",patterns:[{include:"#statement"}],repository:{"alias-id":{begin:/(=)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.alias-id.typespec",patterns:[{include:"#expression"}]},"alias-statement":{begin:/\b(alias)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.type.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.alias-statement.typespec",patterns:[{include:"#alias-id"},{include:"#type-parameters"}]},"augment-decorator-statement":{begin:/((@@)\b[\$_\p{Alpha}](?:[\$_\p{Alpha}\p{Nd}]|\.[\$_\p{Alpha}])*)\b/dgv,beginCaptures:{"1":{name:"entity.name.tag.tsp"},"2":{name:"entity.name.tag.tsp"}},end:/(?=([\$_\`\p{Alpha}]))|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.augment-decorator-statement.typespec",patterns:[{include:"#token"},{include:"#parenthesized-expression"}]},"block-comment":{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block.tsp"},"boolean-literal":{match:/\b(true|false)\b/dgv,name:"constant.language.tsp"},callExpression:{begin:/\b([\$_\p{Alpha}](?:[\$_\p{Alpha}\p{Nd}]|\.[\$_\p{Alpha}])*)\b\p{space}*(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.tsp"},"2":{name:"punctuation.parenthesis.open.tsp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.tsp"}},name:"meta.callExpression.typespec",patterns:[{include:"#token"},{include:"#expression"},{include:"#punctuation-comma"}]},"const-statement":{begin:/\b(const)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"variable.name.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.const-statement.typespec",patterns:[{include:"#type-annotation"},{include:"#operator-assignment"},{include:"#expression"}]},decorator:{begin:/((@)\b[\$_\p{Alpha}](?:[\$_\p{Alpha}\p{Nd}]|\.[\$_\p{Alpha}])*)\b/dgv,beginCaptures:{"1":{name:"entity.name.tag.tsp"},"2":{name:"entity.name.tag.tsp"}},end:/(?=([\$_\`\p{Alpha}]))|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.decorator.typespec",patterns:[{include:"#token"},{include:"#parenthesized-expression"}]},"decorator-declaration-statement":{begin:/(?:(extern)\p{space}+)?\b(dec)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.decorator-declaration-statement.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"}]},directive:{begin:/\p{space}*(#)\b([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\b/dgv,beginCaptures:{"1":{name:"keyword.directive.name.tsp"},"2":{name:"keyword.directive.name.tsp"}},end:/(?=\n?$)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.directive.typespec",patterns:[{include:"#string-literal"},{include:"#identifier-expression"}]},"doc-comment":{begin:/\/\*\*/dgv,beginCaptures:{"0":{name:"comment.block.tsp"}},end:/\*\//dgv,endCaptures:{"0":{name:"comment.block.tsp"}},name:"comment.block.tsp",patterns:[{include:"#doc-comment-block"}]},"doc-comment-block":{patterns:[{include:"#doc-comment-param"},{include:"#doc-comment-return-tag"},{include:"#doc-comment-unknown-tag"}]},"doc-comment-param":{captures:{"1":{name:"keyword.tag.tspdoc"},"2":{name:"keyword.tag.tspdoc"},"3":{name:"variable.name.tsp"}},match:/((@)(?:param|template|prop))\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\b/dgv,name:"comment.block.tsp"},"doc-comment-return-tag":{captures:{"1":{name:"keyword.tag.tspdoc"},"2":{name:"keyword.tag.tspdoc"}},match:/((@)returns)\b/dgv,name:"comment.block.tsp"},"doc-comment-unknown-tag":{captures:{"1":{name:"entity.name.tag.tsp"},"2":{name:"entity.name.tag.tsp"}},match:/((@)(?:\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`))\b/dgv,name:"comment.block.tsp"},"enum-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.enum-body.typespec",patterns:[{include:"#enum-member"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#punctuation-comma"}]},"enum-member":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(:?)/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.enum-member.typespec",patterns:[{include:"#token"},{include:"#type-annotation"}]},"enum-statement":{begin:/\b(enum)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.type.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.enum-statement.typespec",patterns:[{include:"#token"},{include:"#enum-body"}]},"escape-character":{match:/\\[^\n]/dgv,name:"constant.character.escape.tsp"},expression:{patterns:[{include:"#token"},{include:"#directive"},{include:"#parenthesized-expression"},{include:"#valueof"},{include:"#typeof"},{include:"#type-arguments"},{include:"#object-literal"},{include:"#tuple-literal"},{include:"#tuple-expression"},{include:"#model-expression"},{include:"#callExpression"},{include:"#identifier-expression"}]},"function-declaration-statement":{begin:/(?:(extern)\p{space}+)?\b(fn)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.function-declaration-statement.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"},{include:"#type-annotation"}]},"identifier-expression":{match:/\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`/dgv,name:"entity.name.type.tsp"},"import-statement":{begin:/\b(import)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.import-statement.typespec",patterns:[{include:"#token"}]},"interface-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.interface-body.typespec",patterns:[{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#interface-member"},{include:"#punctuation-semicolon"}]},"interface-heritage":{begin:/\b(extends)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/((?=\{)|(?=[\)\;\@\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.interface-heritage.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-member":{begin:/(?:\b(op)\b\p{space}+)?(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.interface-member.typespec",patterns:[{include:"#token"},{include:"#operation-signature"}]},"interface-statement":{begin:/\b(interface)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.interface-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#interface-heritage"},{include:"#interface-body"},{include:"#expression"}]},"line-comment":{match:/\/\/[^\n]*(?=\n?$)/dgv,name:"comment.line.double-slash.tsp"},"model-expression":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.model-expression.typespec",patterns:[{include:"#model-property"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#spread-operator"},{include:"#punctuation-semicolon"}]},"model-heritage":{begin:/\b(extends|is)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/((?=\{)|(?=[\)\;\@\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.model-heritage.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"model-property":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)|("(?:[^"\\]|\\[^\n])*")/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"string.quoted.double.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.model-property.typespec",patterns:[{include:"#token"},{include:"#type-annotation"},{include:"#operator-assignment"},{include:"#expression"}]},"model-statement":{begin:/\b(model)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.model-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#model-heritage"},{include:"#expression"}]},"namespace-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.namespace-body.typespec",patterns:[{include:"#statement"}]},"namespace-name":{begin:/(?=([\$_\`\p{Alpha}]))/dgv,end:/((?=\{)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.namespace-name.typespec",patterns:[{include:"#identifier-expression"},{include:"#punctuation-accessor"}]},"namespace-statement":{begin:/\b(namespace)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/((?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.namespace-statement.typespec",patterns:[{include:"#token"},{include:"#namespace-name"},{include:"#namespace-body"}]},"numeric-literal":{match:/\b(?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$)|\b(?<!\$)0[Bb][01][01_]*(n)?\b(?!\$)|(?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$)/dgv,name:"constant.numeric.tsp"},"object-literal":{begin:/#\{/dgv,beginCaptures:{"0":{name:"punctuation.hashcurlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.object-literal.typespec",patterns:[{include:"#token"},{include:"#object-literal-property"},{include:"#directive"},{include:"#spread-operator"},{include:"#punctuation-comma"}]},"object-literal-property":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.object-literal-property.typespec",patterns:[{include:"#token"},{include:"#expression"}]},"operation-heritage":{begin:/\b(is)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.operation-heritage.typespec",patterns:[{include:"#expression"}]},"operation-parameters":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.tsp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.tsp"}},name:"meta.operation-parameters.typespec",patterns:[{include:"#token"},{include:"#decorator"},{include:"#model-property"},{include:"#spread-operator"},{include:"#punctuation-comma"}]},"operation-signature":{patterns:[{include:"#type-parameters"},{include:"#operation-heritage"},{include:"#operation-parameters"},{include:"#type-annotation"}]},"operation-statement":{begin:/\b(op)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.operation-statement.typespec",patterns:[{include:"#token"},{include:"#operation-signature"}]},"operator-assignment":{match:/=/dgv,name:"keyword.operator.assignment.tsp"},"parenthesized-expression":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.tsp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.tsp"}},name:"meta.parenthesized-expression.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"punctuation-accessor":{match:/\./dgv,name:"punctuation.accessor.tsp"},"punctuation-comma":{match:/,/dgv,name:"punctuation.comma.tsp"},"punctuation-semicolon":{match:/;/dgv,name:"punctuation.terminator.statement.tsp"},"scalar-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.scalar-body.typespec",patterns:[{include:"#token"},{include:"#directive"},{include:"#scalar-constructor"},{include:"#punctuation-semicolon"}]},"scalar-constructor":{begin:/\b(init)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.scalar-constructor.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"}]},"scalar-extends":{begin:/\b(extends)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\)\;\@\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.scalar-extends.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"scalar-statement":{begin:/\b(scalar)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.type.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.scalar-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#scalar-extends"},{include:"#scalar-body"}]},"spread-operator":{begin:/\.\.\./dgv,beginCaptures:{"0":{name:"keyword.operator.spread.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.spread-operator.typespec",patterns:[{include:"#expression"}]},statement:{patterns:[{include:"#token"},{include:"#directive"},{include:"#augment-decorator-statement"},{include:"#decorator"},{include:"#model-statement"},{include:"#scalar-statement"},{include:"#union-statement"},{include:"#interface-statement"},{include:"#enum-statement"},{include:"#alias-statement"},{include:"#const-statement"},{include:"#namespace-statement"},{include:"#operation-statement"},{include:"#import-statement"},{include:"#using-statement"},{include:"#decorator-declaration-statement"},{include:"#function-declaration-statement"},{include:"#punctuation-semicolon"}]},"string-literal":{begin:/"/dgv,end:/"|(?=\n?$)/dgv,name:"string.quoted.double.tsp",patterns:[{include:"#template-expression"},{include:"#escape-character"}]},"template-expression":{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.tsp"}},name:"meta.template-expression.typespec",patterns:[{include:"#expression"}]},token:{patterns:[{include:"#doc-comment"},{include:"#line-comment"},{include:"#block-comment"},{include:"#triple-quoted-string-literal"},{include:"#string-literal"},{include:"#boolean-literal"},{include:"#numeric-literal"}]},"triple-quoted-string-literal":{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.tsp",patterns:[{include:"#template-expression"},{include:"#escape-character"}]},"tuple-expression":{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.squarebracket.open.tsp"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.tsp"}},name:"meta.tuple-expression.typespec",patterns:[{include:"#expression"}]},"tuple-literal":{begin:/#\[/dgv,beginCaptures:{"0":{name:"punctuation.hashsquarebracket.open.tsp"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.tsp"}},name:"meta.tuple-literal.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"type-annotation":{begin:/\p{space}*(\??)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.optional.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\)\,\;\=\@\}]|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-annotation.typespec",patterns:[{include:"#expression"}]},"type-argument":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(=)/dgv,beginCaptures:{"1":{name:"entity.name.type.tsp"},"2":{name:"keyword.operator.assignment.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,endCaptures:{"0":{name:"keyword.operator.assignment.tsp"}},name:"meta.type-argument.typespec",patterns:[{include:"#token"},{include:"#expression"},{include:"#punctuation-comma"}]},"type-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.tsp"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.tsp"}},name:"meta.type-arguments.typespec",patterns:[{include:"#type-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"type-parameter":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"entity.name.type.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-parameter.typespec",patterns:[{include:"#token"},{include:"#type-parameter-constraint"},{include:"#type-parameter-default"}]},"type-parameter-constraint":{begin:/extends/dgv,beginCaptures:{"0":{name:"keyword.other.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-parameter-constraint.typespec",patterns:[{include:"#expression"}]},"type-parameter-default":{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-parameter-default.typespec",patterns:[{include:"#expression"}]},"type-parameters":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.tsp"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.tsp"}},name:"meta.type-parameters.typespec",patterns:[{include:"#type-parameter"},{include:"#punctuation-comma"}]},typeof:{begin:/\b(typeof)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.typeof.typespec",patterns:[{include:"#expression"}]},"union-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.union-body.typespec",patterns:[{include:"#union-variant"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#expression"},{include:"#punctuation-comma"}]},"union-statement":{begin:/\b(union)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.type.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.union-statement.typespec",patterns:[{include:"#token"},{include:"#union-body"}]},"union-variant":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.union-variant.typespec",patterns:[{include:"#token"},{include:"#expression"}]},"using-statement":{begin:/\b(using)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.using-statement.typespec",patterns:[{include:"#token"},{include:"#identifier-expression"},{include:"#punctuation-accessor"}]},valueof:{begin:/\b(valueof)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\bextern\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.valueof.typespec",patterns:[{include:"#expression"}]}},scopeName:"source.tsp",embeddedLangs:undefined,aliases:["tsp"]})
1
+ const lang = Object.freeze({displayName:"TypeSpec",fileTypes:["tsp"],name:"typespec",patterns:[{include:"#statement"}],repository:{"alias-id":{begin:/(=)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.alias-id.typespec",patterns:[{include:"#expression"}]},"alias-statement":{begin:/(?:(internal)\p{space}+)?\b(alias)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"entity.name.type.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.alias-statement.typespec",patterns:[{include:"#alias-id"},{include:"#type-parameters"}]},"augment-decorator-statement":{begin:/((@@)\b[\$_\p{Alpha}](?:[\$_\p{Alpha}\p{Nd}]|\.[\$_\p{Alpha}])*)\b/dgv,beginCaptures:{"1":{name:"entity.name.tag.tsp"},"2":{name:"entity.name.tag.tsp"}},end:/(?=([\$_\`\p{Alpha}]))|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.augment-decorator-statement.typespec",patterns:[{include:"#token"},{include:"#parenthesized-expression"}]},"block-comment":{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block.tsp"},"boolean-literal":{match:/\b(true|false)\b/dgv,name:"constant.language.tsp"},callExpression:{begin:/\b([\$_\p{Alpha}](?:[\$_\p{Alpha}\p{Nd}]|\.[\$_\p{Alpha}])*)\b\p{space}*(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.tsp"},"2":{name:"punctuation.parenthesis.open.tsp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.tsp"}},name:"meta.callExpression.typespec",patterns:[{include:"#token"},{include:"#expression"},{include:"#punctuation-comma"}]},"const-statement":{begin:/(?:(internal)\p{space}+)?\b(const)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"variable.name.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.const-statement.typespec",patterns:[{include:"#type-annotation"},{include:"#operator-assignment"},{include:"#expression"}]},decorator:{begin:/((@)\b[\$_\p{Alpha}](?:[\$_\p{Alpha}\p{Nd}]|\.[\$_\p{Alpha}])*)\b/dgv,beginCaptures:{"1":{name:"entity.name.tag.tsp"},"2":{name:"entity.name.tag.tsp"}},end:/(?=([\$_\`\p{Alpha}]))|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.decorator.typespec",patterns:[{include:"#token"},{include:"#parenthesized-expression"}]},"decorator-declaration-statement":{begin:/(?:(internal)\p{space}+)?(?:(extern)\p{space}+)?\b(dec)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"keyword.other.tsp"},"4":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.decorator-declaration-statement.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"}]},directive:{begin:/\p{space}*(#)\b([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\b/dgv,beginCaptures:{"1":{name:"keyword.directive.name.tsp"},"2":{name:"keyword.directive.name.tsp"}},end:/(?=\n?$)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.directive.typespec",patterns:[{include:"#string-literal"},{include:"#identifier-expression"}]},"doc-comment":{begin:/\/\*\*/dgv,beginCaptures:{"0":{name:"comment.block.tsp"}},end:/\*\//dgv,endCaptures:{"0":{name:"comment.block.tsp"}},name:"comment.block.tsp",patterns:[{include:"#doc-comment-block"}]},"doc-comment-block":{patterns:[{include:"#doc-comment-param"},{include:"#doc-comment-return-tag"},{include:"#doc-comment-unknown-tag"}]},"doc-comment-param":{captures:{"1":{name:"keyword.tag.tspdoc"},"2":{name:"keyword.tag.tspdoc"},"3":{name:"variable.name.tsp"}},match:/((@)(?:param|template|prop))\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\b/dgv,name:"comment.block.tsp"},"doc-comment-return-tag":{captures:{"1":{name:"keyword.tag.tspdoc"},"2":{name:"keyword.tag.tspdoc"}},match:/((@)returns)\b/dgv,name:"comment.block.tsp"},"doc-comment-unknown-tag":{captures:{"1":{name:"entity.name.tag.tsp"},"2":{name:"entity.name.tag.tsp"}},match:/((@)(?:\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`))\b/dgv,name:"comment.block.tsp"},"enum-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.enum-body.typespec",patterns:[{include:"#enum-member"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#punctuation-comma"}]},"enum-member":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(:?)/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.enum-member.typespec",patterns:[{include:"#token"},{include:"#type-annotation"}]},"enum-statement":{begin:/(?:(internal)\p{space}+)?\b(enum)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"entity.name.type.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.enum-statement.typespec",patterns:[{include:"#token"},{include:"#enum-body"}]},"escape-character":{match:/\\[^\n]/dgv,name:"constant.character.escape.tsp"},expression:{patterns:[{include:"#token"},{include:"#directive"},{include:"#parenthesized-expression"},{include:"#valueof"},{include:"#typeof"},{include:"#type-arguments"},{include:"#object-literal"},{include:"#tuple-literal"},{include:"#tuple-expression"},{include:"#model-expression"},{include:"#callExpression"},{include:"#identifier-expression"}]},"function-declaration-statement":{begin:/(?:(internal)\p{space}+)?(?:(extern)\p{space}+)?\b(fn)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"keyword.other.tsp"},"4":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.function-declaration-statement.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"},{include:"#type-annotation"}]},"identifier-expression":{match:/\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`/dgv,name:"entity.name.type.tsp"},"import-statement":{begin:/\b(import)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.import-statement.typespec",patterns:[{include:"#token"}]},"interface-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.interface-body.typespec",patterns:[{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#interface-member"},{include:"#punctuation-semicolon"}]},"interface-heritage":{begin:/\b(extends)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/((?=\{)|(?=[\)\;\@\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.interface-heritage.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-member":{begin:/(?:\b(op)\b\p{space}+)?(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.interface-member.typespec",patterns:[{include:"#token"},{include:"#operation-signature"}]},"interface-statement":{begin:/(?:(internal)\p{space}+)?\b(interface)\b/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.interface-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#interface-heritage"},{include:"#interface-body"},{include:"#expression"}]},"line-comment":{match:/\/\/[^\n]*(?=\n?$)/dgv,name:"comment.line.double-slash.tsp"},"model-expression":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.model-expression.typespec",patterns:[{include:"#model-property"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#spread-operator"},{include:"#punctuation-semicolon"}]},"model-heritage":{begin:/\b(extends|is)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/((?=\{)|(?=[\)\;\@\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.model-heritage.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"model-property":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)|("(?:[^"\\]|\\[^\n])*")/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"string.quoted.double.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.model-property.typespec",patterns:[{include:"#token"},{include:"#type-annotation"},{include:"#operator-assignment"},{include:"#expression"}]},"model-statement":{begin:/(?:(internal)\p{space}+)?\b(model)\b/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.model-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#model-heritage"},{include:"#expression"}]},"namespace-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.namespace-body.typespec",patterns:[{include:"#statement"}]},"namespace-name":{begin:/(?=([\$_\`\p{Alpha}]))/dgv,end:/((?=\{)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.namespace-name.typespec",patterns:[{include:"#identifier-expression"},{include:"#punctuation-accessor"}]},"namespace-statement":{begin:/\b(namespace)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/((?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b))/dgv,name:"meta.namespace-statement.typespec",patterns:[{include:"#token"},{include:"#namespace-name"},{include:"#namespace-body"}]},"numeric-literal":{match:/\b(?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$)|\b(?<!\$)0[Bb][01][01_]*(n)?\b(?!\$)|(?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$)/dgv,name:"constant.numeric.tsp"},"object-literal":{begin:/#\{/dgv,beginCaptures:{"0":{name:"punctuation.hashcurlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.object-literal.typespec",patterns:[{include:"#token"},{include:"#object-literal-property"},{include:"#directive"},{include:"#spread-operator"},{include:"#punctuation-comma"}]},"object-literal-property":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.object-literal-property.typespec",patterns:[{include:"#token"},{include:"#expression"}]},"operation-heritage":{begin:/\b(is)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.operation-heritage.typespec",patterns:[{include:"#expression"}]},"operation-parameters":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.tsp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.tsp"}},name:"meta.operation-parameters.typespec",patterns:[{include:"#token"},{include:"#decorator"},{include:"#model-property"},{include:"#spread-operator"},{include:"#punctuation-comma"}]},"operation-signature":{patterns:[{include:"#type-parameters"},{include:"#operation-heritage"},{include:"#operation-parameters"},{include:"#type-annotation"}]},"operation-statement":{begin:/(?:(internal)\p{space}+)?\b(op)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.operation-statement.typespec",patterns:[{include:"#token"},{include:"#operation-signature"}]},"operator-assignment":{match:/=/dgv,name:"keyword.operator.assignment.tsp"},"parenthesized-expression":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.tsp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.tsp"}},name:"meta.parenthesized-expression.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"punctuation-accessor":{match:/\./dgv,name:"punctuation.accessor.tsp"},"punctuation-comma":{match:/,/dgv,name:"punctuation.comma.tsp"},"punctuation-semicolon":{match:/;/dgv,name:"punctuation.terminator.statement.tsp"},"scalar-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.scalar-body.typespec",patterns:[{include:"#token"},{include:"#directive"},{include:"#scalar-constructor"},{include:"#punctuation-semicolon"}]},"scalar-constructor":{begin:/\b(init)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"},"2":{name:"entity.name.function.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.scalar-constructor.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"}]},"scalar-extends":{begin:/\b(extends)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\)\;\@\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.scalar-extends.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"scalar-statement":{begin:/(?:(internal)\p{space}+)?\b(scalar)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"entity.name.type.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.scalar-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#scalar-extends"},{include:"#scalar-body"}]},"spread-operator":{begin:/\.\.\./dgv,beginCaptures:{"0":{name:"keyword.operator.spread.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.spread-operator.typespec",patterns:[{include:"#expression"}]},statement:{patterns:[{include:"#token"},{include:"#directive"},{include:"#augment-decorator-statement"},{include:"#decorator"},{include:"#model-statement"},{include:"#scalar-statement"},{include:"#union-statement"},{include:"#interface-statement"},{include:"#enum-statement"},{include:"#alias-statement"},{include:"#const-statement"},{include:"#namespace-statement"},{include:"#operation-statement"},{include:"#import-statement"},{include:"#using-statement"},{include:"#decorator-declaration-statement"},{include:"#function-declaration-statement"},{include:"#punctuation-semicolon"}]},"string-literal":{begin:/"/dgv,end:/"|(?=\n?$)/dgv,name:"string.quoted.double.tsp",patterns:[{include:"#template-expression"},{include:"#escape-character"}]},"template-expression":{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.tsp"}},name:"meta.template-expression.typespec",patterns:[{include:"#expression"}]},token:{patterns:[{include:"#doc-comment"},{include:"#line-comment"},{include:"#block-comment"},{include:"#triple-quoted-string-literal"},{include:"#string-literal"},{include:"#boolean-literal"},{include:"#numeric-literal"}]},"triple-quoted-string-literal":{begin:/"""/dgv,end:/"""/dgv,name:"string.quoted.triple.tsp",patterns:[{include:"#template-expression"},{include:"#escape-character"}]},"tuple-expression":{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.squarebracket.open.tsp"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.tsp"}},name:"meta.tuple-expression.typespec",patterns:[{include:"#expression"}]},"tuple-literal":{begin:/#\[/dgv,beginCaptures:{"0":{name:"punctuation.hashsquarebracket.open.tsp"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.squarebracket.close.tsp"}},name:"meta.tuple-literal.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"type-annotation":{begin:/\p{space}*(\??)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.optional.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\)\,\;\=\@\}]|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-annotation.typespec",patterns:[{include:"#expression"}]},"type-argument":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(=)/dgv,beginCaptures:{"1":{name:"entity.name.type.tsp"},"2":{name:"keyword.operator.assignment.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,endCaptures:{"0":{name:"keyword.operator.assignment.tsp"}},name:"meta.type-argument.typespec",patterns:[{include:"#token"},{include:"#expression"},{include:"#punctuation-comma"}]},"type-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.tsp"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.tsp"}},name:"meta.type-arguments.typespec",patterns:[{include:"#type-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"type-parameter":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"entity.name.type.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-parameter.typespec",patterns:[{include:"#token"},{include:"#type-parameter-constraint"},{include:"#type-parameter-default"}]},"type-parameter-constraint":{begin:/extends/dgv,beginCaptures:{"0":{name:"keyword.other.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-parameter-constraint.typespec",patterns:[{include:"#expression"}]},"type-parameter-default":{begin:/=/dgv,beginCaptures:{"0":{name:"keyword.operator.assignment.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.type-parameter-default.typespec",patterns:[{include:"#expression"}]},"type-parameters":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.tsp"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.tsp"}},name:"meta.type-parameters.typespec",patterns:[{include:"#type-parameter"},{include:"#punctuation-comma"}]},typeof:{begin:/\b(typeof)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.typeof.typespec",patterns:[{include:"#expression"}]},"union-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.curlybrace.open.tsp"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.curlybrace.close.tsp"}},name:"meta.union-body.typespec",patterns:[{include:"#union-variant"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#expression"},{include:"#punctuation-comma"}]},"union-statement":{begin:/(?:(internal)\p{space}+)?\b(union)\b\p{space}+(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)/dgv,beginCaptures:{"1":{name:"storage.modifier.tsp"},"2":{name:"keyword.other.tsp"},"3":{name:"entity.name.type.tsp"}},end:/(?<=\})|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.union-statement.typespec",patterns:[{include:"#token"},{include:"#union-body"}]},"union-variant":{begin:/(\b[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\b|`(?:[^\\\`]|\\[^\n])*`)\p{space}*(:)/dgv,beginCaptures:{"1":{name:"variable.name.tsp"},"2":{name:"keyword.operator.type.annotation.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.union-variant.typespec",patterns:[{include:"#token"},{include:"#expression"}]},"using-statement":{begin:/\b(using)\b/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.using-statement.typespec",patterns:[{include:"#token"},{include:"#identifier-expression"},{include:"#punctuation-accessor"}]},valueof:{begin:/\b(valueof)/dgv,beginCaptures:{"1":{name:"keyword.other.tsp"}},end:/(?=>)|(?=[\,\;\@]|#[a-z]|[\)\}]|\b(?:extern|internal)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)/dgv,name:"meta.valueof.typespec",patterns:[{include:"#expression"}]}},scopeName:"source.tsp",embeddedLangs:undefined,aliases:["tsp"]})
2
2
 
3
3
  export default [
4
4
  lang