@shikijs/langs-precompiled 1.26.1 → 1.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abap.mjs +1 -1
- package/dist/actionscript-3.mjs +1 -1
- package/dist/angular-expression.mjs +1 -1
- package/dist/angular-let-declaration.mjs +1 -1
- package/dist/angular-ts.mjs +1 -1
- package/dist/apex.mjs +1 -1
- package/dist/apl.mjs +1 -1
- package/dist/applescript.mjs +1 -1
- package/dist/ara.mjs +1 -1
- package/dist/asm.mjs +1 -1
- package/dist/astro.mjs +1 -1
- package/dist/awk.mjs +1 -1
- package/dist/ballerina.mjs +1 -1
- package/dist/beancount.mjs +1 -1
- package/dist/berry.mjs +1 -1
- package/dist/bicep.mjs +1 -1
- package/dist/blade.mjs +1 -1
- package/dist/c.mjs +1 -1
- package/dist/cadence.mjs +1 -1
- package/dist/cairo.mjs +1 -1
- package/dist/clojure.mjs +1 -1
- package/dist/cobol.mjs +1 -1
- package/dist/codeql.mjs +2 -6
- package/dist/coffee.mjs +1 -1
- package/dist/common-lisp.mjs +1 -1
- package/dist/coq.mjs +1 -1
- package/dist/cpp-macro.mjs +1 -1
- package/dist/cpp.mjs +1 -1
- package/dist/crystal.mjs +1 -1
- package/dist/css.mjs +1 -1
- package/dist/cue.mjs +1 -1
- package/dist/d.mjs +1 -1
- package/dist/dart.mjs +1 -1
- package/dist/dax.mjs +1 -1
- package/dist/dotenv.mjs +1 -1
- package/dist/dream-maker.mjs +1 -1
- package/dist/elm.mjs +1 -1
- package/dist/emacs-lisp.mjs +1 -1
- package/dist/fish.mjs +1 -1
- package/dist/fluent.mjs +1 -1
- package/dist/fortran-free-form.mjs +1 -1
- package/dist/fsharp.mjs +1 -1
- package/dist/gdresource.mjs +1 -1
- package/dist/gdscript.mjs +1 -1
- package/dist/genie.mjs +1 -1
- package/dist/gleam.mjs +1 -1
- package/dist/glimmer-js.mjs +1 -1
- package/dist/glimmer-ts.mjs +1 -1
- package/dist/gnuplot.mjs +1 -1
- package/dist/go.mjs +1 -1
- package/dist/graphql.mjs +1 -1
- package/dist/groovy.mjs +1 -1
- package/dist/hack.mjs +10 -2
- package/dist/handlebars.mjs +1 -1
- package/dist/haskell.mjs +1 -1
- package/dist/haxe.mjs +1 -1
- package/dist/hcl.mjs +1 -1
- package/dist/hlsl.mjs +1 -1
- package/dist/html.mjs +1 -1
- package/dist/http.mjs +1 -1
- package/dist/hy.mjs +1 -1
- package/dist/imba.mjs +1 -1
- package/dist/java.mjs +1 -1
- package/dist/javascript.mjs +1 -1
- package/dist/jinja.mjs +1 -1
- package/dist/jison.mjs +1 -1
- package/dist/jssm.mjs +1 -1
- package/dist/jsx.mjs +1 -1
- package/dist/julia.mjs +1 -1
- package/dist/kusto.mjs +1 -1
- package/dist/lean.mjs +1 -1
- package/dist/less.mjs +1 -1
- package/dist/liquid.mjs +1 -1
- package/dist/log.mjs +1 -1
- package/dist/lua.mjs +1 -1
- package/dist/luau.mjs +1 -1
- package/dist/markdown.mjs +1 -1
- package/dist/matlab.mjs +1 -1
- package/dist/mdc.mjs +1 -1
- package/dist/mdx.mjs +1 -1
- package/dist/mermaid.mjs +1 -1
- package/dist/mipsasm.mjs +1 -1
- package/dist/mojo.mjs +1 -1
- package/dist/move.mjs +1 -1
- package/dist/nextflow.mjs +1 -1
- package/dist/nginx.mjs +1 -1
- package/dist/nim.mjs +1 -1
- package/dist/nix.mjs +1 -1
- package/dist/nushell.mjs +1 -1
- package/dist/objective-c.mjs +1 -1
- package/dist/objective-cpp.mjs +1 -1
- package/dist/ocaml.mjs +1 -1
- package/dist/perl.mjs +1 -1
- package/dist/php.mjs +1 -1
- package/dist/polar.mjs +1 -1
- package/dist/postcss.mjs +1 -1
- package/dist/powershell.mjs +1 -1
- package/dist/prisma.mjs +1 -1
- package/dist/prolog.mjs +1 -1
- package/dist/proto.mjs +1 -1
- package/dist/pug.mjs +1 -1
- package/dist/puppet.mjs +1 -1
- package/dist/python.mjs +1 -1
- package/dist/r.mjs +1 -1
- package/dist/racket.mjs +1 -1
- package/dist/reg.mjs +1 -1
- package/dist/regexp.mjs +1 -1
- package/dist/rel.mjs +1 -1
- package/dist/riscv.mjs +1 -1
- package/dist/ruby.mjs +1 -1
- package/dist/sas.mjs +1 -1
- package/dist/sass.mjs +2 -4
- package/dist/scala.mjs +1 -1
- package/dist/scheme.mjs +1 -1
- package/dist/shaderlab.mjs +1 -1
- package/dist/shellscript.mjs +1 -1
- package/dist/smalltalk.mjs +1 -1
- package/dist/solidity.mjs +1 -1
- package/dist/ssh-config.mjs +1 -1
- package/dist/stata.mjs +1 -1
- package/dist/stylus.mjs +1 -1
- package/dist/svelte.mjs +1 -1
- package/dist/system-verilog.mjs +1 -1
- package/dist/systemd.mjs +1 -1
- package/dist/tcl.mjs +1 -1
- package/dist/templ.mjs +1 -1
- package/dist/terraform.mjs +1 -1
- package/dist/tex.mjs +1 -1
- package/dist/toml.mjs +1 -1
- package/dist/tsx.mjs +1 -1
- package/dist/turtle.mjs +1 -1
- package/dist/twig.mjs +1 -1
- package/dist/typescript.mjs +1 -1
- package/dist/typespec.mjs +1 -1
- package/dist/typst.mjs +1 -1
- package/dist/v.mjs +1 -1
- package/dist/vala.mjs +1 -1
- package/dist/vb.mjs +1 -1
- package/dist/verilog.mjs +1 -1
- package/dist/vhdl.mjs +1 -1
- package/dist/viml.mjs +1 -1
- package/dist/vue-html.mjs +1 -1
- package/dist/vue.mjs +1 -1
- package/dist/vyper.mjs +1 -1
- package/dist/wasm.mjs +1 -1
- package/dist/wgsl.mjs +1 -1
- package/dist/wikitext.mjs +1 -1
- package/dist/wolfram.mjs +1 -1
- package/dist/xml.mjs +1 -1
- package/dist/yaml.mjs +1 -1
- package/dist/zenscript.mjs +1 -1
- package/dist/zig.mjs +1 -1
- package/package.json +4 -4
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((\p{Nd}[0-9_]*(\.\p{Nd}[0-9_]*)?)([eE](\+|-)?\p{Nd}[0-9_]*)?|\p{Nd}[0-9_]*)[LlFfDd]?\b/dgv,name:"constant.numeric.scala"},{match:/(\.\p{Nd}[0-9_]*)([eE](\+|-)?\p{Nd}[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}]+)?|\p{Nd})/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_\.\-]*|#\p{Nd}+|#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: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})
|
|
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)
|
|
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})
|
|
4
4
|
|
|
5
5
|
export default [
|
|
6
6
|
lang
|
package/dist/shaderlab.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import hlsl from './hlsl.mjs'
|
|
2
2
|
|
|
3
|
-
const lang = Object.freeze({displayName:"ShaderLab",name:"shaderlab",patterns:[{begin:/\/\//dgv,end:/(?=$|\n)/dgv,name:"comment.line.double-slash.shaderlab"},{match:/\b(?:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\b/dgiv,name:"support.type.basic.shaderlab"},{include:"#numbers"},{match:/\b(?:Shader|Properties|SubShader|Pass|Category)\b/dgiv,name:"storage.type.structure.shaderlab"},{match:/\b(?:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\b/dgiv,name:"support.type.propertyname.shaderlab"},{match:/\b(?:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\b/dgiv,name:"support.constant.property-value.shaderlab"},{match:/\b(?:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\b/dgiv,name:"support.constant.property-value.comparisonfunction.shaderlab"},{match:/\b(?:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\b/dgiv,name:"support.constant.property-value.stenciloperation.shaderlab"},{match:/\b(?:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\b/dgiv,name:"support.constant.property-value.texturecombiners.shaderlab"},{match:/\b(?:Global|Linear|Exp2|Exp)\b/dgiv,name:"support.constant.property-value.fog.shaderlab"},{match:/\b(?:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\b/dgiv,name:"support.constant.property-value.bindchannels.shaderlab"},{match:/\b(?:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\b/dgiv,name:"support.constant.property-value.blendoperations.shaderlab"},{match:/\b(?:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\b/dgiv,name:"support.constant.property-value.blendfactors.shaderlab"},{match:/\[([a-zA-Z_][
|
|
3
|
+
const lang = Object.freeze({displayName:"ShaderLab",name:"shaderlab",patterns:[{begin:/\/\//dgv,end:/(?=$|\n)/dgv,name:"comment.line.double-slash.shaderlab"},{match:/\b(?:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\b/dgiv,name:"support.type.basic.shaderlab"},{include:"#numbers"},{match:/\b(?:Shader|Properties|SubShader|Pass|Category)\b/dgiv,name:"storage.type.structure.shaderlab"},{match:/\b(?:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\b/dgiv,name:"support.type.propertyname.shaderlab"},{match:/\b(?:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\b/dgiv,name:"support.constant.property-value.shaderlab"},{match:/\b(?:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\b/dgiv,name:"support.constant.property-value.comparisonfunction.shaderlab"},{match:/\b(?:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\b/dgiv,name:"support.constant.property-value.stenciloperation.shaderlab"},{match:/\b(?:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\b/dgiv,name:"support.constant.property-value.texturecombiners.shaderlab"},{match:/\b(?:Global|Linear|Exp2|Exp)\b/dgiv,name:"support.constant.property-value.fog.shaderlab"},{match:/\b(?:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\b/dgiv,name:"support.constant.property-value.bindchannels.shaderlab"},{match:/\b(?:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\b/dgiv,name:"support.constant.property-value.blendoperations.shaderlab"},{match:/\b(?:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\b/dgiv,name:"support.constant.property-value.blendfactors.shaderlab"},{match:/\[([a-zA-Z_][a-zA-Z0-9_]*)\](?!\p{space}*[a-zA-Z_][a-zA-Z0-9_]*\p{space}*\(")/dgv,name:"support.variable.reference.shaderlab"},{begin:/(\[)/dgv,end:/(\])/dgv,name:"meta.attribute.shaderlab",patterns:[{match:/([a-zA-Z]+)\b/dgvy,name:"support.type.attributename.shaderlab"},{include:"#numbers"}]},{match:/\b([a-zA-Z_][a-zA-Z0-9_]*)\p{space}*\(/dgv,name:"support.variable.declaration.shaderlab"},{begin:/\b(CGPROGRAM|CGINCLUDE)\b/dgv,beginCaptures:{"1":{name:"keyword.other"}},end:/\b(ENDCG)\b/dgv,endCaptures:{"1":{name:"keyword.other"}},name:"meta.cgblock",patterns:[{include:"#hlsl-embedded"}]},{begin:/\b(HLSLPROGRAM|HLSLINCLUDE)\b/dgv,beginCaptures:{"1":{name:"keyword.other"}},end:/\b(ENDHLSL)\b/dgv,endCaptures:{"1":{name:"keyword.other"}},name:"meta.hlslblock",patterns:[{include:"#hlsl-embedded"}]},{begin:/"/dgv,end:/"/dgv,name:"string.quoted.double.shaderlab"}],repository:{"hlsl-embedded":{patterns:[{include:"source.hlsl"},{match:/\b(fixed([1-4](x[1-4])?)?)\b/dgv,name:"storage.type.basic.shaderlab"},{match:/\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\b/dgv,name:"support.variable.transformations.shaderlab"},{match:/\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\b/dgv,name:"support.variable.camera.shaderlab"},{match:/\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\b/dgv,name:"support.variable.time.shaderlab"},{match:/\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\b/dgv,name:"support.variable.lighting.shaderlab"},{match:/\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\b/dgv,name:"support.variable.fog.shaderlab"},{match:/\b(unity_LODFade)\b/dgv,name:"support.variable.various.shaderlab"},{match:/\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\b/dgv,name:"support.variable.preprocessor.targetplatform.shaderlab"},{match:/\b(SHADER_TARGET)\b/dgv,name:"support.variable.preprocessor.targetmodel.shaderlab"},{match:/\b(UNITY_VERSION)\b/dgv,name:"support.variable.preprocessor.unityversion.shaderlab"},{match:/\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\b/dgv,name:"support.variable.preprocessor.platformdifference.shaderlab"},{match:/\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\b/dgv,name:"support.variable.preprocessor.texture2D.shaderlab"},{match:/\b(appdata_base|appdata_tan|appdata_full|appdata_img)\b/dgv,name:"support.class.structures.shaderlab"},{match:/\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\b/dgv,name:"support.class.surface.shaderlab"}]},numbers:{patterns:[{match:/\b([0-9]+\.?[0-9]*)\b/dgv,name:"constant.numeric.shaderlab"}]}},scopeName:"source.shaderlab",embeddedLangs:["hlsl"],aliases:["shader"]})
|
|
4
4
|
|
|
5
5
|
export default [
|
|
6
6
|
...hlsl,
|
package/dist/shellscript.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EmulatedRegExp } from 'oniguruma-to-es'
|
|
2
2
|
|
|
3
|
-
const lang = Object.freeze({displayName:"Shell",name:"shellscript",patterns:[{include:"#initial_context"}],repository:{alias_statement:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(alias)(?:(?=($E$[ \\t]*))\\3)((?:((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])-[\\p{L}\\p{M}\\p{N}\\p{Pc}]+\\b)(?:(?=($E$[ \\t]*))\\6))*)(?:(?=($E$[ \\t]*))\\7)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(\\[)((?:(?:(?:\\$?(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}])|@)|\\*)|(-?\\p{Nd}+)))(\\]))?(?:(?:(=)|(\\+=))|(-=))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"storage.type.alias.shell"},"2":{patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])-[\p{L}\p{M}\p{N}\p{Pc}]+\b/dgv,name:"string.unquoted.argument.shell constant.other.option.shell"}]},"3":{name:"string.unquoted.argument.shell constant.other.option.shell"},"4":{name:"variable.other.assignment.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"variable.other.assignment.shell"},"7":{name:"constant.numeric.shell constant.numeric.integer.shell"},"8":{name:"punctuation.definition.array.access.shell"},"9":{name:"keyword.operator.assignment.shell"},"10":{name:"keyword.operator.assignment.compound.shell"},"11":{name:"keyword.operator.assignment.compound.shell"}},end:/(?:(?= |\t|(?=$|\n))|(?:(?:(?:(;)|(&&))|(\|\|))|(&)))/dgv,endCaptures:{"1":{name:"punctuation.terminator.statement.semicolon.shell"},"2":{name:"punctuation.separator.statement.and.shell"},"3":{name:"punctuation.separator.statement.or.shell"},"4":{name:"punctuation.separator.statement.background.shell"}},name:"meta.expression.assignment.alias.shell",patterns:[{include:"#normal_context"}]},argument:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]+))\\1)(?!(?:&|\\||\\(|\\[|#|\\n|(?=$|\\n)|;))","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?= |\t|;|\||&|(?=$|\n)|\n|\)|`)/dgv,endCaptures:{},name:"meta.argument.shell",patterns:[{include:"#argument_context"},{include:"#line_continuation"}]},argument_context:{patterns:[{captures:{"1":{name:"string.unquoted.argument.shell",patterns:[{match:/\*/dgv,name:"variable.language.special.wildcard.shell"},{include:"#variable"},{include:"#numeric_literal"},{captures:{"1":{name:"constant.language.$1.shell"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\b(?:true|false)\b)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv}]}},match:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)([^ \\t\\n\\>\\&\\;\\<\\>\\(\\)\\$\\`\\\\\"'\\<\\|]+(?!>))","dgv",{"useEmulationGroups":true})},{include:"#normal_context"}]},arithmetic_double:{patterns:[{begin:/\(\(/dgv,beginCaptures:{"0":{name:"punctuation.section.arithmetic.double.shell"}},end:/\)\p{space}*\)/dgv,endCaptures:{"0":{name:"punctuation.section.arithmetic.double.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},arithmetic_no_dollar:{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.arithmetic.single.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.arithmetic.single.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},array_access_inline:{captures:{"1":{name:"punctuation.section.array.shell"},"2":{patterns:[{include:"#special_expansion"},{include:"#string"},{include:"#variable"}]},"3":{name:"punctuation.section.array.shell"}},match:/(\[)([^\[\]]+)(\])/dgv},array_value:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(\\[)((?:(?:(?:\\$?(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}])|@)|\\*)|(-?\\p{Nd}+)))(\\]))?(?:(?:(=)|(\\+=))|(-=))(?:(?=($E$[ \\t]*))\\10)(\\()","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"variable.other.assignment.shell"},"2":{name:"punctuation.definition.array.access.shell"},"3":{name:"variable.other.assignment.shell"},"4":{name:"constant.numeric.shell constant.numeric.integer.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"},"9":{name:"punctuation.definition.array.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.array.shell"}},patterns:[{include:"#comment"},{captures:{"1":{name:"variable.other.assignment.array.shell entity.other.attribute-name.shell"},"2":{name:"keyword.operator.assignment.shell punctuation.definition.assignment.shell"}},match:/((?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}]))(=)/dgv},{captures:{"1":{name:"punctuation.definition.bracket.named-array.shell"},"2":{name:"string.unquoted.shell entity.other.attribute-name.bracket.shell"},"3":{name:"punctuation.definition.bracket.named-array.shell"},"4":{name:"punctuation.definition.assignment.shell"}},match:/(\[)([^\n]+?)(\])(=)/dgv},{include:"#normal_context"},{include:"#simple_unquoted"}]},assignment_statement:{patterns:[{include:"#array_value"},{include:"#modified_assignment_statement"},{include:"#normal_assignment_statement"}]},basic_command_name:{captures:{"1":{name:"storage.modifier.$1.shell"},"2":{name:"entity.name.function.call.shell entity.name.command.shell",patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:continue|return|break)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"keyword.control.$0.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\.)(?!\/)(?![\p{L}\p{M}\p{N}\p{Pc}])(?!-)/dgv,name:"support.function.builtin.shell"},{include:"#variable"}]}},match:/(?!(?:!|&|\||\(|\)|\{|\[|<|>|#|\n|(?=$|\n)|;|[ \t]))(?!nocorrect |nocorrect\t|nocorrect(?=$|\n)|readonly |readonly\t|readonly(?=$|\n)|function |function\t|function(?=$|\n)|foreach |foreach\t|foreach(?=$|\n)|coproc |coproc\t|coproc(?=$|\n)|logout |logout\t|logout(?=$|\n)|export |export\t|export(?=$|\n)|select |select\t|select(?=$|\n)|repeat |repeat\t|repeat(?=$|\n)|pushd |pushd\t|pushd(?=$|\n)|until |until\t|until(?=$|\n)|while |while\t|while(?=$|\n)|local |local\t|local(?=$|\n)|case |case\t|case(?=$|\n)|done |done\t|done(?=$|\n)|elif |elif\t|elif(?=$|\n)|else |else\t|else(?=$|\n)|esac |esac\t|esac(?=$|\n)|popd |popd\t|popd(?=$|\n)|then |then\t|then(?=$|\n)|time |time\t|time(?=$|\n)|for |for\t|for(?=$|\n)|end |end\t|end(?=$|\n)|fi |fi\t|fi(?=$|\n)|do |do\t|do(?=$|\n)|in |in\t|in(?=$|\n)|if |if\t|if(?=$|\n))(?:((?<=(?<=^|\n(?!$))|;|&|[ \t])(?:readonly|declare|typeset|export|local)(?=[ \t]|;|&|(?=$|\n)))|((?!"|'|\\\n?(?=$|\n))[^\!'"\<\> \t\n\r]+?))(?:(?= |\t)|(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\))/dgv,name:"meta.statement.command.name.basic.shell"},block_comment:{begin:new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)(/\\*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.comment.begin.shell"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.shell"}},name:"comment.block.shell"},boolean:{match:/\b(?:true|false)\b/dgv,name:"constant.language.$0.shell"},case_statement:{begin:new EmulatedRegExp("(\\bcase\\b)(?:(?=($E$[ \\t]*))\\2)([^\\n]+?)(?:(?=($E$[ \\t]*))\\4)(\\bin\\b)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.case.shell"},"2":{patterns:[{include:"#initial_context"}]},"3":{name:"keyword.control.in.shell"}},end:/\besac\b/dgv,endCaptures:{"0":{name:"keyword.control.esac.shell"}},name:"meta.case.shell",patterns:[{include:"#comment"},{captures:{"1":{name:"keyword.operator.pattern.case.default.shell"}},match:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(\\* *\\))","dgv",{"useEmulationGroups":true})},{begin:new EmulatedRegExp("(?<!\\))(?!(?:(?=($E$[ \\t]*))\\1)(?:esac\\b|(?=$|\\n)))","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?:(?=\besac\b)|(\)))/dgv,endCaptures:{"1":{name:"keyword.operator.pattern.case.shell"}},name:"meta.case.entry.pattern.shell",patterns:[{include:"#case_statement_context"}]},{begin:/(?<=\))/dgv,beginCaptures:{},end:/(?:(;;)|(?=\besac\b))/dgv,endCaptures:{"1":{name:"punctuation.terminator.statement.case.shell"}},name:"meta.case.entry.body.shell",patterns:[{include:"#typical_statements"},{include:"#initial_context"}]}]},case_statement_context:{patterns:[{match:/\*/dgv,name:"variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:/\+/dgv,name:"variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:/\?/dgv,name:"variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:/@/dgv,name:"variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell"},{match:/\|/dgv,name:"keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell"},{match:/\\[^\n]/dgv,name:"constant.character.escape.shell"},{match:/(?<=\tin| in| |\t|;;)\(/dgv,name:"keyword.operator.pattern.case.shell"},{begin:/(?<=\P{space})(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},name:"meta.parenthese.shell",patterns:[{include:"#case_statement_context"}]},{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.character-class.shell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.character-class.shell"}},name:"string.regexp.character-class.shell",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.shell"}]},{include:"#string"},{match:/[^\) \t\n\[\?\*\|\@]/dgv,name:"string.unquoted.pattern.shell string.regexp.unquoted.shell"}]},command_name_range:{begin:/(?:)/dgv,beginCaptures:{},end:/(?:(?= |\t|;|\||&|(?=$|\n)|\n|\)|`)|(?=<))/dgv,endCaptures:{},name:"meta.statement.command.name.shell",patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:continue|return|break)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\.)(?!\/)(?![\p{L}\p{M}\p{N}\p{Pc}])(?!-)/dgv,name:"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell"},{include:"#variable"},{captures:{"1":{name:"entity.name.function.call.shell entity.name.command.shell"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?<=|'|"|\}|\))([^ \n\t\r"'\=\;\&\|\`\)\{\<\>]+)/dgv},{begin:/(?:|(?<! |\t|;|\||&|\n|\{|#))(\$?)((?:(")|(')))/dgv,beginCaptures:{"1":{name:"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell"},"2":{},"3":{name:"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},"4":{name:"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"}},end:new EmulatedRegExp("(?<=\\2)()()","dgv",{"strategy":"not_search_start"}),endCaptures:{},patterns:[{include:"#continuation_of_single_quoted_command_name"},{include:"#continuation_of_double_quoted_command_name"}]},{include:"#line_continuation"},{include:"#simple_unquoted"}]},command_statement:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|(?=$|\\n)|;|[ \\t]))(?!nocorrect |nocorrect\\t|nocorrect(?=$|\\n)|readonly |readonly\\t|readonly(?=$|\\n)|function |function\\t|function(?=$|\\n)|foreach |foreach\\t|foreach(?=$|\\n)|coproc |coproc\\t|coproc(?=$|\\n)|logout |logout\\t|logout(?=$|\\n)|export |export\\t|export(?=$|\\n)|select |select\\t|select(?=$|\\n)|repeat |repeat\\t|repeat(?=$|\\n)|pushd |pushd\\t|pushd(?=$|\\n)|until |until\\t|until(?=$|\\n)|while |while\\t|while(?=$|\\n)|local |local\\t|local(?=$|\\n)|case |case\\t|case(?=$|\\n)|done |done\\t|done(?=$|\\n)|elif |elif\\t|elif(?=$|\\n)|else |else\\t|else(?=$|\\n)|esac |esac\\t|esac(?=$|\\n)|popd |popd\\t|popd(?=$|\\n)|then |then\\t|then(?=$|\\n)|time |time\\t|time(?=$|\\n)|for |for\\t|for(?=$|\\n)|end |end\\t|end(?=$|\\n)|fi |fi\\t|fi(?=$|\\n)|do |do\\t|do(?=$|\\n)|in |in\\t|in(?=$|\\n)|if |if\\t|if(?=$|\\n))(?!\\\\\\n?(?=$|\\n))","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.command.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"},{include:"#heredoc"}]},comment:{captures:{"1":{name:"comment.line.number-sign.shell meta.shebang.shell"},"2":{name:"punctuation.definition.comment.shebang.shell"},"3":{name:"comment.line.number-sign.shell"},"4":{name:"punctuation.definition.comment.shell"}},match:new EmulatedRegExp("(?:(?<=^|\\n(?!$))|(?:(?=($E$[ \\t]+))\\1))(?:((#!)[^\\n]*)|((#)[^\\n]*))","dgv",{"useEmulationGroups":true})},comments:{patterns:[{include:"#block_comment"},{include:"#line_comment"}]},"compound-command":{patterns:[{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical-expression"},{include:"#initial_context"}]},{begin:/(?<=\p{space}|(?<=^|\n(?!$)))\{(?=\p{space}|(?=$|\n))/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.shell"}},end:/(?<=(?<=^|\n(?!$))|;)\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},continuation_of_double_quoted_command_name:{begin:/(?<=")/dgvy,beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command",end:/"/dgv,endCaptures:{"0":{name:"string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}},patterns:[{match:/\\[\$\n\`"\\]/dgv,name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},continuation_of_single_quoted_command_name:{begin:/(?<=')/dgvy,beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command",end:/'/dgv,endCaptures:{"0":{name:"string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}}},custom_command_names:{patterns:[]},custom_commands:{patterns:[]},double_quote_context:{patterns:[{match:/\\[\$\`"\\\n]/dgv,name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},double_quote_escape_char:{match:/\\[\$\`"\\\n]/dgv,name:"constant.character.escape.shell"},floating_keyword:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&| |\t)(?:then|elif|else|done|end|do|if|fi)(?= |\t|;|&|(?=$|\n))/dgv,name:"keyword.control.$0.shell"}]},for_statement:{patterns:[{begin:new EmulatedRegExp("(\\bfor\\b)(?:(?=($E$[ \\t]*))\\2)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(?=($E$[ \\t]*))\\4)(\\bin\\b)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.for.shell"},"2":{name:"variable.other.for.shell"},"3":{name:"keyword.control.in.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.for.in.shell",patterns:[{include:"#string"},{include:"#simple_unquoted"},{include:"#normal_context"}]},{begin:/(\bfor\b)/dgv,beginCaptures:{"1":{name:"keyword.control.for.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.for.shell",patterns:[{include:"#arithmetic_double"},{include:"#normal_context"}]}]},function_definition:{applyEndPatternLast:1,begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(?:(\\bfunction\\b)(?:(?=($E$[ \\t]*))\\3)([^ \\t\\n\\r\\(\\)\\=\"']+)(?:(\\()(?:(?=($E$[ \\t]*))\\6)(\\)))?|([^ \\t\\n\\r\\(\\)\\=\"']+)(?:(?=($E$[ \\t]*))\\9)(\\()(?:(?=($E$[ \\t]*))\\11)(\\)))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"storage.type.function.shell"},"2":{name:"entity.name.function.shell"},"3":{name:"punctuation.definition.arguments.shell"},"4":{name:"punctuation.definition.arguments.shell"},"5":{name:"entity.name.function.shell"},"6":{name:"punctuation.definition.arguments.shell"},"7":{name:"punctuation.definition.arguments.shell"}},end:/(?<=\}|\))/dgv,endCaptures:{},name:"meta.function.shell",patterns:[{match:/(?:\t| |\n)/dgvy},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{include:"#initial_context"}]},heredoc:{patterns:[{begin:new EmulatedRegExp("((?<!<)<<-)(?:(?=($E$[ \\t]*))\\2)(\"|')(?:(?=($E$[ \\t]*))\\4)([^\"']+?)(?=\\p{space}|;|&|<|\"|')(\\3)([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.quote.shell"},"3":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"4":{name:"punctuation.definition.string.heredoc.quote.shell"},"5":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.indent.$3",end:/(?<=^|\n(?!$))\t*\3(?=\p{space}|;|&|(?=$|\n))()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.$0.shell"}},patterns:[]},{begin:new EmulatedRegExp("((?<!<)<<(?!<))(?:(?=($E$[ \\t]*))\\2)(\"|')(?:(?=($E$[ \\t]*))\\4)([^\"']+?)(?=\\p{space}|;|&|<|\"|')(\\3)([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.quote.shell"},"3":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"4":{name:"punctuation.definition.string.heredoc.quote.shell"},"5":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.no-indent.$3",end:/(?<=^|\n(?!$))\3(?=\p{space}|;|&|(?=$|\n))()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[]},{begin:new EmulatedRegExp("((?<!<)<<-)(?:(?=($E$[ \\t]*))\\2)([^\"' \\t]+)(?=\\p{space}|;|&|<|\"|')([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"3":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.indent.$2",end:/(?<=^|\n(?!$))\t*\2(?=\p{space}|;|&|(?=$|\n))()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]},{begin:new EmulatedRegExp("((?<!<)<<(?!<))(?:(?=($E$[ \\t]*))\\2)([^\"' \\t]+)(?=\\p{space}|;|&|<|\"|')([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"3":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.no-indent.$2",end:/(?<=^|\n(?!$))\2(?=\p{space}|;|&|(?=$|\n))()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]}]},herestring:{patterns:[{begin:/(<<<)\p{space}*(('))/dgv,beginCaptures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.quoted.single.shell"},"3":{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.single.shell",end:/(')/dgv,endCaptures:{"0":{name:"string.quoted.single.shell"},"1":{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell"},{begin:/(<<<)\p{space}*(("))/dgv,beginCaptures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.quoted.double.shell"},"3":{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.double.shell",end:/(")/dgv,endCaptures:{"0":{name:"string.quoted.double.shell"},"1":{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell",patterns:[{include:"#double_quote_context"}]},{captures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.unquoted.herestring.shell",patterns:[{include:"#initial_context"}]}},match:/(<<<)\p{space}*(([^\p{space}\)\\]|\\[^\n])+)/dgv,name:"meta.herestring.shell"}]},initial_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#logical_expression_double"},{include:"#logical_expression_single"},{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#loop"},{include:"#function_definition"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#misc_ranges"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#alias_statement"},{include:"#normal_statement"},{include:"#string"},{include:"#support"}]},inline_comment:{captures:{"1":{name:"comment.block.shell punctuation.definition.comment.begin.shell"},"2":{name:"comment.block.shell"},"3":{patterns:[{match:/\*\//dgv,name:"comment.block.shell punctuation.definition.comment.end.shell"},{match:/\*/dgv,name:"comment.block.shell"}]}},match:new EmulatedRegExp("(/\\*)((?:(?=($E$(?:[^\\*]|(?:(?=($E$\\*+))\\4)[^\\/])*))\\3)((?:(?=($E$\\*+))\\6)/))","dgv",{"useEmulationGroups":true})},interpolation:{patterns:[{include:"#arithmetic_dollar"},{include:"#subshell_dollar"},{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.evaluation.backticks.shell"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.evaluation.backticks.shell"}},name:"string.interpolated.backtick.shell",patterns:[{match:/\\[\`\\\$]/dgv,name:"constant.character.escape.shell"},{begin:/(?<=[^\p{L}\p{M}\p{N}\p{Pc}])(?=#)(?!#\{)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.shell"}},end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.shell"}},end:/(?=`)/dgv,name:"comment.line.number-sign.shell"}]},{include:"#initial_context"}]}]},keyword:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"keyword.control.shell"},{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(?:export|declare|typeset|local|readonly)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"storage.modifier.shell"}]},line_comment:{begin:new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)(//)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.comment.shell"}},end:/(?<=\n)(?<!\\\n)/dgv,endCaptures:{},name:"comment.line.double-slash.shell",patterns:[{include:"#line_continuation_character"}]},line_continuation:{match:/\\(?=\n)/dgv,name:"constant.character.escape.line-continuation.shell"},"logical-expression":{patterns:[{include:"#arithmetic_no_dollar"},{comment:"do we want a special rule for ( expr )?",match:/=[\=\~]?|!=?|<|>|&&|\|\|/dgv,name:"keyword.operator.logical.shell"},{match:/(?<!\P{space})-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\b/dgv,name:"keyword.operator.logical.shell"}]},logical_expression_context:{patterns:[{include:"#regex_comparison"},{include:"#arithmetic_no_dollar"},{include:"#logical-expression"},{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#comment"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},logical_expression_double:{begin:/\[\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},end:/\]\]/dgv,endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},logical_expression_single:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},loop:{patterns:[{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(for)\p{space}+([^\n]+?)\p{space}+(in)(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"1":{name:"keyword.control.shell"},"2":{name:"variable.other.loop.shell",patterns:[{include:"#string"}]},"3":{name:"keyword.control.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})done(?=\p{space}|;|&|(?=$|\n)|\))/dgv,endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.for-in-loop.shell",patterns:[{include:"#initial_context"}]},{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(while|until)(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"1":{name:"keyword.control.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})done(?=\p{space}|;|&|(?=$|\n)|\))/dgv,endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.while-loop.shell",patterns:[{include:"#initial_context"}]},{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(select)\p{space}+((?:[^\p{space}\\]|\\[^\n])+)(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"1":{name:"keyword.control.shell"},"2":{name:"variable.other.loop.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(done)(?=\p{space}|;|&|(?=$|\n)|\))/dgv,endCaptures:{"1":{name:"keyword.control.shell"}},name:"meta.scope.select-block.shell",patterns:[{include:"#initial_context"}]},{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})if(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"0":{name:"keyword.control.if.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})fi(?=\p{space}|;|&|(?=$|\n))/dgv,endCaptures:{"0":{name:"keyword.control.fi.shell"}},name:"meta.scope.if-block.shell",patterns:[{include:"#initial_context"}]}]},math:{patterns:[{include:"#variable"},{match:/\+{1,2}|-{1,2}|!|~|\*{1,2}|\/|%|<[\<\=]?|>[\>\=]?|==|!=|(?<=^|\n(?!$))|\|{1,2}|&{1,2}|\?|:|,|=|[\*\/\%\+\-\&\^\|]=|<<=|>>=/dgv,name:"keyword.operator.arithmetic.shell"},{match:/0[xX][0-9A-Fa-f]+/dgv,name:"constant.numeric.hex.shell"},{match:/;/dgv,name:"punctuation.separator.semicolon.range"},{match:/0\p{Nd}+/dgv,name:"constant.numeric.octal.shell"},{match:/\p{Nd}{1,2}#[0-9a-zA-Z\@_]+/dgv,name:"constant.numeric.other.shell"},{match:/\p{Nd}+/dgv,name:"constant.numeric.integer.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9]+(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"variable.other.normal.shell"}]},math_operators:{patterns:[{match:/\+{1,2}|-{1,2}|!|~|\*{1,2}|\/|%|<[\<\=]?|>[\>\=]?|==|!=|(?<=^|\n(?!$))|\|{1,2}|&{1,2}|\?|:|,|=|[\*\/\%\+\-\&\^\|]=|<<=|>>=/dgv,name:"keyword.operator.arithmetic.shell"},{match:/0[xX][0-9A-Fa-f]+/dgv,name:"constant.numeric.hex.shell"},{match:/0\p{Nd}+/dgv,name:"constant.numeric.octal.shell"},{match:/\p{Nd}{1,2}#[0-9a-zA-Z\@_]+/dgv,name:"constant.numeric.other.shell"},{match:/\p{Nd}+/dgv,name:"constant.numeric.integer.shell"}]},misc_ranges:{patterns:[{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#subshell_dollar"},{begin:/(?<![^ \t])(\{)(?![\p{L}\p{M}\p{N}\p{Pc}]|\$)/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.shell"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},modified_assignment_statement:{begin:/(?<=(?<=^|\n(?!$))|;|&|[ \t])(?:readonly|declare|typeset|export|local)(?=[ \t]|;|&|(?=$|\n))/dgv,beginCaptures:{"0":{name:"storage.modifier.$0.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.shell meta.expression.assignment.modified.shell",patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])-[\p{L}\p{M}\p{N}\p{Pc}]+\b/dgv,name:"string.unquoted.argument.shell constant.other.option.shell"},{include:"#array_value"},{captures:{"1":{name:"variable.other.assignment.shell"},"2":{name:"punctuation.definition.array.access.shell"},"3":{name:"variable.other.assignment.shell"},"4":{name:"constant.numeric.shell constant.numeric.integer.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"},"9":{name:"constant.numeric.shell constant.numeric.hex.shell"},"10":{name:"constant.numeric.shell constant.numeric.octal.shell"},"11":{name:"constant.numeric.shell constant.numeric.other.shell"},"12":{name:"constant.numeric.shell constant.numeric.decimal.shell"},"13":{name:"constant.numeric.shell constant.numeric.version.shell"},"14":{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:/((?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}]))(?:(\[)((?:(?:(?:\$?(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}])|@)|\*)|(-?\p{Nd}+)))(\]))?(?:(?:(=)|(\+=))|(-=))?(?:(?<==| |\t|(?<=^|\n(?!$))|\{|\(|\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\p{Nd}+))|(\p{Nd}{1,2}#[0-9a-zA-Z\@_]+))|(-?\p{Nd}+\.\p{Nd}+))|(-?\p{Nd}+(?:\.\p{Nd}+)+))|(-?\p{Nd}+))(?= |\t|(?=$|\n)|\}|\)|;))?/dgv},{include:"#normal_context"}]},modifiers:{match:/(?<=(?<=^|\n(?!$))|;|&|[ \t])(?:readonly|declare|typeset|export|local)(?=[ \t]|;|&|(?=$|\n))/dgv,name:"storage.modifier.$0.shell"},normal_assignment_statement:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(\\[)((?:(?:(?:\\$?(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}])|@)|\\*)|(-?\\p{Nd}+)))(\\]))?(?:(?:(=)|(\\+=))|(-=))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"variable.other.assignment.shell"},"2":{name:"punctuation.definition.array.access.shell"},"3":{name:"variable.other.assignment.shell"},"4":{name:"constant.numeric.shell constant.numeric.integer.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.expression.assignment.shell",patterns:[{include:"#comment"},{include:"#string"},{include:"#normal_assignment_statement"},{begin:/(?<= |\t)(?! |\t|[\p{L}\p{M}\p{N}\p{Pc}]+=)/dgv,beginCaptures:{},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.command.env.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"}]},{include:"#simple_unquoted"},{include:"#normal_context"}]},normal_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#misc_ranges"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"},{include:"#parenthese"}]},normal_statement:{begin:new EmulatedRegExp("(?!(?<=^|\\n(?!$))(?:(?=($E$[ \\t]*))\\1)(?=$|\\n))(?:(?<=(?<=^|\\n(?!$))until | until |\\tuntil |(?<=^|\\n(?!$))while | while |\\twhile |(?<=^|\\n(?!$))elif | elif |\\telif |(?<=^|\\n(?!$))else | else |\\telse |(?<=^|\\n(?!$))then | then |\\tthen |(?<=^|\\n(?!$))do | do |\\tdo |(?<=^|\\n(?!$))if | if |\\tif )|(?<=(?:(?<=^|\\n(?!$))|;|\\||&|!|\\(|\\{|`)))(?:(?=($E$[ \\t]*))\\2)(?!nocorrect[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|nocorrect\\$|function[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|function\\$|foreach[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|foreach\\$|repeat[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|repeat\\$|logout[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|logout\\$|coproc[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|coproc\\$|select[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|select\\$|while[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|while\\$|pushd[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|pushd\\$|until[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|until\\$|case[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|case\\$|done[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|done\\$|elif[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|elif\\$|else[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|else\\$|esac[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|esac\\$|popd[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|popd\\$|then[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|then\\$|time[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|time\\$|for[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|for\\$|end[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|end\\$|fi[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|fi\\$|do[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|do\\$|in[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|in\\$|if[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|if\\$)","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.shell",patterns:[{include:"#typical_statements"}]},normal_statement_seperator:{captures:{"1":{name:"punctuation.terminator.statement.semicolon.shell"},"2":{name:"punctuation.separator.statement.and.shell"},"3":{name:"punctuation.separator.statement.or.shell"},"4":{name:"punctuation.separator.statement.background.shell"}},match:/(?:(?:(?:(;)|(&&))|(\|\|))|(&))/dgv},numeric_literal:{captures:{"1":{name:"constant.numeric.shell constant.numeric.hex.shell"},"2":{name:"constant.numeric.shell constant.numeric.octal.shell"},"3":{name:"constant.numeric.shell constant.numeric.other.shell"},"4":{name:"constant.numeric.shell constant.numeric.decimal.shell"},"5":{name:"constant.numeric.shell constant.numeric.version.shell"},"6":{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:/(?<==| |\t|(?<=^|\n(?!$))|\{|\(|\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\p{Nd}+))|(\p{Nd}{1,2}#[0-9a-zA-Z\@_]+))|(-?\p{Nd}+\.\p{Nd}+))|(-?\p{Nd}+(?:\.\p{Nd}+)+))|(-?\p{Nd}+))(?= |\t|(?=$|\n)|\}|\)|;)/dgv},option:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]+))\\1)(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|(?=$|\\n)|;|[ \\t])))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{name:"string.unquoted.argument.shell constant.other.option.shell"}},contentName:"string.unquoted.argument constant.other.option",end:/(?:(?=[ \t])|(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\))/dgv,endCaptures:{},patterns:[{include:"#option_context"}]},option_context:{patterns:[{include:"#misc_ranges"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},parenthese:{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.parenthese.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.parenthese.shell"}},name:"meta.parenthese.group.shell",patterns:[{include:"#initial_context"}]}]},pathname:{patterns:[{match:/(?<=\p{space}|:|=|(?<=^|\n(?!$)))~/dgv,name:"keyword.operator.tilde.shell"},{match:/\*|\?/dgv,name:"keyword.operator.glob.shell"},{begin:/([\?\*\+\@\!])(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.extglob.shell"},"2":{name:"punctuation.definition.extglob.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.extglob.shell"}},name:"meta.structure.extglob.shell",patterns:[{include:"#initial_context"}]}]},pipeline:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(time)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"keyword.other.shell"},{match:/[\|\!]/dgv,name:"keyword.operator.pipe.shell"}]},redirect_fix:{captures:{"1":{name:"keyword.operator.redirect.shell"},"2":{name:"string.unquoted.argument.shell"}},match:new EmulatedRegExp("(>>?)(?:(?=($E$[ \\t]*))\\2)([^ \\t\\n\\>\\&\\;\\<\\>\\(\\)\\$\\`\\\\\"'\\<\\|]+)","dgv",{"useEmulationGroups":true})},redirect_number:{captures:{"1":{name:"keyword.operator.redirect.stdout.shell"},"2":{name:"keyword.operator.redirect.stderr.shell"},"3":{name:"keyword.operator.redirect.$3.shell"}},match:/(?<=[ \t])(?:(1)|(2)|(\p{Nd}+))(?=>)/dgv},redirection:{patterns:[{begin:/[\>\<]\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.interpolated.process-substitution.shell",patterns:[{include:"#initial_context"}]},{match:/(?<![\<\>])(&>|\p{Nd}*>&\p{Nd}*|\p{Nd}*(>>|>|<)|\p{Nd}*<&|\p{Nd}*<>)(?![\<\>])/dgv,name:"keyword.operator.redirect.shell"}]},regex_comparison:{match:/=~/dgv,name:"keyword.operator.logical.regex.shell"},regexp:{patterns:[{match:/[^\n]+/dgv}]},simple_options:{captures:{"0":{patterns:[{captures:{"1":{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{name:"string.unquoted.argument.shell constant.other.option.shell"}},match:new EmulatedRegExp("(?:(?=($E$[ \\t]+))\\1)(-)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)","dgv",{"useEmulationGroups":true})}]}},match:new EmulatedRegExp("(?:(?:(?=($E$[ \\t]+))\\1)-[\\p{L}\\p{M}\\p{N}\\p{Pc}]+)*","dgv",{"useEmulationGroups":true})},simple_unquoted:{match:/[^ \t\n\>\&\;\<\>\(\)\$\`\\"'\<\|]/dgv,name:"string.unquoted.shell"},special_expansion:{match:/!|:[\-\=\?]?|\*|@|##|#|%%|%|\//dgv,name:"keyword.operator.expansion.shell"},start_of_command:{match:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|(?=$|\\n)|;|[ \\t]))(?!nocorrect |nocorrect\\t|nocorrect(?=$|\\n)|readonly |readonly\\t|readonly(?=$|\\n)|function |function\\t|function(?=$|\\n)|foreach |foreach\\t|foreach(?=$|\\n)|coproc |coproc\\t|coproc(?=$|\\n)|logout |logout\\t|logout(?=$|\\n)|export |export\\t|export(?=$|\\n)|select |select\\t|select(?=$|\\n)|repeat |repeat\\t|repeat(?=$|\\n)|pushd |pushd\\t|pushd(?=$|\\n)|until |until\\t|until(?=$|\\n)|while |while\\t|while(?=$|\\n)|local |local\\t|local(?=$|\\n)|case |case\\t|case(?=$|\\n)|done |done\\t|done(?=$|\\n)|elif |elif\\t|elif(?=$|\\n)|else |else\\t|else(?=$|\\n)|esac |esac\\t|esac(?=$|\\n)|popd |popd\\t|popd(?=$|\\n)|then |then\\t|then(?=$|\\n)|time |time\\t|time(?=$|\\n)|for |for\\t|for(?=$|\\n)|end |end\\t|end(?=$|\\n)|fi |fi\\t|fi(?=$|\\n)|do |do\\t|do(?=$|\\n)|in |in\\t|in(?=$|\\n)|if |if\\t|if(?=$|\\n))(?!\\\\\\n?(?=$|\\n))","dgv",{"useEmulationGroups":true})},string:{patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.shell"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.shell"},{begin:/\$?"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.double.shell",patterns:[{match:/\\[\$\n\`"\\]/dgv,name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},{begin:/\$'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.dollar.shell",patterns:[{match:/\\(?:a|b|e|f|n|r|t|v|\\|')/dgv,name:"constant.character.escape.ansi-c.shell"},{match:/\\\p{Nd}{3}"/dgv,name:"constant.character.escape.octal.shell"},{match:/\\x[0-9a-fA-F]{2}"/dgv,name:"constant.character.escape.hex.shell"},{match:/\\c[^\n]"/dgv,name:"constant.character.escape.control-char.shell"}]}]},subshell_dollar:{patterns:[{begin:/\$\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.subshell.single.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.subshell.single.shell"}},name:"meta.scope.subshell",patterns:[{include:"#parenthese"},{include:"#initial_context"}]}]},support:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(?::|\.)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"support.function.builtin.shell"}]},typical_statements:{patterns:[{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#while_statement"},{include:"#function_definition"},{include:"#command_statement"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#normal_context"}]},variable:{patterns:[{captures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.all.shell"},"2":{name:"variable.parameter.positional.all.shell"}},match:/(\$)(@(?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv},{captures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{name:"variable.parameter.positional.shell"}},match:/(\$)(\p{Nd}(?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv},{captures:{"1":{name:"punctuation.definition.variable.shell variable.language.special.shell"},"2":{name:"variable.language.special.shell"}},match:/(\$)([\-\*\#\?\$\!0_](?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv},{begin:new EmulatedRegExp("(\\$)(\\{)(?:(?=($E$[ \\t]*))\\3)(?=\\p{Nd})","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},contentName:"meta.parameter-expansion",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:/\p{Nd}+/dgv,name:"variable.parameter.positional.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{begin:/(\$)(\{)/dgv,beginCaptures:{"1":{name:"punctuation.definition.variable.shell"},"2":{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell"}},contentName:"meta.parameter-expansion",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{captures:{"1":{name:"punctuation.definition.variable.shell variable.other.normal.shell"},"2":{name:"variable.other.normal.shell"}},match:/(\$)([\p{L}\p{M}\p{N}\p{Pc}]+(?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv}]},while_statement:{patterns:[{begin:/(\bwhile\b)/dgv,beginCaptures:{"1":{name:"keyword.control.while.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.while.shell",patterns:[{include:"#line_continuation"},{include:"#math_operators"},{include:"#option"},{include:"#simple_unquoted"},{include:"#normal_context"},{include:"#string"}]}]}},scopeName:"source.shell",embeddedLangs:undefined,aliases:["bash","sh","shell","zsh"]})
|
|
3
|
+
const lang = Object.freeze({displayName:"Shell",name:"shellscript",patterns:[{include:"#initial_context"}],repository:{alias_statement:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(alias)(?:(?=($E$[ \\t]*))\\3)((?:((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])-[\\p{L}\\p{M}\\p{N}\\p{Pc}]+\\b)(?:(?=($E$[ \\t]*))\\6))*)(?:(?=($E$[ \\t]*))\\7)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(\\[)((?:(?:(?:\\$?(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}])|@)|\\*)|(-?\\p{Nd}+)))(\\]))?(?:(?:(=)|(\\+=))|(-=))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"storage.type.alias.shell"},"2":{patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])-[\p{L}\p{M}\p{N}\p{Pc}]+\b/dgv,name:"string.unquoted.argument.shell constant.other.option.shell"}]},"3":{name:"string.unquoted.argument.shell constant.other.option.shell"},"4":{name:"variable.other.assignment.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"variable.other.assignment.shell"},"7":{name:"constant.numeric.shell constant.numeric.integer.shell"},"8":{name:"punctuation.definition.array.access.shell"},"9":{name:"keyword.operator.assignment.shell"},"10":{name:"keyword.operator.assignment.compound.shell"},"11":{name:"keyword.operator.assignment.compound.shell"}},end:/(?:(?= |\t|(?=$|\n))|(?:(?:(?:(;)|(&&))|(\|\|))|(&)))/dgv,endCaptures:{"1":{name:"punctuation.terminator.statement.semicolon.shell"},"2":{name:"punctuation.separator.statement.and.shell"},"3":{name:"punctuation.separator.statement.or.shell"},"4":{name:"punctuation.separator.statement.background.shell"}},name:"meta.expression.assignment.alias.shell",patterns:[{include:"#normal_context"}]},argument:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]+))\\1)(?!(?:&|\\||\\(|\\[|#|\\n|(?=$|\\n)|;))","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?= |\t|;|\||&|(?=$|\n)|\n|\)|`)/dgv,endCaptures:{},name:"meta.argument.shell",patterns:[{include:"#argument_context"},{include:"#line_continuation"}]},argument_context:{patterns:[{captures:{"1":{name:"string.unquoted.argument.shell",patterns:[{match:/\*/dgv,name:"variable.language.special.wildcard.shell"},{include:"#variable"},{include:"#numeric_literal"},{captures:{"1":{name:"constant.language.$1.shell"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(\b(?:true|false)\b)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv}]}},match:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)([^ \\t\\n\\>\\&\\;\\<\\>\\(\\)\\$\\`\\\\\"'\\<\\|]+(?!>))","dgv",{"useEmulationGroups":true})},{include:"#normal_context"}]},arithmetic_double:{patterns:[{begin:/\(\(/dgv,beginCaptures:{"0":{name:"punctuation.section.arithmetic.double.shell"}},end:/\)\p{space}*\)/dgv,endCaptures:{"0":{name:"punctuation.section.arithmetic.double.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},arithmetic_no_dollar:{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.arithmetic.single.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.arithmetic.single.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},array_access_inline:{captures:{"1":{name:"punctuation.section.array.shell"},"2":{patterns:[{include:"#special_expansion"},{include:"#string"},{include:"#variable"}]},"3":{name:"punctuation.section.array.shell"}},match:/(\[)([^\[\]]+)(\])/dgv},array_value:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(\\[)((?:(?:(?:\\$?(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}])|@)|\\*)|(-?\\p{Nd}+)))(\\]))?(?:(?:(=)|(\\+=))|(-=))(?:(?=($E$[ \\t]*))\\10)(\\()","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"variable.other.assignment.shell"},"2":{name:"punctuation.definition.array.access.shell"},"3":{name:"variable.other.assignment.shell"},"4":{name:"constant.numeric.shell constant.numeric.integer.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"},"9":{name:"punctuation.definition.array.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.array.shell"}},patterns:[{include:"#comment"},{captures:{"1":{name:"variable.other.assignment.array.shell entity.other.attribute-name.shell"},"2":{name:"keyword.operator.assignment.shell punctuation.definition.assignment.shell"}},match:/((?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}]))(=)/dgv},{captures:{"1":{name:"punctuation.definition.bracket.named-array.shell"},"2":{name:"string.unquoted.shell entity.other.attribute-name.bracket.shell"},"3":{name:"punctuation.definition.bracket.named-array.shell"},"4":{name:"punctuation.definition.assignment.shell"}},match:/(\[)([^\n]+?)(\])(=)/dgv},{include:"#normal_context"},{include:"#simple_unquoted"}]},assignment_statement:{patterns:[{include:"#array_value"},{include:"#modified_assignment_statement"},{include:"#normal_assignment_statement"}]},basic_command_name:{captures:{"1":{name:"storage.modifier.$1.shell"},"2":{name:"entity.name.function.call.shell entity.name.command.shell",patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:continue|return|break)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"keyword.control.$0.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\.)(?!\/)(?![\p{L}\p{M}\p{N}\p{Pc}])(?!-)/dgv,name:"support.function.builtin.shell"},{include:"#variable"}]}},match:/(?!(?:!|&|\||\(|\)|\{|\[|<|>|#|\n|(?=$|\n)|;|[ \t]))(?!nocorrect |nocorrect\t|nocorrect(?=$|\n)|readonly |readonly\t|readonly(?=$|\n)|function |function\t|function(?=$|\n)|foreach |foreach\t|foreach(?=$|\n)|coproc |coproc\t|coproc(?=$|\n)|logout |logout\t|logout(?=$|\n)|export |export\t|export(?=$|\n)|select |select\t|select(?=$|\n)|repeat |repeat\t|repeat(?=$|\n)|pushd |pushd\t|pushd(?=$|\n)|until |until\t|until(?=$|\n)|while |while\t|while(?=$|\n)|local |local\t|local(?=$|\n)|case |case\t|case(?=$|\n)|done |done\t|done(?=$|\n)|elif |elif\t|elif(?=$|\n)|else |else\t|else(?=$|\n)|esac |esac\t|esac(?=$|\n)|popd |popd\t|popd(?=$|\n)|then |then\t|then(?=$|\n)|time |time\t|time(?=$|\n)|for |for\t|for(?=$|\n)|end |end\t|end(?=$|\n)|fi |fi\t|fi(?=$|\n)|do |do\t|do(?=$|\n)|in |in\t|in(?=$|\n)|if |if\t|if(?=$|\n))(?:((?<=(?<=^|\n(?!$))|;|&|[ \t])(?:readonly|declare|typeset|export|local)(?=[ \t]|;|&|(?=$|\n)))|((?!"|'|\\\n?(?=$|\n))[^\!'"\<\> \t\n\r]+?))(?:(?= |\t)|(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\))/dgv,name:"meta.statement.command.name.basic.shell"},block_comment:{begin:new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)(/\\*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.comment.begin.shell"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.shell"}},name:"comment.block.shell"},boolean:{match:/\b(?:true|false)\b/dgv,name:"constant.language.$0.shell"},case_statement:{begin:new EmulatedRegExp("(\\bcase\\b)(?:(?=($E$[ \\t]*))\\2)([^\\n]+?)(?:(?=($E$[ \\t]*))\\4)(\\bin\\b)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.case.shell"},"2":{patterns:[{include:"#initial_context"}]},"3":{name:"keyword.control.in.shell"}},end:/\besac\b/dgv,endCaptures:{"0":{name:"keyword.control.esac.shell"}},name:"meta.case.shell",patterns:[{include:"#comment"},{captures:{"1":{name:"keyword.operator.pattern.case.default.shell"}},match:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(\\* *\\))","dgv",{"useEmulationGroups":true})},{begin:new EmulatedRegExp("(?<!\\))(?!(?:(?=($E$[ \\t]*))\\1)(?:esac\\b|(?=$|\\n)))","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?:(?=\besac\b)|(\)))/dgv,endCaptures:{"1":{name:"keyword.operator.pattern.case.shell"}},name:"meta.case.entry.pattern.shell",patterns:[{include:"#case_statement_context"}]},{begin:/(?<=\))/dgv,beginCaptures:{},end:/(?:(;;)|(?=\besac\b))/dgv,endCaptures:{"1":{name:"punctuation.terminator.statement.case.shell"}},name:"meta.case.entry.body.shell",patterns:[{include:"#typical_statements"},{include:"#initial_context"}]}]},case_statement_context:{patterns:[{match:/\*/dgv,name:"variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:/\+/dgv,name:"variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:/\?/dgv,name:"variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:/@/dgv,name:"variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell"},{match:/\|/dgv,name:"keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell"},{match:/\\[^\n]/dgv,name:"constant.character.escape.shell"},{match:/(?<=\tin| in| |\t|;;)\(/dgv,name:"keyword.operator.pattern.case.shell"},{begin:/(?<=\P{space})(\()/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},name:"meta.parenthese.shell",patterns:[{include:"#case_statement_context"}]},{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.character-class.shell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.character-class.shell"}},name:"string.regexp.character-class.shell",patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.shell"}]},{include:"#string"},{match:/[^\) \t\n\[\?\*\|\@]/dgv,name:"string.unquoted.pattern.shell string.regexp.unquoted.shell"}]},command_name_range:{begin:/(?:)/dgv,beginCaptures:{},end:/(?:(?= |\t|;|\||&|(?=$|\n)|\n|\)|`)|(?=<))/dgv,endCaptures:{},name:"meta.statement.command.name.shell",patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:continue|return|break)(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\.)(?!\/)(?![\p{L}\p{M}\p{N}\p{Pc}])(?!-)/dgv,name:"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell"},{include:"#variable"},{captures:{"1":{name:"entity.name.function.call.shell entity.name.command.shell"}},match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])(?<=|'|"|\}|\))([^ \n\t\r"'\=\;\&\|\`\)\{\<\>]+)/dgv},{begin:/(?:|(?<! |\t|;|\||&|\n|\{|#))(\$?)((?:(")|(')))/dgv,beginCaptures:{"1":{name:"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell"},"2":{},"3":{name:"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},"4":{name:"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"}},end:new EmulatedRegExp("(?<=\\2)()()","dgv",{"strategy":"not_search_start"}),endCaptures:{},patterns:[{include:"#continuation_of_single_quoted_command_name"},{include:"#continuation_of_double_quoted_command_name"}]},{include:"#line_continuation"},{include:"#simple_unquoted"}]},command_statement:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|(?=$|\\n)|;|[ \\t]))(?!nocorrect |nocorrect\\t|nocorrect(?=$|\\n)|readonly |readonly\\t|readonly(?=$|\\n)|function |function\\t|function(?=$|\\n)|foreach |foreach\\t|foreach(?=$|\\n)|coproc |coproc\\t|coproc(?=$|\\n)|logout |logout\\t|logout(?=$|\\n)|export |export\\t|export(?=$|\\n)|select |select\\t|select(?=$|\\n)|repeat |repeat\\t|repeat(?=$|\\n)|pushd |pushd\\t|pushd(?=$|\\n)|until |until\\t|until(?=$|\\n)|while |while\\t|while(?=$|\\n)|local |local\\t|local(?=$|\\n)|case |case\\t|case(?=$|\\n)|done |done\\t|done(?=$|\\n)|elif |elif\\t|elif(?=$|\\n)|else |else\\t|else(?=$|\\n)|esac |esac\\t|esac(?=$|\\n)|popd |popd\\t|popd(?=$|\\n)|then |then\\t|then(?=$|\\n)|time |time\\t|time(?=$|\\n)|for |for\\t|for(?=$|\\n)|end |end\\t|end(?=$|\\n)|fi |fi\\t|fi(?=$|\\n)|do |do\\t|do(?=$|\\n)|in |in\\t|in(?=$|\\n)|if |if\\t|if(?=$|\\n))(?!\\\\\\n?(?=$|\\n))","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.command.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"},{include:"#heredoc"}]},comment:{captures:{"1":{name:"comment.line.number-sign.shell meta.shebang.shell"},"2":{name:"punctuation.definition.comment.shebang.shell"},"3":{name:"comment.line.number-sign.shell"},"4":{name:"punctuation.definition.comment.shell"}},match:new EmulatedRegExp("(?:(?<=^|\\n(?!$))|(?:(?=($E$[ \\t]+))\\1))(?:((#!)[^\\n]*)|((#)[^\\n]*))","dgv",{"useEmulationGroups":true})},comments:{patterns:[{include:"#block_comment"},{include:"#line_comment"}]},"compound-command":{patterns:[{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical-expression"},{include:"#initial_context"}]},{begin:/(?<=\p{space}|(?<=^|\n(?!$)))\{(?=\p{space}|(?=$|\n))/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.shell"}},end:/(?<=(?<=^|\n(?!$))|;)\p{space}*(\})/dgv,endCaptures:{"1":{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},continuation_of_double_quoted_command_name:{begin:/(?<=")/dgvy,beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command",end:/"/dgv,endCaptures:{"0":{name:"string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}},patterns:[{match:/\\[\$\n\`"\\]/dgv,name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},continuation_of_single_quoted_command_name:{begin:/(?<=')/dgvy,beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command",end:/'/dgv,endCaptures:{"0":{name:"string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}}},custom_command_names:{patterns:[]},custom_commands:{patterns:[]},double_quote_context:{patterns:[{match:/\\[\$\`"\\\n]/dgv,name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},double_quote_escape_char:{match:/\\[\$\`"\\\n]/dgv,name:"constant.character.escape.shell"},floating_keyword:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&| |\t)(?:then|elif|else|done|end|do|if|fi)(?= |\t|;|&|(?=$|\n))/dgv,name:"keyword.control.$0.shell"}]},for_statement:{patterns:[{begin:new EmulatedRegExp("(\\bfor\\b)(?:(?=($E$[ \\t]*))\\2)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(?=($E$[ \\t]*))\\4)(\\bin\\b)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.for.shell"},"2":{name:"variable.other.for.shell"},"3":{name:"keyword.control.in.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.for.in.shell",patterns:[{include:"#string"},{include:"#simple_unquoted"},{include:"#normal_context"}]},{begin:/(\bfor\b)/dgv,beginCaptures:{"1":{name:"keyword.control.for.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.for.shell",patterns:[{include:"#arithmetic_double"},{include:"#normal_context"}]}]},function_definition:{applyEndPatternLast:1,begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(?:(\\bfunction\\b)(?:(?=($E$[ \\t]*))\\3)([^ \\t\\n\\r\\(\\)\\=\"']+)(?:(\\()(?:(?=($E$[ \\t]*))\\6)(\\)))?|([^ \\t\\n\\r\\(\\)\\=\"']+)(?:(?=($E$[ \\t]*))\\9)(\\()(?:(?=($E$[ \\t]*))\\11)(\\)))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"storage.type.function.shell"},"2":{name:"entity.name.function.shell"},"3":{name:"punctuation.definition.arguments.shell"},"4":{name:"punctuation.definition.arguments.shell"},"5":{name:"entity.name.function.shell"},"6":{name:"punctuation.definition.arguments.shell"},"7":{name:"punctuation.definition.arguments.shell"}},end:/(?<=\}|\))/dgv,endCaptures:{},name:"meta.function.shell",patterns:[{match:/(?:\t| |\n)/dgvy},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{include:"#initial_context"}]},heredoc:{patterns:[{begin:new EmulatedRegExp("((?<!<)<<-)(?:(?=($E$[ \\t]*))\\2)(\"|')(?:(?=($E$[ \\t]*))\\4)([^\"']+?)(?=\\p{space}|;|&|<|\"|')(\\3)([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.quote.shell"},"3":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"4":{name:"punctuation.definition.string.heredoc.quote.shell"},"5":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.indent.$3",end:/(?<=^|\n(?!$))\t*\3(?=\p{space}|;|&|(?=$|\n))()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.$0.shell"}},patterns:[]},{begin:new EmulatedRegExp("((?<!<)<<(?!<))(?:(?=($E$[ \\t]*))\\2)(\"|')(?:(?=($E$[ \\t]*))\\4)([^\"']+?)(?=\\p{space}|;|&|<|\"|')(\\3)([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.quote.shell"},"3":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"4":{name:"punctuation.definition.string.heredoc.quote.shell"},"5":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.no-indent.$3",end:/(?<=^|\n(?!$))\3(?=\p{space}|;|&|(?=$|\n))()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[]},{begin:new EmulatedRegExp("((?<!<)<<-)(?:(?=($E$[ \\t]*))\\2)([^\"' \\t]+)(?=\\p{space}|;|&|<|\"|')([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"3":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.indent.$2",end:/(?<=^|\n(?!$))\t*\2(?=\p{space}|;|&|(?=$|\n))()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]},{begin:new EmulatedRegExp("((?<!<)<<(?!<))(?:(?=($E$[ \\t]*))\\2)([^\"' \\t]+)(?=\\p{space}|;|&|<|\"|')([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.delimiter.shell"},"3":{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.no-indent.$2",end:/(?<=^|\n(?!$))\2(?=\p{space}|;|&|(?=$|\n))()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]}]},herestring:{patterns:[{begin:/(<<<)\p{space}*(('))/dgv,beginCaptures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.quoted.single.shell"},"3":{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.single.shell",end:/(')/dgv,endCaptures:{"0":{name:"string.quoted.single.shell"},"1":{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell"},{begin:/(<<<)\p{space}*(("))/dgv,beginCaptures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.quoted.double.shell"},"3":{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.double.shell",end:/(")/dgv,endCaptures:{"0":{name:"string.quoted.double.shell"},"1":{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell",patterns:[{include:"#double_quote_context"}]},{captures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.unquoted.herestring.shell",patterns:[{include:"#initial_context"}]}},match:/(<<<)\p{space}*(([^\p{space}\)\\]|\\[^\n])+)/dgv,name:"meta.herestring.shell"}]},initial_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#logical_expression_double"},{include:"#logical_expression_single"},{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#loop"},{include:"#function_definition"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#misc_ranges"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#alias_statement"},{include:"#normal_statement"},{include:"#string"},{include:"#support"}]},inline_comment:{captures:{"1":{name:"comment.block.shell punctuation.definition.comment.begin.shell"},"2":{name:"comment.block.shell"},"3":{patterns:[{match:/\*\//dgv,name:"comment.block.shell punctuation.definition.comment.end.shell"},{match:/\*/dgv,name:"comment.block.shell"}]}},match:new EmulatedRegExp("(/\\*)((?:(?=($E$(?:[^\\*]|(?:(?=($E$\\*+))\\4)[^\\/])*))\\3)((?:(?=($E$\\*+))\\6)/))","dgv",{"useEmulationGroups":true})},interpolation:{patterns:[{include:"#arithmetic_dollar"},{include:"#subshell_dollar"},{begin:/`/dgv,beginCaptures:{"0":{name:"punctuation.definition.evaluation.backticks.shell"}},end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.evaluation.backticks.shell"}},name:"string.interpolated.backtick.shell",patterns:[{match:/\\[\`\\\$]/dgv,name:"constant.character.escape.shell"},{begin:/(?<=[^\p{L}\p{M}\p{N}\p{Pc}])(?=#)(?!#\{)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.shell"}},end:new EmulatedRegExp("","dgv",{"strategy":"not_search_start"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.shell"}},end:/(?=`)/dgv,name:"comment.line.number-sign.shell"}]},{include:"#initial_context"}]}]},keyword:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"keyword.control.shell"},{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(?:export|declare|typeset|local|readonly)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"storage.modifier.shell"}]},line_comment:{begin:new EmulatedRegExp("(?:(?=($E$\\p{space}*))\\1)(//)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.comment.shell"}},end:/(?<=\n)(?<!\\\n)/dgv,endCaptures:{},name:"comment.line.double-slash.shell",patterns:[{include:"#line_continuation_character"}]},line_continuation:{match:/\\(?=\n)/dgv,name:"constant.character.escape.line-continuation.shell"},"logical-expression":{patterns:[{include:"#arithmetic_no_dollar"},{comment:"do we want a special rule for ( expr )?",match:/=[\=\~]?|!=?|<|>|&&|\|\|/dgv,name:"keyword.operator.logical.shell"},{match:/(?<!\P{space})-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\b/dgv,name:"keyword.operator.logical.shell"}]},logical_expression_context:{patterns:[{include:"#regex_comparison"},{include:"#arithmetic_no_dollar"},{include:"#logical-expression"},{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#comment"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},logical_expression_double:{begin:/\[\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},end:/\]\]/dgv,endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},logical_expression_single:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},loop:{patterns:[{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(for)\p{space}+([^\n]+?)\p{space}+(in)(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"1":{name:"keyword.control.shell"},"2":{name:"variable.other.loop.shell",patterns:[{include:"#string"}]},"3":{name:"keyword.control.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})done(?=\p{space}|;|&|(?=$|\n)|\))/dgv,endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.for-in-loop.shell",patterns:[{include:"#initial_context"}]},{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(while|until)(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"1":{name:"keyword.control.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})done(?=\p{space}|;|&|(?=$|\n)|\))/dgv,endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.while-loop.shell",patterns:[{include:"#initial_context"}]},{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(select)\p{space}+((?:[^\p{space}\\]|\\[^\n])+)(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"1":{name:"keyword.control.shell"},"2":{name:"variable.other.loop.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(done)(?=\p{space}|;|&|(?=$|\n)|\))/dgv,endCaptures:{"1":{name:"keyword.control.shell"}},name:"meta.scope.select-block.shell",patterns:[{include:"#initial_context"}]},{begin:/(?<=(?<=^|\n(?!$))|;|&|\p{space})if(?=\p{space}|;|&|(?=$|\n))/dgv,beginCaptures:{"0":{name:"keyword.control.if.shell"}},end:/(?<=(?<=^|\n(?!$))|;|&|\p{space})fi(?=\p{space}|;|&|(?=$|\n))/dgv,endCaptures:{"0":{name:"keyword.control.fi.shell"}},name:"meta.scope.if-block.shell",patterns:[{include:"#initial_context"}]}]},math:{patterns:[{include:"#variable"},{match:/\+{1,2}|-{1,2}|!|~|\*{1,2}|\/|%|<[\<\=]?|>[\>\=]?|==|!=|(?<=^|\n(?!$))|\|{1,2}|&{1,2}|\?|:|,|=|[\*\/\%\+\-\&\^\|]=|<<=|>>=/dgv,name:"keyword.operator.arithmetic.shell"},{match:/0[xX][0-9A-Fa-f]+/dgv,name:"constant.numeric.hex.shell"},{match:/;/dgv,name:"punctuation.separator.semicolon.range"},{match:/0\p{Nd}+/dgv,name:"constant.numeric.octal.shell"},{match:/\p{Nd}{1,2}#[0-9a-zA-Z\@_]+/dgv,name:"constant.numeric.other.shell"},{match:/\p{Nd}+/dgv,name:"constant.numeric.integer.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9]+(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"variable.other.normal.shell"}]},math_operators:{patterns:[{match:/\+{1,2}|-{1,2}|!|~|\*{1,2}|\/|%|<[\<\=]?|>[\>\=]?|==|!=|(?<=^|\n(?!$))|\|{1,2}|&{1,2}|\?|:|,|=|[\*\/\%\+\-\&\^\|]=|<<=|>>=/dgv,name:"keyword.operator.arithmetic.shell"},{match:/0[xX][0-9A-Fa-f]+/dgv,name:"constant.numeric.hex.shell"},{match:/0\p{Nd}+/dgv,name:"constant.numeric.octal.shell"},{match:/\p{Nd}{1,2}#[0-9a-zA-Z\@_]+/dgv,name:"constant.numeric.other.shell"},{match:/\p{Nd}+/dgv,name:"constant.numeric.integer.shell"}]},misc_ranges:{patterns:[{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#subshell_dollar"},{begin:/(?<![^ \t])(\{)(?![\p{L}\p{M}\p{N}\p{Pc}]|\$)/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.shell"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},modified_assignment_statement:{begin:/(?<=(?<=^|\n(?!$))|;|&|[ \t])(?:readonly|declare|typeset|export|local)(?=[ \t]|;|&|(?=$|\n))/dgv,beginCaptures:{"0":{name:"storage.modifier.$0.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.shell meta.expression.assignment.modified.shell",patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])-[\p{L}\p{M}\p{N}\p{Pc}]+\b/dgv,name:"string.unquoted.argument.shell constant.other.option.shell"},{include:"#array_value"},{captures:{"1":{name:"variable.other.assignment.shell"},"2":{name:"punctuation.definition.array.access.shell"},"3":{name:"variable.other.assignment.shell"},"4":{name:"constant.numeric.shell constant.numeric.integer.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"},"9":{name:"constant.numeric.shell constant.numeric.hex.shell"},"10":{name:"constant.numeric.shell constant.numeric.octal.shell"},"11":{name:"constant.numeric.shell constant.numeric.other.shell"},"12":{name:"constant.numeric.shell constant.numeric.decimal.shell"},"13":{name:"constant.numeric.shell constant.numeric.version.shell"},"14":{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:/((?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}]))(?:(\[)((?:(?:(?:\$?(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}])|@)|\*)|(-?\p{Nd}+)))(\]))?(?:(?:(=)|(\+=))|(-=))?(?:(?<==| |\t|(?<=^|\n(?!$))|\{|\(|\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\p{Nd}+))|(\p{Nd}{1,2}#[0-9a-zA-Z\@_]+))|(-?\p{Nd}+\.\p{Nd}+))|(-?\p{Nd}+(?:\.\p{Nd}+)+))|(-?\p{Nd}+))(?= |\t|(?=$|\n)|\}|\)|;))?/dgv},{include:"#normal_context"}]},modifiers:{match:/(?<=(?<=^|\n(?!$))|;|&|[ \t])(?:readonly|declare|typeset|export|local)(?=[ \t]|;|&|(?=$|\n))/dgv,name:"storage.modifier.$0.shell"},normal_assignment_statement:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)((?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}]))(?:(\\[)((?:(?:(?:\\$?(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}])[a-zA-Z_0-9\\-]+(?![\\p{L}\\p{M}\\p{N}\\p{Pc}])|@)|\\*)|(-?\\p{Nd}+)))(\\]))?(?:(?:(=)|(\\+=))|(-=))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"variable.other.assignment.shell"},"2":{name:"punctuation.definition.array.access.shell"},"3":{name:"variable.other.assignment.shell"},"4":{name:"constant.numeric.shell constant.numeric.integer.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.expression.assignment.shell",patterns:[{include:"#comment"},{include:"#string"},{include:"#normal_assignment_statement"},{begin:/(?<= |\t)(?! |\t|[\p{L}\p{M}\p{N}\p{Pc}]+=)/dgv,beginCaptures:{},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.command.env.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"}]},{include:"#simple_unquoted"},{include:"#normal_context"}]},normal_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#misc_ranges"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"},{include:"#parenthese"}]},normal_statement:{begin:new EmulatedRegExp("(?!(?<=^|\\n(?!$))(?:(?=($E$[ \\t]*))\\1)(?=$|\\n))(?:(?<=(?<=^|\\n(?!$))until | until |\\tuntil |(?<=^|\\n(?!$))while | while |\\twhile |(?<=^|\\n(?!$))elif | elif |\\telif |(?<=^|\\n(?!$))else | else |\\telse |(?<=^|\\n(?!$))then | then |\\tthen |(?<=^|\\n(?!$))do | do |\\tdo |(?<=^|\\n(?!$))if | if |\\tif )|(?<=(?:(?<=^|\\n(?!$))|;|\\||&|!|\\(|\\{|`)))(?:(?=($E$[ \\t]*))\\2)(?!nocorrect[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|nocorrect\\$|function[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|function\\$|foreach[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|foreach\\$|repeat[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|repeat\\$|logout[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|logout\\$|coproc[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|coproc\\$|select[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|select\\$|while[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|while\\$|pushd[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|pushd\\$|until[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|until\\$|case[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|case\\$|done[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|done\\$|elif[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|elif\\$|else[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|else\\$|esac[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|esac\\$|popd[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|popd\\$|then[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|then\\$|time[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|time\\$|for[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|for\\$|end[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|end\\$|fi[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|fi\\$|do[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|do\\$|in[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|in\\$|if[^\\p{L}\\p{M}\\p{N}\\p{Pc}]|if\\$)","dgv",{"useEmulationGroups":true}),beginCaptures:{},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.statement.shell",patterns:[{include:"#typical_statements"}]},normal_statement_seperator:{captures:{"1":{name:"punctuation.terminator.statement.semicolon.shell"},"2":{name:"punctuation.separator.statement.and.shell"},"3":{name:"punctuation.separator.statement.or.shell"},"4":{name:"punctuation.separator.statement.background.shell"}},match:/(?:(?:(?:(;)|(&&))|(\|\|))|(&))/dgv},numeric_literal:{captures:{"1":{name:"constant.numeric.shell constant.numeric.hex.shell"},"2":{name:"constant.numeric.shell constant.numeric.octal.shell"},"3":{name:"constant.numeric.shell constant.numeric.other.shell"},"4":{name:"constant.numeric.shell constant.numeric.decimal.shell"},"5":{name:"constant.numeric.shell constant.numeric.version.shell"},"6":{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:/(?<==| |\t|(?<=^|\n(?!$))|\{|\(|\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\p{Nd}+))|(\p{Nd}{1,2}#[0-9a-zA-Z\@_]+))|(-?\p{Nd}+\.\p{Nd}+))|(-?\p{Nd}+(?:\.\p{Nd}+)+))|(-?\p{Nd}+))(?= |\t|(?=$|\n)|\}|\)|;)/dgv},option:{begin:new EmulatedRegExp("(?:(?=($E$[ \\t]+))\\1)(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|(?=$|\\n)|;|[ \\t])))","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{name:"string.unquoted.argument.shell constant.other.option.shell"}},contentName:"string.unquoted.argument constant.other.option",end:/(?:(?=[ \t])|(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\))/dgv,endCaptures:{},patterns:[{include:"#option_context"}]},option_context:{patterns:[{include:"#misc_ranges"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},parenthese:{patterns:[{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.parenthese.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.parenthese.shell"}},name:"meta.parenthese.group.shell",patterns:[{include:"#initial_context"}]}]},pathname:{patterns:[{match:/(?<=\p{space}|:|=|(?<=^|\n(?!$)))~/dgv,name:"keyword.operator.tilde.shell"},{match:/\*|\?/dgv,name:"keyword.operator.glob.shell"},{begin:/([\?\*\+\@\!])(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.extglob.shell"},"2":{name:"punctuation.definition.extglob.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.extglob.shell"}},name:"meta.structure.extglob.shell",patterns:[{include:"#initial_context"}]}]},pipeline:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(time)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"keyword.other.shell"},{match:/[\|\!]/dgv,name:"keyword.operator.pipe.shell"}]},redirect_fix:{captures:{"1":{name:"keyword.operator.redirect.shell"},"2":{name:"string.unquoted.argument.shell"}},match:new EmulatedRegExp("(>>?)(?:(?=($E$[ \\t]*))\\2)([^ \\t\\n\\>\\&\\;\\<\\>\\(\\)\\$\\`\\\\\"'\\<\\|]+)","dgv",{"useEmulationGroups":true})},redirect_number:{captures:{"1":{name:"keyword.operator.redirect.stdout.shell"},"2":{name:"keyword.operator.redirect.stderr.shell"},"3":{name:"keyword.operator.redirect.$3.shell"}},match:/(?<=[ \t])(?:(1)|(2)|(\p{Nd}+))(?=>)/dgv},redirection:{patterns:[{begin:/[\>\<]\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.interpolated.process-substitution.shell",patterns:[{include:"#initial_context"}]},{match:/(?<![\<\>])(&>|\p{Nd}*>&\p{Nd}*|\p{Nd}*(>>|>|<)|\p{Nd}*<&|\p{Nd}*<>)(?![\<\>])/dgv,name:"keyword.operator.redirect.shell"}]},regex_comparison:{match:/=~/dgv,name:"keyword.operator.logical.regex.shell"},regexp:{patterns:[{match:/[^\n]+/dgv}]},simple_options:{captures:{"0":{patterns:[{captures:{"1":{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{name:"string.unquoted.argument.shell constant.other.option.shell"}},match:new EmulatedRegExp("(?:(?=($E$[ \\t]+))\\1)(-)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)","dgv",{"useEmulationGroups":true})}]}},match:new EmulatedRegExp("(?:(?:(?=($E$[ \\t]+))\\1)-[\\p{L}\\p{M}\\p{N}\\p{Pc}]+)*","dgv",{"useEmulationGroups":true})},simple_unquoted:{match:/[^ \t\n\>\&\;\<\>\(\)\$\`\\"'\<\|]/dgv,name:"string.unquoted.shell"},special_expansion:{match:/!|:[\-\=\?]?|\*|@|##|#|%%|%|\//dgv,name:"keyword.operator.expansion.shell"},start_of_command:{match:new EmulatedRegExp("(?:(?=($E$[ \\t]*))\\1)(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|(?=$|\\n)|;|[ \\t]))(?!nocorrect |nocorrect\\t|nocorrect(?=$|\\n)|readonly |readonly\\t|readonly(?=$|\\n)|function |function\\t|function(?=$|\\n)|foreach |foreach\\t|foreach(?=$|\\n)|coproc |coproc\\t|coproc(?=$|\\n)|logout |logout\\t|logout(?=$|\\n)|export |export\\t|export(?=$|\\n)|select |select\\t|select(?=$|\\n)|repeat |repeat\\t|repeat(?=$|\\n)|pushd |pushd\\t|pushd(?=$|\\n)|until |until\\t|until(?=$|\\n)|while |while\\t|while(?=$|\\n)|local |local\\t|local(?=$|\\n)|case |case\\t|case(?=$|\\n)|done |done\\t|done(?=$|\\n)|elif |elif\\t|elif(?=$|\\n)|else |else\\t|else(?=$|\\n)|esac |esac\\t|esac(?=$|\\n)|popd |popd\\t|popd(?=$|\\n)|then |then\\t|then(?=$|\\n)|time |time\\t|time(?=$|\\n)|for |for\\t|for(?=$|\\n)|end |end\\t|end(?=$|\\n)|fi |fi\\t|fi(?=$|\\n)|do |do\\t|do(?=$|\\n)|in |in\\t|in(?=$|\\n)|if |if\\t|if(?=$|\\n))(?!\\\\\\n?(?=$|\\n))","dgv",{"useEmulationGroups":true})},string:{patterns:[{match:/\\[^\n]/dgv,name:"constant.character.escape.shell"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.shell"},{begin:/\$?"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.double.shell",patterns:[{match:/\\[\$\n\`"\\]/dgv,name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},{begin:/\$'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.dollar.shell",patterns:[{match:/\\(?:a|b|e|f|n|r|t|v|\\|')/dgv,name:"constant.character.escape.ansi-c.shell"},{match:/\\[0-9]{3}"/dgv,name:"constant.character.escape.octal.shell"},{match:/\\x[0-9a-fA-F]{2}"/dgv,name:"constant.character.escape.hex.shell"},{match:/\\c[^\n]"/dgv,name:"constant.character.escape.control-char.shell"}]}]},subshell_dollar:{patterns:[{begin:/\$\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.subshell.single.shell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.subshell.single.shell"}},name:"meta.scope.subshell",patterns:[{include:"#parenthese"},{include:"#initial_context"}]}]},support:{patterns:[{match:/(?<=(?<=^|\n(?!$))|;|&|\p{space})(?::|\.)(?=\p{space}|;|&|(?=$|\n))/dgv,name:"support.function.builtin.shell"}]},typical_statements:{patterns:[{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#while_statement"},{include:"#function_definition"},{include:"#command_statement"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#normal_context"}]},variable:{patterns:[{captures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.all.shell"},"2":{name:"variable.parameter.positional.all.shell"}},match:/(\$)(@(?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv},{captures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{name:"variable.parameter.positional.shell"}},match:/(\$)([0-9](?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv},{captures:{"1":{name:"punctuation.definition.variable.shell variable.language.special.shell"},"2":{name:"variable.language.special.shell"}},match:/(\$)([\-\*\#\?\$\!0_](?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv},{begin:new EmulatedRegExp("(\\$)(\\{)(?:(?=($E$[ \\t]*))\\3)(?=\\p{Nd})","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},contentName:"meta.parameter-expansion",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:/[0-9]+/dgv,name:"variable.parameter.positional.shell"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{begin:/(\$)(\{)/dgv,beginCaptures:{"1":{name:"punctuation.definition.variable.shell"},"2":{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell"}},contentName:"meta.parameter-expansion",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[a-zA-Z_0-9\-]+(?![\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{captures:{"1":{name:"punctuation.definition.variable.shell variable.other.normal.shell"},"2":{name:"variable.other.normal.shell"}},match:/(\$)([\p{L}\p{M}\p{N}\p{Pc}]+(?![\p{L}\p{M}\p{N}\p{Pc}]))/dgv}]},while_statement:{patterns:[{begin:/(\bwhile\b)/dgv,beginCaptures:{"1":{name:"keyword.control.while.shell"}},end:/(?=;|\||&|\n|\)|`|\{|\}|[ \t]*#|\])(?<!\\)/dgv,endCaptures:{},name:"meta.while.shell",patterns:[{include:"#line_continuation"},{include:"#math_operators"},{include:"#option"},{include:"#simple_unquoted"},{include:"#normal_context"},{include:"#string"}]}]}},scopeName:"source.shell",embeddedLangs:undefined,aliases:["bash","sh","shell","zsh"]})
|
|
4
4
|
|
|
5
5
|
export default [
|
|
6
6
|
lang
|
package/dist/smalltalk.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EmulatedRegExp } from 'oniguruma-to-es'
|
|
2
2
|
|
|
3
|
-
const lang = Object.freeze({displayName:"Smalltalk",fileTypes:["st"],foldingStartMarker:/\[/dgv,foldingStopMarker:/(?<=^|\n(?!$))\p{space}*\]|(?<=^|\n(?!$))\p{space}\]/dgv,name:"smalltalk",patterns:[{match:/\$[^\n]/dgv,name:"constant.character.smalltalk"},{match:/\b(class)\b/dgv,name:"storage.type.$1.smalltalk"},{match:/\b(extend|super|self)\b/dgv,name:"storage.modifier.$1.smalltalk"},{match:/\b(yourself|new|Smalltalk)\b/dgv,name:"keyword.control.$1.smalltalk"},{match:/:=/dgv,name:"keyword.operator.assignment.smalltalk"},{comment:"Parse the variable declaration like: |a b c|",match:/\/(?<=^|\n(?!$)):[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\|\//dgv,name:"constant.other.block.smalltalk"},{captures:{"1":{name:"punctuation.definition.instance-variables.begin.smalltalk"},"2":{patterns:[{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"support.type.variable.declaration.smalltalk"}]},"3":{name:"punctuation.definition.instance-variables.end.smalltalk"}},match:/(\|)(\p{space}*[\p{L}\p{M}\p{N}\p{Pc}][\p{L}\p{M}\p{N}\p{Pc} ]*)(\|)/dgv},{captures:{"1":{patterns:[{match:/:[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.function.block.smalltalk"}]}},comment:"Parse the blocks like: [ :a :b | ...... ]",match:/\[((\p{space}+|:[\p{L}\p{M}\p{N}\p{Pc}]+)*)\|/dgv},{include:"#numeric"},{match:/<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\^/dgv,name:"keyword.operator.comparison.smalltalk"},{match:/(\*|\+|-|\/|\\)/dgv,name:"keyword.operator.arithmetic.smalltalk"},{match:/(?<=[ \t])!+|\bnot\b|&|\band\b|\||\bor\b/dgv,name:"keyword.operator.logical.smalltalk"},{comment:"Fake reserved word -> main Smalltalk messages",match:/(?<!\.)\b(ensure|resume|retry|signal)\b(?![\?\!])/dgv,name:"keyword.control.smalltalk"},{comment:"Fake conditionals. Smalltalk Methods.",match:/ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:/dgv,name:"keyword.control.conditionals.smalltalk"},{captures:{"1":{name:"entity.other.inherited-class.smalltalk"},"3":{name:"keyword.control.smalltalk"},"4":{name:"entity.name.type.class.smalltalk"}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+)(\p{space}+(subclass:))\p{space}*([\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"meta.class.smalltalk"},{begin:/"/dgv,beginCaptures:[{name:"punctuation.definition.comment.begin.smalltalk"}],end:/"/dgv,endCaptures:[{name:"punctuation.definition.comment.end.smalltalk"}],name:"comment.block.smalltalk"},{match:/\b(true|false)\b/dgv,name:"constant.language.boolean.smalltalk"},{match:/\b(nil)\b/dgv,name:"constant.language.nil.smalltalk"},{captures:{"1":{name:"punctuation.definition.constant.smalltalk"}},comment:"messages/methods",match:new EmulatedRegExp("(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\2)?))\\1)(:)(?!:)","dgv",{"useEmulationGroups":true}),name:"constant.other.messages.smalltalk"},{captures:{"1":{name:"punctuation.definition.constant.smalltalk"}},comment:"symbols",match:/(#)[a-zA-Z_][a-zA-Z0-9_\:]*/dgv,name:"constant.other.symbol.smalltalk"},{begin:/#\[/dgv,beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],end:/\]/dgv,endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"meta.array.byte.smalltalk",patterns:[{match
|
|
3
|
+
const lang = Object.freeze({displayName:"Smalltalk",fileTypes:["st"],foldingStartMarker:/\[/dgv,foldingStopMarker:/(?<=^|\n(?!$))\p{space}*\]|(?<=^|\n(?!$))\p{space}\]/dgv,name:"smalltalk",patterns:[{match:/\$[^\n]/dgv,name:"constant.character.smalltalk"},{match:/\b(class)\b/dgv,name:"storage.type.$1.smalltalk"},{match:/\b(extend|super|self)\b/dgv,name:"storage.modifier.$1.smalltalk"},{match:/\b(yourself|new|Smalltalk)\b/dgv,name:"keyword.control.$1.smalltalk"},{match:/:=/dgv,name:"keyword.operator.assignment.smalltalk"},{comment:"Parse the variable declaration like: |a b c|",match:/\/(?<=^|\n(?!$)):[\p{L}\p{M}\p{N}\p{Pc}]*\p{space}*\|\//dgv,name:"constant.other.block.smalltalk"},{captures:{"1":{name:"punctuation.definition.instance-variables.begin.smalltalk"},"2":{patterns:[{match:/[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"support.type.variable.declaration.smalltalk"}]},"3":{name:"punctuation.definition.instance-variables.end.smalltalk"}},match:/(\|)(\p{space}*[\p{L}\p{M}\p{N}\p{Pc}][\p{L}\p{M}\p{N}\p{Pc} ]*)(\|)/dgv},{captures:{"1":{patterns:[{match:/:[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,name:"entity.name.function.block.smalltalk"}]}},comment:"Parse the blocks like: [ :a :b | ...... ]",match:/\[((\p{space}+|:[\p{L}\p{M}\p{N}\p{Pc}]+)*)\|/dgv},{include:"#numeric"},{match:/<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\^/dgv,name:"keyword.operator.comparison.smalltalk"},{match:/(\*|\+|-|\/|\\)/dgv,name:"keyword.operator.arithmetic.smalltalk"},{match:/(?<=[ \t])!+|\bnot\b|&|\band\b|\||\bor\b/dgv,name:"keyword.operator.logical.smalltalk"},{comment:"Fake reserved word -> main Smalltalk messages",match:/(?<!\.)\b(ensure|resume|retry|signal)\b(?![\?\!])/dgv,name:"keyword.control.smalltalk"},{comment:"Fake conditionals. Smalltalk Methods.",match:/ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:/dgv,name:"keyword.control.conditionals.smalltalk"},{captures:{"1":{name:"entity.other.inherited-class.smalltalk"},"3":{name:"keyword.control.smalltalk"},"4":{name:"entity.name.type.class.smalltalk"}},match:/([\p{L}\p{M}\p{N}\p{Pc}]+)(\p{space}+(subclass:))\p{space}*([\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"meta.class.smalltalk"},{begin:/"/dgv,beginCaptures:[{name:"punctuation.definition.comment.begin.smalltalk"}],end:/"/dgv,endCaptures:[{name:"punctuation.definition.comment.end.smalltalk"}],name:"comment.block.smalltalk"},{match:/\b(true|false)\b/dgv,name:"constant.language.boolean.smalltalk"},{match:/\b(nil)\b/dgv,name:"constant.language.nil.smalltalk"},{captures:{"1":{name:"punctuation.definition.constant.smalltalk"}},comment:"messages/methods",match:new EmulatedRegExp("(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\2)?))\\1)(:)(?!:)","dgv",{"useEmulationGroups":true}),name:"constant.other.messages.smalltalk"},{captures:{"1":{name:"punctuation.definition.constant.smalltalk"}},comment:"symbols",match:/(#)[a-zA-Z_][a-zA-Z0-9_\:]*/dgv,name:"constant.other.symbol.smalltalk"},{begin:/#\[/dgv,beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],end:/\]/dgv,endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"meta.array.byte.smalltalk",patterns:[{match:/[0-9]+(r[a-zA-Z0-9]+)?/dgv,name:"constant.numeric.integer.smalltalk"},{match:/[^\p{space}\]]+/dgv,name:"invalid.illegal.character-not-allowed-here.smalltalk"}]},{begin:/#\(/dgv,beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],comment:"Array Constructor",end:/\)/dgv,endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"constant.other.array.smalltalk"},{begin:/'/dgv,beginCaptures:[{name:"punctuation.definition.string.begin.smalltalk"}],end:/'/dgv,endCaptures:[{name:"punctuation.definition.string.end.smalltalk"}],name:"string.quoted.single.smalltalk"},{match:/\b[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.other.constant.smalltalk"}],repository:{numeric:{patterns:[{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[0-9]+\.[0-9]+s[0-9]*/dgv,name:"constant.numeric.float.scaled.smalltalk"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])[0-9]+\.[0-9]+([edq]-?[0-9]+)?/dgv,name:"constant.numeric.float.smalltalk"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])-?[0-9]+r[a-zA-Z0-9]+/dgv,name:"constant.numeric.integer.radix.smalltalk"},{match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])-?[0-9]+([edq]-?[0-9]+)?/dgv,name:"constant.numeric.integer.smalltalk"}]}},scopeName:"source.smalltalk",embeddedLangs:undefined,aliases:undefined})
|
|
4
4
|
|
|
5
5
|
export default [
|
|
6
6
|
lang
|