@shikijs/langs-precompiled 1.26.2 → 1.27.1

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.
Files changed (93) hide show
  1. package/dist/angular-ts.mjs +1 -1
  2. package/dist/apex.mjs +1 -1
  3. package/dist/apl.mjs +1 -1
  4. package/dist/applescript.mjs +1 -1
  5. package/dist/ara.mjs +1 -1
  6. package/dist/asciidoc.mjs +1 -1
  7. package/dist/asm.mjs +1 -1
  8. package/dist/astro.mjs +1 -1
  9. package/dist/blade.mjs +1 -1
  10. package/dist/c.mjs +1 -1
  11. package/dist/cadence.mjs +1 -1
  12. package/dist/common-lisp.mjs +1 -1
  13. package/dist/cpp-macro.mjs +1 -1
  14. package/dist/cpp.mjs +1 -1
  15. package/dist/crystal.mjs +1 -1
  16. package/dist/css.mjs +1 -1
  17. package/dist/dream-maker.mjs +1 -1
  18. package/dist/elixir.mjs +1 -1
  19. package/dist/emacs-lisp.mjs +1 -1
  20. package/dist/erlang.mjs +1 -1
  21. package/dist/fortran-free-form.mjs +1 -1
  22. package/dist/gdscript.mjs +3 -1
  23. package/dist/glimmer-js.mjs +1 -1
  24. package/dist/glimmer-ts.mjs +1 -1
  25. package/dist/go.mjs +1 -1
  26. package/dist/graphql.mjs +1 -1
  27. package/dist/hack.mjs +1 -1
  28. package/dist/haml.mjs +1 -1
  29. package/dist/haskell.mjs +1 -1
  30. package/dist/html.mjs +1 -1
  31. package/dist/imba.mjs +1 -1
  32. package/dist/ini.mjs +1 -1
  33. package/dist/java.mjs +1 -1
  34. package/dist/javascript.mjs +1 -1
  35. package/dist/jsx.mjs +1 -1
  36. package/dist/julia.mjs +1 -1
  37. package/dist/kotlin.mjs +1 -1
  38. package/dist/kusto.mjs +1 -1
  39. package/dist/latex.mjs +2 -1
  40. package/dist/logo.mjs +1 -1
  41. package/dist/lua.mjs +1 -1
  42. package/dist/make.mjs +1 -1
  43. package/dist/markdown-vue.mjs +1 -1
  44. package/dist/markdown.mjs +1 -1
  45. package/dist/matlab.mjs +1 -1
  46. package/dist/mdc.mjs +1 -1
  47. package/dist/mdx.mjs +1 -1
  48. package/dist/mermaid.mjs +1 -1
  49. package/dist/mipsasm.mjs +1 -1
  50. package/dist/mojo.mjs +1 -1
  51. package/dist/nginx.mjs +2 -1
  52. package/dist/nim.mjs +1 -1
  53. package/dist/nushell.mjs +1 -1
  54. package/dist/objective-c.mjs +1 -1
  55. package/dist/objective-cpp.mjs +1 -1
  56. package/dist/pascal.mjs +1 -1
  57. package/dist/perl.mjs +1 -1
  58. package/dist/php.mjs +1 -1
  59. package/dist/po.mjs +1 -1
  60. package/dist/polar.mjs +1 -1
  61. package/dist/powershell.mjs +1 -1
  62. package/dist/pug.mjs +2 -1
  63. package/dist/python.mjs +1 -1
  64. package/dist/r.mjs +1 -1
  65. package/dist/raku.mjs +1 -1
  66. package/dist/riscv.mjs +1 -1
  67. package/dist/ruby.mjs +1 -1
  68. package/dist/scala.mjs +1 -1
  69. package/dist/scheme.mjs +1 -1
  70. package/dist/scss.mjs +1 -1
  71. package/dist/shellscript.mjs +1 -1
  72. package/dist/smalltalk.mjs +1 -1
  73. package/dist/sql.mjs +1 -1
  74. package/dist/ssh-config.mjs +1 -1
  75. package/dist/stylus.mjs +1 -1
  76. package/dist/svelte.mjs +1 -1
  77. package/dist/systemd.mjs +3 -1
  78. package/dist/templ.mjs +1 -1
  79. package/dist/tex.mjs +1 -1
  80. package/dist/toml.mjs +1 -1
  81. package/dist/tsx.mjs +1 -1
  82. package/dist/twig.mjs +1 -1
  83. package/dist/typescript.mjs +1 -1
  84. package/dist/v.mjs +1 -1
  85. package/dist/vb.mjs +1 -1
  86. package/dist/verilog.mjs +1 -1
  87. package/dist/vue-html.mjs +1 -1
  88. package/dist/vue.mjs +1 -1
  89. package/dist/vyper.mjs +1 -1
  90. package/dist/wikitext.mjs +1 -1
  91. package/dist/wolfram.mjs +1 -1
  92. package/dist/yaml.mjs +1 -1
  93. package/package.json +4 -4
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"}},comment:"class Namespace::ClassName < OtherNamespace::OtherClassName",match:/\x08(class)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\p{space}*((<)\p{space}*(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*))?/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:/\x08(module)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)/dgv,name:"meta.module.ruby"},{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"punctuation.separator.inheritance.ruby"}},match:/\x08(class)\p{space}*(<<)\p{space}*/dgv,name:"meta.class.ruby"},{comment:"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",match:/(?<!\.)\belse(\p{space})+if\b/dgv,name:"invalid.deprecated.ruby"},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment",match:/(?<=^|\n(?!$))\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment (+=, -=, *=, /=)",match:/(?<=^|\n(?!$))\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"variable.ruby"}},comment:"A local variable assignment",match:/(?<=^|\n(?!$))\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"}},comment:"A local variable assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"punctuation.definition.constant.hashkey.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:new EmulatedRegExp("(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\2)?))\\1)(:)(?!:)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.hashkey.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:new EmulatedRegExp("(?<!:)(:)(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\3)?))\\2)(?=\\p{space}*=>)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",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"},{comment:"contextual smart pair support for block parameters",match:/(?<!\.)\bdo\b/dgv,name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",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"},{comment:" everything being a method but having a special function is a..",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|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-zA-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-zA-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-zA-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}+|~|=|\/|\\|,|;|\.|<|>|_|\*|\$|\?|:|"|-[0adFiIlpv])/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|print|printf|proc|putc|puts|rand|readline|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"}},comment:"Lambda parameters.",end:/\)/dgv,patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:new EmulatedRegExp("(?=def\\b)(?<=(?<=^|\\n(?!$))|\\p{space})(def)\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\4)))\\3)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))\\p{space}*(\\()","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"},"3":{name:"punctuation.definition.parameters.ruby"}},comment:"The method pattern comes from the symbol pattern. See there for an explanation.",end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:new EmulatedRegExp("(?=def\\b)(?<=(?<=^|\\n(?!$))|\\p{space})(def)\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\4)))\\3)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))[ \\t](?=[ \\t]*[^\\p{space}\\#\\;])","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",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-zA-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"}},comment:" the optional name is just to catch the def also without a method-name",match:new EmulatedRegExp("(?=def\\b)(?<=(?<=^|\\n(?!$))|\\p{space})(def)\\b(\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\5)))\\4)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\7)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\6)))?","dgv",{"useEmulationGroups":true}),name:"meta.function.method.without-arguments.ruby"},{match:new EmulatedRegExp("\\b([\\p{Nd}](?:(?=($E$_?\\p{Nd}))\\2)*(\\.(?![^\\p{space}\\p{Nd}])(?:(?=($E$_?\\p{Nd}))\\4)*)?([eE][\\-\\+]?\\p{Nd}(?:(?=($E$_?\\p{Nd}))\\6)*)?|0(?:[xX]\\p{AHex}(?:(?=($E$_?\\p{AHex}))\\7)*|[oO]?[0-7](?:(?=($E$_?[0-7]))\\8)*|[bB][01](?:(?=($E$_?[01]))\\9)*|[dD]\\p{Nd}(?:(?=($E$_?\\p{Nd}))\\10)*))\\b","dgv",{"useEmulationGroups":true}),name:"constant.numeric.ruby"},{begin:/:'/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},comment:"symbol literal with '' delimiter",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"}},comment:"symbol literal with \"\" delimiter",end:/"/dgv,endCaptures:{"0":{name:"punctuation.section.symbol.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:/(?<!\()\/=/dgv,name:"keyword.operator.assignment.augmented.ruby"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"string literal with '' delimiter",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"}},comment:"string literal with interpolation and \"\" delimiter",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"}},comment:"execute string (allows for interpolation)",end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:new EmulatedRegExp("(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}\\)])((/))(?![\\?\\*\\+])(?=(?:(?=($E$(?:\\\\/|[^\\/])*))\\3)/[eimnosux]*\\p{space}*(?:[\\)\\]\\}\\#\\.\\,\\?\\:]|\\|\\||&&|<=>|=>|==|=~|!~|!=|;|(?=$|\\n)|if|else|elsif|then|do|end|unless|while|until|or|and)|(?=$|\\n))","dgv",{"useEmulationGroups":true}),captures:{"1":{name:"string.regexp.interpolated.ruby"},"2":{name:"punctuation.section.regexp.ruby"}},comment:"regular expression literal with interpolation",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:[{comment:"Cant be named because its not necessarily an escape.",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:[{comment:"Cant be named because its not necessarily an escape.",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:[{comment:"Cant be named because its not necessarily an escape.",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:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:new EmulatedRegExp("(?<!:)(:)(?:(?=($E$[\\$a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?![\\>\\=])))\\3)?|===?|<=>|>[\\>\\=]?|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?|@@?[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*))\\2)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.ruby"},{begin:/(?<=^|\n(?!$))=begin/dgv,captures:{"0":{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:/(?<=^|\n(?!$))=end/dgv,name:"comment.block.documentation.ruby"},{include:"#yard"},{begin:/((?<=^|\n(?!$))[ \t]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ruby"}},end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/\n/dgv,name:"comment.line.number-sign.ruby"}]},{comment:"\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t",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|[^x0MC])|(\\[MC]-)+[\p{L}\p{M}\p{N}\p{Pc}]|[^\p{space}\\])/dgv,name:"constant.numeric.ruby"},{begin:/(?<=^|\n(?!$))__END__\n/dgv,captures:{"0":{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",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:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded HTML",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.html",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded HAML",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.haml",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.haml",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.haml"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded XML",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.xml",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded SQL",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.sql",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded GraphQL",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.graphql",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.graphql",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.graphql"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded CSS",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.css",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded C++",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.cpp",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.cpp",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.cpp"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded C",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.c",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Javascript",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.js",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded jQuery Javascript",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.js.jquery",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Shell",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.shell",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Lua",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.lua",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Ruby",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.ruby",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded YAML",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.yaml",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.yaml",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.yaml"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Slim",end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),name:"meta.embedded.block.slim",patterns:[{begin:new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.slim",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.slim"},{include:"#escaped_char"}]}]},{begin:new EmulatedRegExp("(?:(?=($E$=\\p{space}*<<([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/(?<=^|\n(?!$))\2(?=$|\n)()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:new EmulatedRegExp("(?:(?=($E$((<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\4,\\p{space}?)*<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\6)))\\1)([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.string.begin.ruby"},"7":{patterns:[{include:"source.ruby"}]}},comment:"heredoc with multiple inputs and indented terminator",end:/(?<=^|\n(?!$))\p{space}*\6(?=$|\n)()()()()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<=\{|\{\p{space}|[^A-Za-z0-9_\:\@\$]do|(?<=^|\n(?!$))do|[^A-Za-z0-9_\:\@\$]do\p{space}|(?<=^|\n(?!$))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"},"3":{name:"variable.other.block.unused.ruby variable.other.constant.ruby"}},match:/([\&\*]?)([a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}_]*)|(_[\p{L}\p{M}\p{N}\p{Pc}_]*)/dgv}]},{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:/(?<=(?<=^|\n(?!$))|[ \t\!])!|&&|\|\||\^/dgv,name:"keyword.operator.logical.ruby"},{captures:{"1":{name:"keyword.operator.logical.ruby"}},comment:"Safe navigation operator",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"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:/(::)\p{space}*(?=[A-Z])/dgv},{captures:{"1":{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:/(\.|::)\p{space}*(?![A-Z])/dgv},{comment:"Must come after method and constant separators to prefer double colons",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][a-zA-Z0-9_\!\?]*[^a-zA-Z0-9_\!\?])/dgv,end:/(?<=[a-zA-Z0-9_\!\?])(?=[^a-zA-Z0-9_\!\?])/dgv,name:"meta.function-call.ruby",patterns:[{match:/([a-zA-Z][a-zA-Z0-9_\!\?]*)(?=[^a-zA-Z0-9_\!\?])/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[\p{Nd}a-fA-F]{1,2}|[^\n])/dgv,name:"constant.character.escape.ruby"},heredoc:{begin:/(?<=^|\n(?!$))<<[\-\~]?[\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-zA-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-zA-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-zA-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-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*[\?\!]?(:))|([_a-zA-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:/(?<=(?<=^|\n(?!$))|\p{space})(#)\p{space}(?=[a-zA-Z0-9\,\. \t\?\!\-[^\x00-\x7F]]*(?=$|\n))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.ruby"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",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:/(?<=^|\n(?!$))(\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"}},comment:"For YARD tags that follow the tag-comment pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:/(?<=^|\n(?!$))\p{space}*#/dgv,name:"punctuation.definition.comment.ruby"},yard_directive:{begin:/(?<=^|\n(?!$))(\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"}},comment:"For YARD directives",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:/(?<=^|\n(?!$))(\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"}},comment:"separate rule for attribute and macro tags because name goes after []",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:new EmulatedRegExp("(?<=^|\\n(?!$))(\\p{space}*)(#)(\\p{space}*)(@)(option)(?=\\p{space})(?:(?=($E$\\p{space}+([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\6)?(?:(?=($E$\\p{space}+((\\[)[^\\n]+(\\]))))\\8)?(?:(?=($E$\\p{space}+((\\P{space}*))))\\12)?(?:(?=($E$\\p{space}+((\\()[^\\n]+(\\)))))\\15)?","dgv",{"useEmulationGroups":true}),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"}},comment:"For YARD option tag that follow the tag-name-types-key-(value)-description pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:new EmulatedRegExp("(?<=^|\\n(?!$))(\\p{space}*)(#)(\\p{space}*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\p{space})(?:(?=($E$\\p{space}+(?:(?=($E$([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)|((\\[)[^\\n]+(\\]))))\\7)))\\6)?(?:(?=($E$\\p{space}+(?:(?=($E$((\\[)[^\\n]+(\\]))|([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\13)))\\12)?","dgv",{"useEmulationGroups":true}),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"}},comment:"For YARD tags that follow the tag-name-types-description or tag-types-name-description pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:/(?<=^|\n(?!$))(\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"}},comment:"separate rule for @see because name could contain url",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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"}},comment:"For YARD tags that are just the tag",match:/(?<=^|\n(?!$))(\p{space}*)(#)(\p{space}*)(@)(private)(?=$|\n)/dgv,name:"comment.line.number-sign.ruby"},yard_types:{begin:/(?<=^|\n(?!$))(\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"}},comment:"For YARD tags that follow the tag-types-comment pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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"}},comment:"class Namespace::ClassName < OtherNamespace::OtherClassName",match:/\x08(class)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\p{space}*((<)\p{space}*(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*))?/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:/\x08(module)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)/dgv,name:"meta.module.ruby"},{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"punctuation.separator.inheritance.ruby"}},match:/\x08(class)\p{space}*(<<)\p{space}*/dgv,name:"meta.class.ruby"},{comment:"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",match:/(?<!\.)\belse(\p{space})+if\b/dgv,name:"invalid.deprecated.ruby"},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment",match:/(?<=^|\n(?!$))\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment (+=, -=, *=, /=)",match:/(?<=^|\n(?!$))\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"variable.ruby"}},comment:"A local variable assignment",match:/(?<=^|\n(?!$))\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"}},comment:"A local variable assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"punctuation.definition.constant.hashkey.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\2)?))\\1)(:)(?!:)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.hashkey.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\3)?))\\2)(?=\\p{space}*=>)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",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"},{comment:"contextual smart pair support for block parameters",match:/(?<!\.)\bdo\b/dgv,name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",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"},{comment:" everything being a method but having a special function is a..",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|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-zA-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-zA-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-zA-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}+|~|=|\/|\\|,|;|\.|<|>|_|\*|\$|\?|:|"|-[0adFiIlpv])/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|print|printf|proc|putc|puts|rand|readline|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"}},comment:"Lambda parameters.",end:/\)/dgv,patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=(?<=^|\\n(?!$))|\\p{space})(def)\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\4)))\\3)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))\\p{space}*(\\()","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"},"3":{name:"punctuation.definition.parameters.ruby"}},comment:"The method pattern comes from the symbol pattern. See there for an explanation.",end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=(?<=^|\\n(?!$))|\\p{space})(def)\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\4)))\\3)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))[ \\t](?=[ \\t]*[^\\p{space}\\#\\;])","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",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-zA-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"}},comment:" the optional name is just to catch the def also without a method-name",match:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=(?<=^|\\n(?!$))|\\p{space})(def)\\b(\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\5)))\\4)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\7)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\6)))?","dgv",{"useEmulationGroups":true}),name:"meta.function.method.without-arguments.ruby"},{match:/*@__PURE__*/ new EmulatedRegExp("\\b([\\p{Nd}](?:(?=($E$_?\\p{Nd}))\\2)*(\\.(?![^\\p{space}\\p{Nd}])(?:(?=($E$_?\\p{Nd}))\\4)*)?([eE][\\-\\+]?\\p{Nd}(?:(?=($E$_?\\p{Nd}))\\6)*)?|0(?:[xX]\\p{AHex}(?:(?=($E$_?\\p{AHex}))\\7)*|[oO]?[0-7](?:(?=($E$_?[0-7]))\\8)*|[bB][01](?:(?=($E$_?[01]))\\9)*|[dD]\\p{Nd}(?:(?=($E$_?\\p{Nd}))\\10)*))\\b","dgv",{"useEmulationGroups":true}),name:"constant.numeric.ruby"},{begin:/:'/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},comment:"symbol literal with '' delimiter",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"}},comment:"symbol literal with \"\" delimiter",end:/"/dgv,endCaptures:{"0":{name:"punctuation.section.symbol.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:/(?<!\()\/=/dgv,name:"keyword.operator.assignment.augmented.ruby"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"string literal with '' delimiter",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"}},comment:"string literal with interpolation and \"\" delimiter",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"}},comment:"execute string (allows for interpolation)",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}\\)])((/))(?![\\?\\*\\+])(?=(?:(?=($E$(?:\\\\/|[^\\/])*))\\3)/[eimnosux]*\\p{space}*(?:[\\)\\]\\}\\#\\.\\,\\?\\:]|\\|\\||&&|<=>|=>|==|=~|!~|!=|;|(?=$|\\n)|if|else|elsif|then|do|end|unless|while|until|or|and)|(?=$|\\n))","dgv",{"useEmulationGroups":true}),captures:{"1":{name:"string.regexp.interpolated.ruby"},"2":{name:"punctuation.section.regexp.ruby"}},comment:"regular expression literal with interpolation",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:[{comment:"Cant be named because its not necessarily an escape.",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:[{comment:"Cant be named because its not necessarily an escape.",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:[{comment:"Cant be named because its not necessarily an escape.",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:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=($E$[\\$a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?![\\>\\=])))\\3)?|===?|<=>|>[\\>\\=]?|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?|@@?[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*))\\2)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.ruby"},{begin:/(?<=^|\n(?!$))=begin/dgv,captures:{"0":{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:/(?<=^|\n(?!$))=end/dgv,name:"comment.block.documentation.ruby"},{include:"#yard"},{begin:/((?<=^|\n(?!$))[ \t]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ruby"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/\n/dgv,name:"comment.line.number-sign.ruby"}]},{comment:"\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t",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|[^x0MC])|(\\[MC]-)+[\p{L}\p{M}\p{N}\p{Pc}]|[^\p{space}\\])/dgv,name:"constant.numeric.ruby"},{begin:/(?<=^|\n(?!$))__END__\n/dgv,captures:{"0":{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",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("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded HTML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.html",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded HAML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.haml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.haml",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.haml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded XML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.xml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded SQL",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.sql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded GraphQL",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.graphql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.graphql",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.graphql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded CSS",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.css",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded C++",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.cpp",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.cpp",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.cpp"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded C",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.c",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Javascript",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.js",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded jQuery Javascript",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.js.jquery",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Shell",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.shell",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Lua",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.lua",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Ruby",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.ruby",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded YAML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.yaml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.yaml",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.yaml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Slim",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.slim",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.slim",end:/(?<=^|\n(?!$))\p{space}*\2(?=$|\n)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.slim"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$=\\p{space}*<<([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/(?<=^|\n(?!$))\2(?=$|\n)()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$((<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\4,\\p{space}?)*<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\6)))\\1)([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.string.begin.ruby"},"7":{patterns:[{include:"source.ruby"}]}},comment:"heredoc with multiple inputs and indented terminator",end:/(?<=^|\n(?!$))\p{space}*\6(?=$|\n)()()()()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<=\{|\{\p{space}|[^A-Za-z0-9_\:\@\$]do|(?<=^|\n(?!$))do|[^A-Za-z0-9_\:\@\$]do\p{space}|(?<=^|\n(?!$))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"},"3":{name:"variable.other.block.unused.ruby variable.other.constant.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("^([\\&\\*]?)([a-zA-Z][\\p{L}\\p{M}\\p{N}\\p{Pc}_]*)|(_[\\p{L}\\p{M}\\p{N}\\p{Pc}_]*)","dgv",{"strategy":"search_start_clip"})}]},{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:/(?<=(?<=^|\n(?!$))|[ \t\!])!|&&|\|\||\^/dgv,name:"keyword.operator.logical.ruby"},{captures:{"1":{name:"keyword.operator.logical.ruby"}},comment:"Safe navigation operator",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"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:/(::)\p{space}*(?=[A-Z])/dgv},{captures:{"1":{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:/(\.|::)\p{space}*(?![A-Z])/dgv},{comment:"Must come after method and constant separators to prefer double colons",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][a-zA-Z0-9_\!\?]*[^a-zA-Z0-9_\!\?])/dgv,end:/(?<=[a-zA-Z0-9_\!\?])(?=[^a-zA-Z0-9_\!\?])/dgv,name:"meta.function-call.ruby",patterns:[{match:/([a-zA-Z][a-zA-Z0-9_\!\?]*)(?=[^a-zA-Z0-9_\!\?])/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[\p{Nd}a-fA-F]{1,2}|[^\n])/dgv,name:"constant.character.escape.ruby"},heredoc:{begin:/(?<=^|\n(?!$))<<[\-\~]?[\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-zA-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-zA-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-zA-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-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*[\?\!]?(:))|([_a-zA-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:/(?<=(?<=^|\n(?!$))|\p{space})(#)\p{space}(?=[a-zA-Z0-9\,\. \t\?\!\-[^\x00-\x7F]]*(?=$|\n))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.ruby"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",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:/(?<=^|\n(?!$))(\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"}},comment:"For YARD tags that follow the tag-comment pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:/(?<=^|\n(?!$))\p{space}*#/dgv,name:"punctuation.definition.comment.ruby"},yard_directive:{begin:/(?<=^|\n(?!$))(\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"}},comment:"For YARD directives",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:/(?<=^|\n(?!$))(\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"}},comment:"separate rule for attribute and macro tags because name goes after []",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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("(?<=^|\\n(?!$))(\\p{space}*)(#)(\\p{space}*)(@)(option)(?=\\p{space})(?:(?=($E$\\p{space}+([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\6)?(?:(?=($E$\\p{space}+((\\[)[^\\n]+(\\]))))\\8)?(?:(?=($E$\\p{space}+((\\P{space}*))))\\12)?(?:(?=($E$\\p{space}+((\\()[^\\n]+(\\)))))\\15)?","dgv",{"useEmulationGroups":true}),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"}},comment:"For YARD option tag that follow the tag-name-types-key-(value)-description pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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("(?<=^|\\n(?!$))(\\p{space}*)(#)(\\p{space}*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\p{space})(?:(?=($E$\\p{space}+(?:(?=($E$([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)|((\\[)[^\\n]+(\\]))))\\7)))\\6)?(?:(?=($E$\\p{space}+(?:(?=($E$((\\[)[^\\n]+(\\]))|([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\13)))\\12)?","dgv",{"useEmulationGroups":true}),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"}},comment:"For YARD tags that follow the tag-name-types-description or tag-types-name-description pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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:/(?<=^|\n(?!$))(\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"}},comment:"separate rule for @see because name could contain url",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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"}},comment:"For YARD tags that are just the tag",match:/(?<=^|\n(?!$))(\p{space}*)(#)(\p{space}*)(@)(private)(?=$|\n)/dgv,name:"comment.line.number-sign.ruby"},yard_types:{begin:/(?<=^|\n(?!$))(\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"}},comment:"For YARD tags that follow the tag-types-comment pattern",contentName:"comment.line.string.yard.ruby",end:/(?<=^|\n(?!$))(?!\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/scala.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Scala",fileTypes:["scala"],firstLineMatch:/(?<=^|\n(?!$))#!\/[^\n]*\b[\p{L}\p{M}\p{N}\p{Pc}]*scala\b/dgv,foldingStartMarker:/\/\*\*|\{\p{space}*(?=$|\n)/dgv,foldingStopMarker:/\*\*\/|(?<=^|\n(?!$))\p{space}*\}/dgv,name:"scala",patterns:[{include:"#code"}],repository:{backQuotedVariable:{match:/`[^\`]+`/dgv},"block-comments":{patterns:[{captures:{"0":{name:"punctuation.definition.comment.scala"}},match:/\/\*\*\//dgv,name:"comment.block.empty.scala"},{begin:/(?<=^|\n(?!$))\p{space}*(\/\*\*)(?!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.scala"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.block.documentation.scala",patterns:[{captures:{"1":{name:"keyword.other.documentation.scaladoc.scala"},"2":{name:"variable.parameter.scala"}},match:/(@param)\p{space}+(\P{space}+)/dgv},{captures:{"1":{name:"keyword.other.documentation.scaladoc.scala"},"2":{name:"entity.name.class"}},match:/(@(?:tparam|throws))\p{space}+(\P{space}+)/dgv},{match:/@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc|groupname|groupprio|groupdesc|group|contentDiagram|documentable|syntax)\b/dgv,name:"keyword.other.documentation.scaladoc.scala"},{captures:{"1":{name:"punctuation.definition.documentation.link.scala"},"2":{name:"string.other.link.title.markdown"},"3":{name:"punctuation.definition.documentation.link.scala"}},match:/(\[\[)([^\]]+)(\]\])/dgv},{include:"#block-comments"}]},{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.scala"}},end:/\*\//dgv,name:"comment.block.scala",patterns:[{include:"#block-comments"}]}]},"char-literal":{patterns:[{captures:{"1":{name:"punctuation.definition.character.begin.scala"},"2":{name:"punctuation.definition.character.end.scala"}},match:/(')'(')/dgv,name:"string.quoted.other constant.character.literal.scala"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.character.begin.scala"}},end:/'|(?=$|\n)/dgv,endCaptures:{"0":{name:"punctuation.definition.character.end.scala"}},name:"string.quoted.other constant.character.literal.scala",patterns:[{match:/\\(?:[btnfr\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})/dgv,name:"constant.character.escape.scala"},{match:/\\[^\n]/dgv,name:"invalid.illegal.unrecognized-character-escape.scala"},{match:/[^']{2,}/dgv,name:"invalid.illegal.character-literal-too-long"},{match:/(?<!')[^']/dgv,name:"invalid.illegal.character-literal-too-long"}]}]},code:{patterns:[{include:"#using-directive"},{include:"#script-header"},{include:"#storage-modifiers"},{include:"#declarations"},{include:"#inheritance"},{include:"#extension"},{include:"#imports"},{include:"#exports"},{include:"#comments"},{include:"#strings"},{include:"#initialization"},{include:"#xml-literal"},{include:"#keywords"},{include:"#using"},{include:"#constants"},{include:"#singleton-type"},{include:"#inline"},{include:"#scala-quoted-or-symbol"},{include:"#char-literal"},{include:"#empty-parentheses"},{include:"#parameter-list"},{include:"#qualifiedClassName"},{include:"#backQuotedVariable"},{include:"#curly-braces"},{include:"#meta-brackets"},{include:"#meta-bounds"},{include:"#meta-colons"}]},comments:{patterns:[{include:"#block-comments"},{begin:/((?<=^|\n(?!$))[ \t]+)?(?=\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.scala"}},end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{begin:/\/\//dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.scala"}},end:/\n/dgv,name:"comment.line.double-slash.scala"}]}]},constants:{patterns:[{match:/\b(false|null|true)\b/dgv,name:"constant.language.scala"},{match:/\b(0[xX][0-9a-fA-F_]*)\b/dgv,name:"constant.numeric.scala"},{match:/\b(([0-9][0-9_]*(\.[0-9][0-9_]*)?)([eE](\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\b/dgv,name:"constant.numeric.scala"},{match:/(\.[0-9][0-9_]*)([eE](\+|-)?[0-9][0-9_]*)?[LlFfDd]?\b/dgv,name:"constant.numeric.scala"},{match:/\b0[bB][01]([01_]*[01])?[Ll]?\b/dgv,name:"constant.numeric.scala"},{match:/\b(this|super)\b/dgv,name:"variable.language.scala"}]},"curly-braces":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.scala"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.scala"}},patterns:[{include:"#code"}]},declarations:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.function.declaration"}},match:/\b(def)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.class.declaration"}},match:/\b(trait)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}},match:/\b(?:(case)\p{space}+)?(class|object|enum)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.type.declaration"}},match:/(?<!\.)\b(type)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"keyword.declaration.volatile.scala"}},match:/\b(?:(val)|(var))\b\p{space}*(?!\/\/|\/\*)(?=(?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)?\()/dgv},{captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"variable.stable.declaration.scala"}},match:/\b(val)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)(?:\p{space}*,\p{space}*(?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))*)?(?!")/dgv},{captures:{"1":{name:"keyword.declaration.volatile.scala"},"2":{name:"variable.volatile.declaration.scala"}},match:/\b(var)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)(?:\p{space}*,\p{space}*(?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))*)?(?!")/dgv},{captures:{"1":{name:"keyword.other.package.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}},match:/\b(package)\p{space}+(object)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{begin:/\b(package)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.package.scala"}},end:/(?<=[\n\;])/dgv,name:"meta.package.scala",patterns:[{include:"#comments"},{match:/(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))/dgv,name:"entity.name.package.scala"},{match:/\./dgv,name:"punctuation.definition.package"}]},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.given.declaration"}},match:/\b(given)\b\p{space}*([_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|`[^\`]+`)?/dgv}]},"empty-parentheses":{captures:{"1":{name:"meta.bracket.scala"}},match:/(\(\))/dgv,name:"meta.parentheses.scala"},exports:{begin:/\b(export)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.export.scala"}},end:/(?<=[\n\;])/dgv,name:"meta.export.scala",patterns:[{include:"#comments"},{match:/\b(given)\b/dgv,name:"keyword.other.export.given.scala"},{match:/[A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?/dgv,name:"entity.name.class.export.scala"},{match:/(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))/dgv,name:"entity.name.export.scala"},{match:/\./dgv,name:"punctuation.definition.export"},{begin:/\{/dgv,beginCaptures:{"0":{name:"meta.bracket.scala"}},end:/\}/dgv,endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.export.selector.scala",patterns:[{captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.renamed-from.scala"},"3":{name:"entity.name.export.renamed-from.scala"},"4":{name:"keyword.other.arrow.scala"},"5":{name:"entity.name.class.export.renamed-to.scala"},"6":{name:"entity.name.export.renamed-to.scala"}},match:/(given\p{space})?\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*(=>)\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*/dgv},{match:/\b(given)\b/dgv,name:"keyword.other.export.given.scala"},{captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.scala"},"3":{name:"entity.name.export.scala"}},match:/(given\p{space}+)?(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))/dgv}]}]},extension:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"}},match:/(?<=^|\n(?!$))\p{space}*(extension)\p{space}+(?=[\[\(])/dgv}]},imports:{begin:/\b(import)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.import.scala"}},end:/(?<=[\n\;])/dgv,name:"meta.import.scala",patterns:[{include:"#comments"},{match:/\b(given)\b/dgv,name:"keyword.other.import.given.scala"},{match:/\p{space}(as)\p{space}/dgv,name:"keyword.other.import.as.scala"},{match:/[A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?/dgv,name:"entity.name.class.import.scala"},{match:/(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))/dgv,name:"entity.name.import.scala"},{match:/\./dgv,name:"punctuation.definition.import"},{begin:/\{/dgv,beginCaptures:{"0":{name:"meta.bracket.scala"}},end:/\}/dgv,endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.import.selector.scala",patterns:[{captures:{"1":{name:"keyword.other.import.given.scala"},"2":{name:"entity.name.class.import.renamed-from.scala"},"3":{name:"entity.name.import.renamed-from.scala"},"4":{name:"keyword.other.arrow.scala"},"5":{name:"entity.name.class.import.renamed-to.scala"},"6":{name:"entity.name.import.renamed-to.scala"}},match:/(given\p{space})?\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*(=>)\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*/dgv},{match:/\b(given)\b/dgv,name:"keyword.other.import.given.scala"},{captures:{"1":{name:"keyword.other.import.given.scala"},"2":{name:"entity.name.class.import.scala"},"3":{name:"entity.name.import.scala"}},match:/(given\p{space}+)?(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))/dgv}]}]},inheritance:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.class"}},match:/\b(extends|with|derives)\b\p{space}*([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|`[^\`]+`|(?=\([^\)]+=>)|(?=(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))|(?="))?/dgv}]},initialization:{captures:{"1":{name:"keyword.declaration.scala"}},match:/\b(new)\b/dgv},inline:{patterns:[{match:/\b(inline)(?=\p{space}+((?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)\p{space}*:)/dgv,name:"storage.modifier.other"},{match:/\b(inline)\b(?=(?:[^\n](?!\b(?:val|def|given)\b))*\b(if|match)\b)/dgv,name:"keyword.control.flow.scala"}]},keywords:{patterns:[{match:/\b(return|throw)\b/dgv,name:"keyword.control.flow.jump.scala"},{match:/\b(classOf|isInstanceOf|asInstanceOf)\b/dgv,name:"support.function.type-of.scala"},{match:/\b(else|if|then|do|while|for|yield|match|case)\b/dgv,name:"keyword.control.flow.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(if|while|for|match)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.control.flow.end.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(val)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.declaration.stable.end.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(var)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.declaration.volatile.end.scala"},{captures:{"1":{name:"keyword.declaration.end.scala"},"2":{name:"keyword.declaration.end.scala"},"3":{name:"entity.name.type.declaration"}},match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(?:(new|extension)|([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?))(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv},{match:/\b(catch|finally|try)\b/dgv,name:"keyword.control.exception.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(try)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.control.exception.end.scala"},{captures:{"1":{name:"keyword.declaration.end.scala"},"2":{name:"entity.name.declaration"}},match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))?(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv},{match:/([\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]|[\\]){3,}/dgv,name:"keyword.operator.scala"},{captures:{"1":{patterns:[{match:/(\|\||&&)/dgv,name:"keyword.operator.logical.scala"},{match:/(!=|==|<=|>=)/dgv,name:"keyword.operator.comparison.scala"},{match:/[^\n][^\n]/dgv,name:"keyword.operator.scala"}]}},match:/((?:[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]|[\\]){2,}|_\*)/dgv},{captures:{"1":{patterns:[{match:/(!)/dgv,name:"keyword.operator.logical.scala"},{match:/(\*|-|\+|\/|%|~)/dgv,name:"keyword.operator.arithmetic.scala"},{match:/(=|<|>)/dgv,name:"keyword.operator.comparison.scala"},{match:/[^\n]/dgv,name:"keyword.operator.scala"}]}},match:/(?<!_)([\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]|\\)/dgv}]},"meta-bounds":{comment:"For themes: Matching view bounds",match:/<%|=:=|<:<|<%<|>:|<:/dgv,name:"meta.bounds.scala"},"meta-brackets":{comment:"For themes: Brackets look nice when colored.",patterns:[{comment:"The punctuation.section.*.begin is needed for return snippet in source bundle",match:/\{/dgv,name:"punctuation.section.block.begin.scala"},{comment:"The punctuation.section.*.end is needed for return snippet in source bundle",match:/\}/dgv,name:"punctuation.section.block.end.scala"},{match:/\{|\}|\(|\)|\[|\]/dgv,name:"meta.bracket.scala"}]},"meta-colons":{comment:"For themes: Matching type colons",patterns:[{match:/(?<!:):(?!:)/dgv,name:"meta.colon.scala"}]},"parameter-list":{patterns:[{captures:{"1":{name:"variable.parameter.scala"},"2":{name:"meta.colon.scala"}},match:/(?<=[^\._\$a-zA-Z0-9])(`[^\`]+`|[_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)\p{space}*(:)\p{space}+/dgv}]},qualifiedClassName:{captures:{"1":{name:"entity.name.class"}},match:/(\b([A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)/dgv},"scala-quoted-or-symbol":{patterns:[{captures:{"1":{name:"keyword.control.flow.staging.scala constant.other.symbol.scala"},"2":{name:"constant.other.symbol.scala"}},match:new EmulatedRegExp("(')((?:(?=($E$[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[\\!\\#\\%\\&\\*\\+\\-\\/\\:\\<\\>\\=\\?\\@\\^\\|\\~\\p{Sm}\\p{So}]+)?|[\\!\\#\\%\\&\\*\\+\\-\\/\\:\\<\\>\\=\\?\\@\\^\\|\\~\\p{Sm}\\p{So}]+))\\3))(?!')","dgv",{"useEmulationGroups":true})},{match:/'(?=\p{space}*\{(?!'))/dgv,name:"keyword.control.flow.staging.scala"},{match:/'(?=\p{space}*\[(?!'))/dgv,name:"keyword.control.flow.staging.scala"},{match:/\$(?=\p{space}*\{)/dgv,name:"keyword.control.flow.staging.scala"}]},"script-header":{captures:{"1":{name:"string.unquoted.shebang.scala"}},match:/(?<=^|\n(?!$))#!([^\n]*)(?=$|\n)/dgv,name:"comment.block.shebang.scala"},"singleton-type":{captures:{"1":{name:"keyword.type.scala"}},match:/\.(type)(?![A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[0-9])/dgv},"storage-modifiers":{patterns:[{match:/\b(private\[\P{space}+\]|protected\[\P{space}+\]|private|protected)\b/dgv,name:"storage.modifier.access"},{match:/\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\b/dgv,name:"storage.modifier.other"},{match:/(?<=(?<=^|\n(?!$))|\p{space})\b(transparent|opaque|infix|open|inline)\b(?=[a-z\p{space}]*\b(def|val|var|given|type|class|trait|object|enum)\b)/dgv,name:"storage.modifier.other"}]},"string-interpolation":{patterns:[{match:/\$\$/dgv,name:"constant.character.escape.interpolation.scala"},{captures:{"1":{name:"punctuation.definition.template-expression.begin.scala"}},match:/(\$)([A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\p{Lo}\p{Nl}\p{Ll}0-9]*)/dgv,name:"meta.template.expression.scala"},{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.scala"}},contentName:"meta.embedded.line.scala",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.scala"}},name:"meta.template.expression.scala",patterns:[{include:"#code"}]}]},strings:{patterns:[{begin:/"""/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},end:/"""(?!")/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.triple.scala",patterns:[{match:/\\\\|\\u[0-9A-Fa-f]{4}/dgv,name:"constant.character.escape.scala"}]},{begin:/\b(raw)(""")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(""")(?!")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:/\$[\$"]/dgv,name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:/[^\n]/dgv,name:"string.quoted.triple.interpolated.scala"}]},{begin:/\b([A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)(""")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(""")(?!")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{include:"#string-interpolation"},{match:/\\\\|\\u[0-9A-Fa-f]{4}/dgv,name:"constant.character.escape.scala"},{match:/[^\n]/dgv,name:"string.quoted.triple.interpolated.scala"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.double.scala",patterns:[{match:/\\(?:[btnfr\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})/dgv,name:"constant.character.escape.scala"},{match:/\\[^\n]/dgv,name:"invalid.illegal.unrecognized-string-escape.scala"}]},{begin:/\b(raw)(")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:/\$[\$"]/dgv,name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:/[^\n]/dgv,name:"string.quoted.double.interpolated.scala"}]},{begin:/\b([A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)(")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:/\$[\$"]/dgv,name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:/\\(?:[btnfr\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})/dgv,name:"constant.character.escape.scala"},{match:/\\[^\n]/dgv,name:"invalid.illegal.unrecognized-string-escape.scala"},{match:/[^\n]/dgv,name:"string.quoted.double.interpolated.scala"}]}]},using:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"}},match:/(?<=\()\p{space}*(using)\p{space}/dgv}]},"using-directive":{begin:/(?<=^|\n(?!$))\p{space}*(\/\/>)\p{space}*(using)[^\P{space}\n]+(?:(\P{space}+))?/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.scala"},"2":{name:"keyword.other.import.scala"},"3":{patterns:[{match:/[A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)/dgv,name:"entity.name.import.scala"},{match:/\./dgv,name:"punctuation.definition.import"}]}},end:/\n/dgv,name:"comment.line.shebang.scala",patterns:[{include:"#constants"},{include:"#strings"},{match:/[^\p{space}\,]+/dgv,name:"string.quoted.double.scala"}]},"xml-doublequotedString":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml",patterns:[{include:"#xml-entity"}]},"xml-embedded-content":{patterns:[{begin:/\{/dgv,captures:{"0":{name:"meta.bracket.scala"}},end:/\}/dgv,name:"meta.source.embedded.scala",patterns:[{include:"#code"}]},{captures:{"1":{name:"entity.other.attribute-name.namespace.xml"},"2":{name:"entity.other.attribute-name.xml"},"3":{name:"punctuation.separator.namespace.xml"},"4":{name:"entity.other.attribute-name.localname.xml"}},match:/ (?:([\-_a-zA-Z0-9]+)((:)))?([_a-zA-Z\-]+)=/dgv},{include:"#xml-doublequotedString"},{include:"#xml-singlequotedString"}]},"xml-entity":{captures:{"1":{name:"punctuation.definition.constant.xml"},"3":{name:"punctuation.definition.constant.xml"}},match:/(&)([\:a-zA-Z_][\:a-zA-Z0-9_\.\-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)/dgv,name:"constant.character.entity.xml"},"xml-literal":{patterns:[{begin:/(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][\-_a-zA-Z0-9\:]*))(?=(\p{space}[^\>]*)?><\/\2>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.xml"},"3":{name:"entity.name.tag.namespace.xml"},"4":{name:"entity.name.tag.xml"},"5":{name:"punctuation.separator.namespace.xml"},"6":{name:"entity.name.tag.localname.xml"}},comment:"We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator",end:/(>(<))\/(?:([\-_a-zA-Z0-9]+)((:)))?([\-_a-zA-Z0-9\:]*[_a-zA-Z0-9])(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"meta.scope.between-tag-pair.xml"},"3":{name:"entity.name.tag.namespace.xml"},"4":{name:"entity.name.tag.xml"},"5":{name:"punctuation.separator.namespace.xml"},"6":{name:"entity.name.tag.localname.xml"},"7":{name:"punctuation.definition.tag.xml"}},name:"meta.tag.no-content.xml",patterns:[{include:"#xml-embedded-content"}]},{begin:/(<\/?)(?:([_a-zA-Z0-9][\-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][\-_a-zA-Z0-9\:]*)(?=[^\>]*?>)/dgv,captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"entity.name.tag.namespace.xml"},"3":{name:"entity.name.tag.xml"},"4":{name:"punctuation.separator.namespace.xml"},"5":{name:"entity.name.tag.localname.xml"}},end:/(\/?>)/dgv,name:"meta.tag.xml",patterns:[{include:"#xml-embedded-content"}]},{include:"#xml-entity"}]},"xml-singlequotedString":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml",patterns:[{include:"#xml-entity"}]}},scopeName:"source.scala",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"Scala",fileTypes:["scala"],firstLineMatch:/(?<=^|\n(?!$))#!\/[^\n]*\b[\p{L}\p{M}\p{N}\p{Pc}]*scala\b/dgv,foldingStartMarker:/\/\*\*|\{\p{space}*(?=$|\n)/dgv,foldingStopMarker:/\*\*\/|(?<=^|\n(?!$))\p{space}*\}/dgv,name:"scala",patterns:[{include:"#code"}],repository:{backQuotedVariable:{match:/`[^\`]+`/dgv},"block-comments":{patterns:[{captures:{"0":{name:"punctuation.definition.comment.scala"}},match:/\/\*\*\//dgv,name:"comment.block.empty.scala"},{begin:/(?<=^|\n(?!$))\p{space}*(\/\*\*)(?!\/)/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.scala"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.block.documentation.scala",patterns:[{captures:{"1":{name:"keyword.other.documentation.scaladoc.scala"},"2":{name:"variable.parameter.scala"}},match:/(@param)\p{space}+(\P{space}+)/dgv},{captures:{"1":{name:"keyword.other.documentation.scaladoc.scala"},"2":{name:"entity.name.class"}},match:/(@(?:tparam|throws))\p{space}+(\P{space}+)/dgv},{match:/@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc|groupname|groupprio|groupdesc|group|contentDiagram|documentable|syntax)\b/dgv,name:"keyword.other.documentation.scaladoc.scala"},{captures:{"1":{name:"punctuation.definition.documentation.link.scala"},"2":{name:"string.other.link.title.markdown"},"3":{name:"punctuation.definition.documentation.link.scala"}},match:/(\[\[)([^\]]+)(\]\])/dgv},{include:"#block-comments"}]},{begin:/\/\*/dgv,captures:{"0":{name:"punctuation.definition.comment.scala"}},end:/\*\//dgv,name:"comment.block.scala",patterns:[{include:"#block-comments"}]}]},"char-literal":{patterns:[{captures:{"1":{name:"punctuation.definition.character.begin.scala"},"2":{name:"punctuation.definition.character.end.scala"}},match:/(')'(')/dgv,name:"string.quoted.other constant.character.literal.scala"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.character.begin.scala"}},end:/'|(?=$|\n)/dgv,endCaptures:{"0":{name:"punctuation.definition.character.end.scala"}},name:"string.quoted.other constant.character.literal.scala",patterns:[{match:/\\(?:[btnfr\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})/dgv,name:"constant.character.escape.scala"},{match:/\\[^\n]/dgv,name:"invalid.illegal.unrecognized-character-escape.scala"},{match:/[^']{2,}/dgv,name:"invalid.illegal.character-literal-too-long"},{match:/(?<!')[^']/dgv,name:"invalid.illegal.character-literal-too-long"}]}]},code:{patterns:[{include:"#using-directive"},{include:"#script-header"},{include:"#storage-modifiers"},{include:"#declarations"},{include:"#inheritance"},{include:"#extension"},{include:"#imports"},{include:"#exports"},{include:"#comments"},{include:"#strings"},{include:"#initialization"},{include:"#xml-literal"},{include:"#keywords"},{include:"#using"},{include:"#constants"},{include:"#singleton-type"},{include:"#inline"},{include:"#scala-quoted-or-symbol"},{include:"#char-literal"},{include:"#empty-parentheses"},{include:"#parameter-list"},{include:"#qualifiedClassName"},{include:"#backQuotedVariable"},{include:"#curly-braces"},{include:"#meta-brackets"},{include:"#meta-bounds"},{include:"#meta-colons"}]},comments:{patterns:[{include:"#block-comments"},{begin:/((?<=^|\n(?!$))[ \t]+)?(?=\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.scala"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),patterns:[{begin:/\/\//dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.scala"}},end:/\n/dgv,name:"comment.line.double-slash.scala"}]}]},constants:{patterns:[{match:/\b(false|null|true)\b/dgv,name:"constant.language.scala"},{match:/\b(0[xX][0-9a-fA-F_]*)\b/dgv,name:"constant.numeric.scala"},{match:/\b(([0-9][0-9_]*(\.[0-9][0-9_]*)?)([eE](\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\b/dgv,name:"constant.numeric.scala"},{match:/(\.[0-9][0-9_]*)([eE](\+|-)?[0-9][0-9_]*)?[LlFfDd]?\b/dgv,name:"constant.numeric.scala"},{match:/\b0[bB][01]([01_]*[01])?[Ll]?\b/dgv,name:"constant.numeric.scala"},{match:/\b(this|super)\b/dgv,name:"variable.language.scala"}]},"curly-braces":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.block.begin.scala"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.block.end.scala"}},patterns:[{include:"#code"}]},declarations:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.function.declaration"}},match:/\b(def)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.class.declaration"}},match:/\b(trait)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}},match:/\b(?:(case)\p{space}+)?(class|object|enum)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.type.declaration"}},match:/(?<!\.)\b(type)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"keyword.declaration.volatile.scala"}},match:/\b(?:(val)|(var))\b\p{space}*(?!\/\/|\/\*)(?=(?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)?\()/dgv},{captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"variable.stable.declaration.scala"}},match:/\b(val)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)(?:\p{space}*,\p{space}*(?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))*)?(?!")/dgv},{captures:{"1":{name:"keyword.declaration.volatile.scala"},"2":{name:"variable.volatile.declaration.scala"}},match:/\b(var)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)(?:\p{space}*,\p{space}*(?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))*)?(?!")/dgv},{captures:{"1":{name:"keyword.other.package.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}},match:/\b(package)\p{space}+(object)\b\p{space}*(?!\/\/|\/\*)((?:(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`))?/dgv},{begin:/\b(package)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.package.scala"}},end:/(?<=[\n\;])/dgv,name:"meta.package.scala",patterns:[{include:"#comments"},{match:/(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))/dgv,name:"entity.name.package.scala"},{match:/\./dgv,name:"punctuation.definition.package"}]},{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.given.declaration"}},match:/\b(given)\b\p{space}*([_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|`[^\`]+`)?/dgv}]},"empty-parentheses":{captures:{"1":{name:"meta.bracket.scala"}},match:/(\(\))/dgv,name:"meta.parentheses.scala"},exports:{begin:/\b(export)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.export.scala"}},end:/(?<=[\n\;])/dgv,name:"meta.export.scala",patterns:[{include:"#comments"},{match:/\b(given)\b/dgv,name:"keyword.other.export.given.scala"},{match:/[A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?/dgv,name:"entity.name.class.export.scala"},{match:/(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))/dgv,name:"entity.name.export.scala"},{match:/\./dgv,name:"punctuation.definition.export"},{begin:/\{/dgv,beginCaptures:{"0":{name:"meta.bracket.scala"}},end:/\}/dgv,endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.export.selector.scala",patterns:[{captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.renamed-from.scala"},"3":{name:"entity.name.export.renamed-from.scala"},"4":{name:"keyword.other.arrow.scala"},"5":{name:"entity.name.class.export.renamed-to.scala"},"6":{name:"entity.name.export.renamed-to.scala"}},match:/(given\p{space})?\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*(=>)\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*/dgv},{match:/\b(given)\b/dgv,name:"keyword.other.export.given.scala"},{captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.scala"},"3":{name:"entity.name.export.scala"}},match:/(given\p{space}+)?(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))/dgv}]}]},extension:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"}},match:/(?<=^|\n(?!$))\p{space}*(extension)\p{space}+(?=[\[\(])/dgv}]},imports:{begin:/\b(import)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.other.import.scala"}},end:/(?<=[\n\;])/dgv,name:"meta.import.scala",patterns:[{include:"#comments"},{match:/\b(given)\b/dgv,name:"keyword.other.import.given.scala"},{match:/\p{space}(as)\p{space}/dgv,name:"keyword.other.import.as.scala"},{match:/[A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?/dgv,name:"entity.name.class.import.scala"},{match:/(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))/dgv,name:"entity.name.import.scala"},{match:/\./dgv,name:"punctuation.definition.import"},{begin:/\{/dgv,beginCaptures:{"0":{name:"meta.bracket.scala"}},end:/\}/dgv,endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.import.selector.scala",patterns:[{captures:{"1":{name:"keyword.other.import.given.scala"},"2":{name:"entity.name.class.import.renamed-from.scala"},"3":{name:"entity.name.import.renamed-from.scala"},"4":{name:"keyword.other.arrow.scala"},"5":{name:"entity.name.class.import.renamed-to.scala"},"6":{name:"entity.name.import.renamed-to.scala"}},match:/(given\p{space})?\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*(=>)\p{space}*(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))\p{space}*/dgv},{match:/\b(given)\b/dgv,name:"keyword.other.import.given.scala"},{captures:{"1":{name:"keyword.other.import.given.scala"},"2":{name:"entity.name.class.import.scala"},"3":{name:"entity.name.import.scala"}},match:/(given\p{space}+)?(?:([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)|(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)))/dgv}]}]},inheritance:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.class"}},match:/\b(extends|with|derives)\b\p{space}*([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|`[^\`]+`|(?=\([^\)]+=>)|(?=(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))|(?="))?/dgv}]},initialization:{captures:{"1":{name:"keyword.declaration.scala"}},match:/\b(new)\b/dgv},inline:{patterns:[{match:/\b(inline)(?=\p{space}+((?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)|`[^\`]+`)\p{space}*:)/dgv,name:"storage.modifier.other"},{match:/\b(inline)\b(?=(?:[^\n](?!\b(?:val|def|given)\b))*\b(if|match)\b)/dgv,name:"keyword.control.flow.scala"}]},keywords:{patterns:[{match:/\b(return|throw)\b/dgv,name:"keyword.control.flow.jump.scala"},{match:/\b(classOf|isInstanceOf|asInstanceOf)\b/dgv,name:"support.function.type-of.scala"},{match:/\b(else|if|then|do|while|for|yield|match|case)\b/dgv,name:"keyword.control.flow.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(if|while|for|match)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.control.flow.end.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(val)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.declaration.stable.end.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(var)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.declaration.volatile.end.scala"},{captures:{"1":{name:"keyword.declaration.end.scala"},"2":{name:"keyword.declaration.end.scala"},"3":{name:"entity.name.type.declaration"}},match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(?:(new|extension)|([A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?))(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv},{match:/\b(catch|finally|try)\b/dgv,name:"keyword.control.exception.scala"},{match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(try)(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv,name:"keyword.control.exception.end.scala"},{captures:{"1":{name:"keyword.declaration.end.scala"},"2":{name:"entity.name.declaration"}},match:/(?<=^|\n(?!$))\p{space}*(end)\p{space}+(`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+))?(?=\p{space}*(\/\/[^\n]*|\/\*(?![^\n]*\*\/\p{space}*\P{space}[^\n]*)[^\n]*)?(?=$|\n))/dgv},{match:/([\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]|[\\]){3,}/dgv,name:"keyword.operator.scala"},{captures:{"1":{patterns:[{match:/(\|\||&&)/dgv,name:"keyword.operator.logical.scala"},{match:/(!=|==|<=|>=)/dgv,name:"keyword.operator.comparison.scala"},{match:/[^\n][^\n]/dgv,name:"keyword.operator.scala"}]}},match:/((?:[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]|[\\]){2,}|_\*)/dgv},{captures:{"1":{patterns:[{match:/(!)/dgv,name:"keyword.operator.logical.scala"},{match:/(\*|-|\+|\/|%|~)/dgv,name:"keyword.operator.arithmetic.scala"},{match:/(=|<|>)/dgv,name:"keyword.operator.comparison.scala"},{match:/[^\n]/dgv,name:"keyword.operator.scala"}]}},match:/(?<!_)([\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]|\\)/dgv}]},"meta-bounds":{comment:"For themes: Matching view bounds",match:/<%|=:=|<:<|<%<|>:|<:/dgv,name:"meta.bounds.scala"},"meta-brackets":{comment:"For themes: Brackets look nice when colored.",patterns:[{comment:"The punctuation.section.*.begin is needed for return snippet in source bundle",match:/\{/dgv,name:"punctuation.section.block.begin.scala"},{comment:"The punctuation.section.*.end is needed for return snippet in source bundle",match:/\}/dgv,name:"punctuation.section.block.end.scala"},{match:/\{|\}|\(|\)|\[|\]/dgv,name:"meta.bracket.scala"}]},"meta-colons":{comment:"For themes: Matching type colons",patterns:[{match:/(?<!:):(?!:)/dgv,name:"meta.colon.scala"}]},"parameter-list":{patterns:[{captures:{"1":{name:"variable.parameter.scala"},"2":{name:"meta.colon.scala"}},match:/(?<=[^\._\$a-zA-Z0-9])(`[^\`]+`|[_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)\p{space}*(:)\p{space}+/dgv}]},qualifiedClassName:{captures:{"1":{name:"entity.name.class"}},match:/(\b([A-Z][\p{L}\p{M}\p{N}\p{Pc}]*)(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)/dgv},"scala-quoted-or-symbol":{patterns:[{captures:{"1":{name:"keyword.control.flow.staging.scala constant.other.symbol.scala"},"2":{name:"constant.other.symbol.scala"}},match:/*@__PURE__*/ new EmulatedRegExp("(')((?:(?=($E$[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[\\!\\#\\%\\&\\*\\+\\-\\/\\:\\<\\>\\=\\?\\@\\^\\|\\~\\p{Sm}\\p{So}]+)?|[\\!\\#\\%\\&\\*\\+\\-\\/\\:\\<\\>\\=\\?\\@\\^\\|\\~\\p{Sm}\\p{So}]+))\\3))(?!')","dgv",{"useEmulationGroups":true})},{match:/'(?=\p{space}*\{(?!'))/dgv,name:"keyword.control.flow.staging.scala"},{match:/'(?=\p{space}*\[(?!'))/dgv,name:"keyword.control.flow.staging.scala"},{match:/\$(?=\p{space}*\{)/dgv,name:"keyword.control.flow.staging.scala"}]},"script-header":{captures:{"1":{name:"string.unquoted.shebang.scala"}},match:/(?<=^|\n(?!$))#!([^\n]*)(?=$|\n)/dgv,name:"comment.block.shebang.scala"},"singleton-type":{captures:{"1":{name:"keyword.type.scala"}},match:/\.(type)(?![A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[0-9])/dgv},"storage-modifiers":{patterns:[{match:/\b(private\[\P{space}+\]|protected\[\P{space}+\]|private|protected)\b/dgv,name:"storage.modifier.access"},{match:/\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\b/dgv,name:"storage.modifier.other"},{match:/(?<=(?<=^|\n(?!$))|\p{space})\b(transparent|opaque|infix|open|inline)\b(?=[a-z\p{space}]*\b(def|val|var|given|type|class|trait|object|enum)\b)/dgv,name:"storage.modifier.other"}]},"string-interpolation":{patterns:[{match:/\$\$/dgv,name:"constant.character.escape.interpolation.scala"},{captures:{"1":{name:"punctuation.definition.template-expression.begin.scala"}},match:/(\$)([A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\p{Lo}\p{Nl}\p{Ll}0-9]*)/dgv,name:"meta.template.expression.scala"},{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.scala"}},contentName:"meta.embedded.line.scala",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.scala"}},name:"meta.template.expression.scala",patterns:[{include:"#code"}]}]},strings:{patterns:[{begin:/"""/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},end:/"""(?!")/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.triple.scala",patterns:[{match:/\\\\|\\u[0-9A-Fa-f]{4}/dgv,name:"constant.character.escape.scala"}]},{begin:/\b(raw)(""")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(""")(?!")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:/\$[\$"]/dgv,name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:/[^\n]/dgv,name:"string.quoted.triple.interpolated.scala"}]},{begin:/\b([A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)(""")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(""")(?!")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{include:"#string-interpolation"},{match:/\\\\|\\u[0-9A-Fa-f]{4}/dgv,name:"constant.character.escape.scala"},{match:/[^\n]/dgv,name:"string.quoted.triple.interpolated.scala"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.double.scala",patterns:[{match:/\\(?:[btnfr\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})/dgv,name:"constant.character.escape.scala"},{match:/\\[^\n]/dgv,name:"invalid.illegal.unrecognized-string-escape.scala"}]},{begin:/\b(raw)(")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:/\$[\$"]/dgv,name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:/[^\n]/dgv,name:"string.quoted.double.interpolated.scala"}]},{begin:/\b([A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?)(")/dgv,beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:/(")|\$\n|(\$[^\$"_\{A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}])/dgv,endCaptures:{"1":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:/\$[\$"]/dgv,name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:/\\(?:[btnfr\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})/dgv,name:"constant.character.escape.scala"},{match:/\\[^\n]/dgv,name:"invalid.illegal.unrecognized-string-escape.scala"},{match:/[^\n]/dgv,name:"string.quoted.double.interpolated.scala"}]}]},using:{patterns:[{captures:{"1":{name:"keyword.declaration.scala"}},match:/(?<=\()\p{space}*(using)\p{space}/dgv}]},"using-directive":{begin:/(?<=^|\n(?!$))\p{space}*(\/\/>)\p{space}*(using)[^\P{space}\n]+(?:(\P{space}+))?/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.scala"},"2":{name:"keyword.other.import.scala"},"3":{patterns:[{match:/[A-Z\p{Lt}\p{Lu}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|`[^\`]+`|(?:[A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}][A-Z\p{Lt}\p{Lu}_a-z\$\p{Lo}\p{Nl}\p{Ll}0-9]*(?:(?<=_)[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)?|[\!\#\%\&\*\+\-\/\:\<\>\=\?\@\^\|\~\p{Sm}\p{So}]+)/dgv,name:"entity.name.import.scala"},{match:/\./dgv,name:"punctuation.definition.import"}]}},end:/\n/dgv,name:"comment.line.shebang.scala",patterns:[{include:"#constants"},{include:"#strings"},{match:/[^\p{space}\,]+/dgv,name:"string.quoted.double.scala"}]},"xml-doublequotedString":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml",patterns:[{include:"#xml-entity"}]},"xml-embedded-content":{patterns:[{begin:/\{/dgv,captures:{"0":{name:"meta.bracket.scala"}},end:/\}/dgv,name:"meta.source.embedded.scala",patterns:[{include:"#code"}]},{captures:{"1":{name:"entity.other.attribute-name.namespace.xml"},"2":{name:"entity.other.attribute-name.xml"},"3":{name:"punctuation.separator.namespace.xml"},"4":{name:"entity.other.attribute-name.localname.xml"}},match:/ (?:([\-_a-zA-Z0-9]+)((:)))?([_a-zA-Z\-]+)=/dgv},{include:"#xml-doublequotedString"},{include:"#xml-singlequotedString"}]},"xml-entity":{captures:{"1":{name:"punctuation.definition.constant.xml"},"3":{name:"punctuation.definition.constant.xml"}},match:/(&)([\:a-zA-Z_][\:a-zA-Z0-9_\.\-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)/dgv,name:"constant.character.entity.xml"},"xml-literal":{patterns:[{begin:/(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][\-_a-zA-Z0-9\:]*))(?=(\p{space}[^\>]*)?><\/\2>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.xml"},"3":{name:"entity.name.tag.namespace.xml"},"4":{name:"entity.name.tag.xml"},"5":{name:"punctuation.separator.namespace.xml"},"6":{name:"entity.name.tag.localname.xml"}},comment:"We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator",end:/(>(<))\/(?:([\-_a-zA-Z0-9]+)((:)))?([\-_a-zA-Z0-9\:]*[_a-zA-Z0-9])(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"meta.scope.between-tag-pair.xml"},"3":{name:"entity.name.tag.namespace.xml"},"4":{name:"entity.name.tag.xml"},"5":{name:"punctuation.separator.namespace.xml"},"6":{name:"entity.name.tag.localname.xml"},"7":{name:"punctuation.definition.tag.xml"}},name:"meta.tag.no-content.xml",patterns:[{include:"#xml-embedded-content"}]},{begin:/(<\/?)(?:([_a-zA-Z0-9][\-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][\-_a-zA-Z0-9\:]*)(?=[^\>]*?>)/dgv,captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"entity.name.tag.namespace.xml"},"3":{name:"entity.name.tag.xml"},"4":{name:"punctuation.separator.namespace.xml"},"5":{name:"entity.name.tag.localname.xml"}},end:/(\/?>)/dgv,name:"meta.tag.xml",patterns:[{include:"#xml-embedded-content"}]},{include:"#xml-entity"}]},"xml-singlequotedString":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml",patterns:[{include:"#xml-entity"}]}},scopeName:"source.scala",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang
package/dist/scheme.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"Scheme",fileTypes:["scm","ss","sch","rkt"],name:"scheme",patterns:[{include:"#comment"},{include:"#block-comment"},{include:"#sexp"},{include:"#string"},{include:"#language-functions"},{include:"#quote"},{include:"#illegal"}],repository:{"block-comment":{begin:/#\|/dgv,contentName:"comment",end:/\|#/dgv,name:"comment",patterns:[{include:"#block-comment",name:"comment"}]},comment:{begin:/((?<=^|\n(?!$))[ \t]+)?(?=;)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.scheme"}},end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{begin:/;/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.scheme"}},end:/\n/dgv,name:"comment.line.semicolon.scheme"}]},constants:{patterns:[{match:/#[t\|f]/dgv,name:"constant.language.boolean.scheme"},{match:/(?<=[\(\p{space}])((#e|#i)?[0-9]+(\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\p{space}\;\(\)'"\,\[\]])/dgv,name:"constant.numeric.scheme"}]},illegal:{match:/[\(\)\[\]]/dgv,name:"invalid.illegal.parenthesis.scheme"},"language-functions":{patterns:[{match:/(?<=(\p{space}|\(|\[))(do|or|and|else|quasiquote|begin|if|case|set!|cond|let|unquote|define|let\*|unquote-splicing|delay|letrec)(?=(\p{space}|\())/dgv,name:"keyword.control.scheme"},{comment:"\n\t\t\t\t\t\tThese functions run a test, and return a boolean\n\t\t\t\t\t\tanswer.\n\t\t\t\t\t",match:/(?<=(\p{space}|\())(char-alphabetic|char-lower-case|char-numeric|char-ready|char-upper-case|char-whitespace|(?:char|string)(?:-ci)?(?:=|<=?|>=?)|atom|boolean|bound-identifier=|char|complex|identifier|integer|symbol|free-identifier=|inexact|eof-object|exact|list|(?:input|output)-port|pair|real|rational|zero|vector|negative|odd|null|string|eq|equal|eqv|even|number|positive|procedure)(\?)(?=(\p{space}|\())/dgv,name:"support.function.boolean-test.scheme"},{comment:"\n\t\t\t\t\t\tThese functions change one type into another.\n\t\t\t\t\t",match:/(?<=(\p{space}|\())(char->integer|exact->inexact|inexact->exact|integer->char|symbol->string|list->vector|list->string|identifier->symbol|vector->list|string->list|string->number|string->symbol|number->string)(?=(\p{space}|\())/dgv,name:"support.function.convert-type.scheme"},{comment:"\n\t\t\t\t\t\tThese functions are potentially dangerous because\n\t\t\t\t\t\tthey have side-effects which could affect other\n\t\t\t\t\t\tparts of the program.\n\t\t\t\t\t",match:/(?<=(\p{space}|\())(set-(?:car|cdr)|(?:vector|string)-(?:fill|set))(!)(?=(\p{space}|\())/dgv,name:"support.function.with-side-effects.scheme"},{comment:"\n\t\t\t\t\t\t+, -, *, /, =, >, etc. \n\t\t\t\t\t",match:/(?<=(\p{space}|\())(>=?|<=?|=|[\*\/\+\-])(?=(\p{space}|\())/dgv,name:"keyword.operator.arithmetic.scheme"},{match:/(?<=(\p{space}|\())(append|apply|approximate|call-with-current-continuation|call\/cc|catch|construct-identifier|define-syntax|display|foo|for-each|force|format|cd|gen-counter|gen-loser|generate-identifier|last-pair|length|let-syntax|letrec-syntax|list|list-ref|list-tail|load|log|macro|magnitude|map|map-streams|max|member|memq|memv|min|newline|nil|not|peek-char|rationalize|read|read-char|return|reverse|sequence|substring|syntax|syntax-rules|transcript-off|transcript-on|truncate|unwrap-syntax|values-list|write|write-char|cons|c(a|d){1,4}r|abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|cos|floor|round|sin|sqrt|tan|(?:real|imag)-part|numerator|denominatormodulo|exp|expt|remainder|quotient|lcm|call-with-(?:input|output)-file|(?:close|current)-(?:input|output)-port|with-(?:input|output)-from-file|open-(?:input|output)-file|char-(?:downcase|upcase|ready)|make-(?:polar|promise|rectangular|string|vector)string(?:-(?:append|copy|length|ref))?|vector(?:-length|-ref))(?=(\p{space}|\())/dgv,name:"support.function.general.scheme"}]},quote:{comment:"\n\t\t\t\tWe need to be able to quote any kind of item, which creates\n\t\t\t\ta tiny bit of complexity in our grammar. It is hopefully\n\t\t\t\tnot overwhelming complexity.\n\t\t\t\t\n\t\t\t\tNote: the first two matches are special cases. quoted\n\t\t\t\tsymbols, and quoted empty lists are considered constant.other\n\t\t\t\t\n\t\t\t",patterns:[{captures:{"1":{name:"punctuation.section.quoted.symbol.scheme"}},match:/(')\p{space}*([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*)/dgv,name:"constant.other.symbol.scheme"},{captures:{"1":{name:"punctuation.section.quoted.empty-list.scheme"},"2":{name:"meta.expression.scheme"},"3":{name:"punctuation.section.expression.begin.scheme"},"4":{name:"punctuation.section.expression.end.scheme"}},match:/(')\p{space}*((\()\p{space}*(\)))/dgv,name:"constant.other.empty-list.schem"},{begin:/(')\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.section.quoted.scheme"}},comment:"quoted double-quoted string or s-expression",end:/(?=[\p{space}\(\)])|(?<=\n)/dgv,name:"string.other.quoted-object.scheme",patterns:[{include:"#quoted"}]}]},"quote-sexp":{begin:/(?<=\()\p{space}*(quote)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.quote.scheme"}},comment:"\n\t\t\t\tSomething quoted with (quote «thing»). In this case «thing»\n\t\t\t\twill not be evaluated, so we are considering it a string.\n\t\t\t",contentName:"string.other.quote.scheme",end:/(?=[\p{space}\)])|(?<=\n)/dgv,patterns:[{include:"#quoted"}]},quoted:{patterns:[{include:"#string"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.section.expression.begin.scheme"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.section.expression.end.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#quoted"}]},{include:"#quote"},{include:"#illegal"}]},sexp:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.section.expression.begin.scheme"}},end:/(\))(\n)?/dgv,endCaptures:{"1":{name:"punctuation.section.expression.end.scheme"},"2":{name:"meta.after-expression.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#comment"},{begin:/(?<=\()(define)\p{space}+(\()([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*)((\p{space}+([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*|[\._]))*)\p{space}*(\))/dgv,captures:{"1":{name:"keyword.control.scheme"},"2":{name:"punctuation.definition.function.scheme"},"3":{name:"entity.name.function.scheme"},"4":{name:"variable.parameter.function.scheme"},"7":{name:"punctuation.definition.function.scheme"}},end:/(?=\))/dgv,name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:/(?<=\()(lambda)\p{space}+(\()((?:([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*|[\._])\p{space}+)*(?:([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*|[\._]))?)(\))/dgv,captures:{"1":{name:"keyword.control.scheme"},"2":{name:"punctuation.definition.variable.scheme"},"3":{name:"variable.parameter.scheme"},"6":{name:"punctuation.definition.variable.scheme"}},comment:"\n\t\t\t\t\t\tNot sure this one is quite correct. That \\s* is\n\t\t\t\t\t\tparticularly troubling\n\t\t\t\t\t",end:/(?=\))/dgv,name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:/(?<=\()(define)\p{space}([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*)\p{space}*[^\n]*?/dgv,captures:{"1":{name:"keyword.control.scheme"},"2":{name:"variable.other.scheme"}},end:/(?=\))/dgv,name:"meta.declaration.variable.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{include:"#quote-sexp"},{include:"#quote"},{include:"#language-functions"},{include:"#string"},{include:"#constants"},{match:/(?<=[\(\p{space}])(#\\)(space|newline|tab)(?=[\p{space}\)])/dgv,name:"constant.character.named.scheme"},{match:/(?<=[\(\p{space}])(#\\)x[0-9A-F]{2,4}(?=[\p{space}\)])/dgv,name:"constant.character.hex-literal.scheme"},{match:/(?<=[\(\p{space}])(#\\)[^\n](?=[\p{space}\)])/dgv,name:"constant.character.escape.scheme"},{comment:"\n\t\t\t\t\t\tthe . in (a . b) which conses together two elements\n\t\t\t\t\t\ta and b. (a b c) == (a . (b . (c . nil)))\n\t\t\t\t\t",match:/(?<=[ \(\)])\.(?=[ \(\)])/dgv,name:"punctuation.separator.cons.scheme"},{include:"#sexp"},{include:"#illegal"}]},string:{begin:/(")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.scheme"}},end:/(")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.scheme"}},name:"string.quoted.double.scheme",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.scheme"}]}},scopeName:"source.scheme",embeddedLangs:undefined,aliases:undefined})
3
+ const lang = Object.freeze({displayName:"Scheme",fileTypes:["scm","ss","sch","rkt"],name:"scheme",patterns:[{include:"#comment"},{include:"#block-comment"},{include:"#sexp"},{include:"#string"},{include:"#language-functions"},{include:"#quote"},{include:"#illegal"}],repository:{"block-comment":{begin:/#\|/dgv,contentName:"comment",end:/\|#/dgv,name:"comment",patterns:[{include:"#block-comment",name:"comment"}]},comment:{begin:/((?<=^|\n(?!$))[ \t]+)?(?=;)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.scheme"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),patterns:[{begin:/;/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.scheme"}},end:/\n/dgv,name:"comment.line.semicolon.scheme"}]},constants:{patterns:[{match:/#[t\|f]/dgv,name:"constant.language.boolean.scheme"},{match:/(?<=[\(\p{space}])((#e|#i)?[0-9]+(\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\p{space}\;\(\)'"\,\[\]])/dgv,name:"constant.numeric.scheme"}]},illegal:{match:/[\(\)\[\]]/dgv,name:"invalid.illegal.parenthesis.scheme"},"language-functions":{patterns:[{match:/(?<=(\p{space}|\(|\[))(do|or|and|else|quasiquote|begin|if|case|set!|cond|let|unquote|define|let\*|unquote-splicing|delay|letrec)(?=(\p{space}|\())/dgv,name:"keyword.control.scheme"},{comment:"\n\t\t\t\t\t\tThese functions run a test, and return a boolean\n\t\t\t\t\t\tanswer.\n\t\t\t\t\t",match:/(?<=(\p{space}|\())(char-alphabetic|char-lower-case|char-numeric|char-ready|char-upper-case|char-whitespace|(?:char|string)(?:-ci)?(?:=|<=?|>=?)|atom|boolean|bound-identifier=|char|complex|identifier|integer|symbol|free-identifier=|inexact|eof-object|exact|list|(?:input|output)-port|pair|real|rational|zero|vector|negative|odd|null|string|eq|equal|eqv|even|number|positive|procedure)(\?)(?=(\p{space}|\())/dgv,name:"support.function.boolean-test.scheme"},{comment:"\n\t\t\t\t\t\tThese functions change one type into another.\n\t\t\t\t\t",match:/(?<=(\p{space}|\())(char->integer|exact->inexact|inexact->exact|integer->char|symbol->string|list->vector|list->string|identifier->symbol|vector->list|string->list|string->number|string->symbol|number->string)(?=(\p{space}|\())/dgv,name:"support.function.convert-type.scheme"},{comment:"\n\t\t\t\t\t\tThese functions are potentially dangerous because\n\t\t\t\t\t\tthey have side-effects which could affect other\n\t\t\t\t\t\tparts of the program.\n\t\t\t\t\t",match:/(?<=(\p{space}|\())(set-(?:car|cdr)|(?:vector|string)-(?:fill|set))(!)(?=(\p{space}|\())/dgv,name:"support.function.with-side-effects.scheme"},{comment:"\n\t\t\t\t\t\t+, -, *, /, =, >, etc. \n\t\t\t\t\t",match:/(?<=(\p{space}|\())(>=?|<=?|=|[\*\/\+\-])(?=(\p{space}|\())/dgv,name:"keyword.operator.arithmetic.scheme"},{match:/(?<=(\p{space}|\())(append|apply|approximate|call-with-current-continuation|call\/cc|catch|construct-identifier|define-syntax|display|foo|for-each|force|format|cd|gen-counter|gen-loser|generate-identifier|last-pair|length|let-syntax|letrec-syntax|list|list-ref|list-tail|load|log|macro|magnitude|map|map-streams|max|member|memq|memv|min|newline|nil|not|peek-char|rationalize|read|read-char|return|reverse|sequence|substring|syntax|syntax-rules|transcript-off|transcript-on|truncate|unwrap-syntax|values-list|write|write-char|cons|c(a|d){1,4}r|abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|cos|floor|round|sin|sqrt|tan|(?:real|imag)-part|numerator|denominatormodulo|exp|expt|remainder|quotient|lcm|call-with-(?:input|output)-file|(?:close|current)-(?:input|output)-port|with-(?:input|output)-from-file|open-(?:input|output)-file|char-(?:downcase|upcase|ready)|make-(?:polar|promise|rectangular|string|vector)string(?:-(?:append|copy|length|ref))?|vector(?:-length|-ref))(?=(\p{space}|\())/dgv,name:"support.function.general.scheme"}]},quote:{comment:"\n\t\t\t\tWe need to be able to quote any kind of item, which creates\n\t\t\t\ta tiny bit of complexity in our grammar. It is hopefully\n\t\t\t\tnot overwhelming complexity.\n\t\t\t\t\n\t\t\t\tNote: the first two matches are special cases. quoted\n\t\t\t\tsymbols, and quoted empty lists are considered constant.other\n\t\t\t\t\n\t\t\t",patterns:[{captures:{"1":{name:"punctuation.section.quoted.symbol.scheme"}},match:/(')\p{space}*([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*)/dgv,name:"constant.other.symbol.scheme"},{captures:{"1":{name:"punctuation.section.quoted.empty-list.scheme"},"2":{name:"meta.expression.scheme"},"3":{name:"punctuation.section.expression.begin.scheme"},"4":{name:"punctuation.section.expression.end.scheme"}},match:/(')\p{space}*((\()\p{space}*(\)))/dgv,name:"constant.other.empty-list.schem"},{begin:/(')\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.section.quoted.scheme"}},comment:"quoted double-quoted string or s-expression",end:/(?=[\p{space}\(\)])|(?<=\n)/dgv,name:"string.other.quoted-object.scheme",patterns:[{include:"#quoted"}]}]},"quote-sexp":{begin:/(?<=\()\p{space}*(quote)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.quote.scheme"}},comment:"\n\t\t\t\tSomething quoted with (quote «thing»). In this case «thing»\n\t\t\t\twill not be evaluated, so we are considering it a string.\n\t\t\t",contentName:"string.other.quote.scheme",end:/(?=[\p{space}\)])|(?<=\n)/dgv,patterns:[{include:"#quoted"}]},quoted:{patterns:[{include:"#string"},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.section.expression.begin.scheme"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.section.expression.end.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#quoted"}]},{include:"#quote"},{include:"#illegal"}]},sexp:{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.section.expression.begin.scheme"}},end:/(\))(\n)?/dgv,endCaptures:{"1":{name:"punctuation.section.expression.end.scheme"},"2":{name:"meta.after-expression.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#comment"},{begin:/(?<=\()(define)\p{space}+(\()([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*)((\p{space}+([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*|[\._]))*)\p{space}*(\))/dgv,captures:{"1":{name:"keyword.control.scheme"},"2":{name:"punctuation.definition.function.scheme"},"3":{name:"entity.name.function.scheme"},"4":{name:"variable.parameter.function.scheme"},"7":{name:"punctuation.definition.function.scheme"}},end:/(?=\))/dgv,name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:/(?<=\()(lambda)\p{space}+(\()((?:([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*|[\._])\p{space}+)*(?:([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*|[\._]))?)(\))/dgv,captures:{"1":{name:"keyword.control.scheme"},"2":{name:"punctuation.definition.variable.scheme"},"3":{name:"variable.parameter.scheme"},"6":{name:"punctuation.definition.variable.scheme"}},comment:"\n\t\t\t\t\t\tNot sure this one is quite correct. That \\s* is\n\t\t\t\t\t\tparticularly troubling\n\t\t\t\t\t",end:/(?=\))/dgv,name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:/(?<=\()(define)\p{space}([\p{Alpha}\p{Nd}][\p{Alpha}\p{Nd}\!\$\%\&\*\+-\.\/\:\<\=\>\?\@\^_\~]*)\p{space}*[^\n]*?/dgv,captures:{"1":{name:"keyword.control.scheme"},"2":{name:"variable.other.scheme"}},end:/(?=\))/dgv,name:"meta.declaration.variable.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{include:"#quote-sexp"},{include:"#quote"},{include:"#language-functions"},{include:"#string"},{include:"#constants"},{match:/(?<=[\(\p{space}])(#\\)(space|newline|tab)(?=[\p{space}\)])/dgv,name:"constant.character.named.scheme"},{match:/(?<=[\(\p{space}])(#\\)x[0-9A-F]{2,4}(?=[\p{space}\)])/dgv,name:"constant.character.hex-literal.scheme"},{match:/(?<=[\(\p{space}])(#\\)[^\n](?=[\p{space}\)])/dgv,name:"constant.character.escape.scheme"},{comment:"\n\t\t\t\t\t\tthe . in (a . b) which conses together two elements\n\t\t\t\t\t\ta and b. (a b c) == (a . (b . (c . nil)))\n\t\t\t\t\t",match:/(?<=[ \(\)])\.(?=[ \(\)])/dgv,name:"punctuation.separator.cons.scheme"},{include:"#sexp"},{include:"#illegal"}]},string:{begin:/(")/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.scheme"}},end:/(")/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.scheme"}},name:"string.quoted.double.scheme",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.scheme"}]}},scopeName:"source.scheme",embeddedLangs:undefined,aliases:undefined})
4
4
 
5
5
  export default [
6
6
  lang