@shikijs/langs-precompiled 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abap.mjs +3 -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/asciidoc.mjs +1 -1
- package/dist/asm.mjs +1 -1
- package/dist/astro.mjs +1 -1
- package/dist/ballerina.mjs +3 -1
- package/dist/blade.mjs +1 -1
- package/dist/bsl.mjs +2 -1
- package/dist/c.mjs +1 -1
- package/dist/cadence.mjs +1 -1
- package/dist/cobol.mjs +2 -1
- package/dist/codeql.mjs +6 -2
- package/dist/coffee.mjs +2 -1
- package/dist/common-lisp.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/dax.mjs +3 -1
- package/dist/dream-maker.mjs +1 -1
- package/dist/elixir.mjs +1 -1
- package/dist/emacs-lisp.mjs +1 -1
- package/dist/erlang.mjs +1 -1
- package/dist/fortran-free-form.mjs +1 -1
- package/dist/gdscript.mjs +1 -1
- package/dist/gherkin.mjs +3 -1
- package/dist/glimmer-js.mjs +1 -1
- package/dist/glimmer-ts.mjs +1 -1
- package/dist/go.mjs +1 -1
- package/dist/graphql.mjs +1 -1
- package/dist/hack.mjs +1 -1
- package/dist/haml.mjs +1 -1
- package/dist/haskell.mjs +1 -1
- package/dist/html.mjs +1 -1
- package/dist/imba.mjs +1 -1
- package/dist/ini.mjs +1 -1
- package/dist/java.mjs +1 -1
- package/dist/javascript.mjs +1 -1
- package/dist/jsx.mjs +1 -1
- package/dist/julia.mjs +1 -1
- package/dist/kotlin.mjs +1 -1
- package/dist/kusto.mjs +1 -1
- package/dist/latex.mjs +1 -1
- package/dist/less.mjs +3 -1
- package/dist/logo.mjs +1 -1
- package/dist/lua.mjs +1 -1
- package/dist/make.mjs +1 -1
- package/dist/markdown-vue.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/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/pascal.mjs +1 -1
- package/dist/perl.mjs +1 -1
- package/dist/php.mjs +1 -1
- package/dist/po.mjs +1 -1
- package/dist/polar.mjs +1 -1
- package/dist/powershell.mjs +1 -1
- package/dist/prolog.mjs +3 -1
- package/dist/pug.mjs +1 -1
- package/dist/python.mjs +1 -1
- package/dist/r.mjs +1 -1
- package/dist/racket.mjs +3 -1
- package/dist/raku.mjs +1 -1
- package/dist/razor.mjs +1 -1
- package/dist/riscv.mjs +1 -1
- package/dist/ruby.mjs +1 -1
- package/dist/sas.mjs +2 -1
- package/dist/scala.mjs +1 -1
- package/dist/scheme.mjs +1 -1
- package/dist/scss.mjs +1 -1
- package/dist/shellscript.mjs +1 -1
- package/dist/smalltalk.mjs +1 -1
- package/dist/sql.mjs +1 -1
- package/dist/ssh-config.mjs +1 -1
- package/dist/stata.mjs +2 -1
- package/dist/stylus.mjs +1 -1
- package/dist/svelte.mjs +1 -1
- package/dist/systemd.mjs +1 -1
- package/dist/templ.mjs +1 -1
- package/dist/tex.mjs +1 -1
- package/dist/toml.mjs +1 -1
- package/dist/tsx.mjs +1 -1
- package/dist/twig.mjs +1 -1
- package/dist/typescript.mjs +1 -1
- package/dist/v.mjs +1 -1
- package/dist/vb.mjs +1 -1
- package/dist/verilog.mjs +1 -1
- package/dist/viml.mjs +3 -1
- package/dist/vue-html.mjs +1 -1
- package/dist/vue.mjs +1 -1
- package/dist/vyper.mjs +1 -1
- package/dist/wikitext.mjs +1 -1
- package/dist/wolfram.mjs +1 -1
- package/dist/yaml.mjs +1 -1
- package/package.json +4 -4
package/dist/razor.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { EmulatedRegExp } from 'oniguruma-to-es'
|
|
|
2
2
|
import html from './html.mjs'
|
|
3
3
|
import csharp from './csharp.mjs'
|
|
4
4
|
|
|
5
|
-
const lang = Object.freeze({displayName:"ASP.NET Razor",fileTypes:["razor","cshtml"],injections:{"string.quoted.double.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]},"string.quoted.single.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]}},name:"razor",patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}],repository:{"addTagHelper-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.addTagHelper"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}},match:/(@)(addTagHelper)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"attribute-directive":{begin:/(@)(attribute)\b\p{space}+/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.attribute"}},end:/(?<=\])|(?=\n?$)/dgv,name:"meta.directive",patterns:[{include:"source.cs#attribute-section"}]},"await-prefix":{match:/(await)\p{space}+/dgv,name:"keyword.other.await.cs"},"balanced-brackets-csharp":{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.squarebracket.open.cs"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.squarebracket.close.cs"}},name:"razor.test.balanced.brackets",patterns:[{include:"source.cs"}]},"balanced-parenthesis-csharp":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.parenthesis.open.cs"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parenthesis.close.cs"}},name:"razor.test.balanced.parenthesis",patterns:[{include:"source.cs"}]},"catch-clause":{begin:/(?:^|(?<=\}))\p{space}*(catch)\b\p{space}*?(?=[\n\(\{])/dgv,beginCaptures:{"1":{name:"keyword.control.try.catch.cs"}},end:/(?<=\})/dgv,name:"meta.statement.catch.razor",patterns:[{include:"#catch-condition"},{include:"source.cs#when-clause"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"catch-condition":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{"1":{patterns:[{include:"source.cs#type"}]},"6":{name:"entity.name.variable.local.cs"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<$0_type_name>(?:(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<$1_name_and_type_args>($2$E$@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<$2_type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*($3$E$($2$E$@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*($4$E$\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*|(?<tuple>\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:))+\\)))+\\)))+\\)))+\\)))+\\)))(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?:(($2$E$@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\b)?","dgv",{"useEmulationGroups":true})}]},"code-directive":{begin:/(@)(code)((?=\{)|\p{space}+)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.code"}},end:/(?<=\})|\p{space}/dgv,patterns:[{include:"#directive-codeblock"}]},"csharp-code-block":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"punctuation.curlybrace.open.cs"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"csharp-condition":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.parenthesis.open.cs"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"source.cs#local-variable-declaration"},{include:"source.cs#expression"},{include:"source.cs#punctuation-comma"},{include:"source.cs#punctuation-semicolon"}]},"directive-codeblock":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:/(\})/dgv,endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.codeblock",patterns:[{include:"source.cs#class-or-struct-members"}]},"directive-markupblock":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.open"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.markblock",patterns:[{include:"$self"}]},directives:{patterns:[{include:"#code-directive"},{include:"#functions-directive"},{include:"#page-directive"},{include:"#addTagHelper-directive"},{include:"#removeTagHelper-directive"},{include:"#tagHelperPrefix-directive"},{include:"#model-directive"},{include:"#inherits-directive"},{include:"#implements-directive"},{include:"#namespace-directive"},{include:"#inject-directive"},{include:"#attribute-directive"},{include:"#section-directive"},{include:"#layout-directive"},{include:"#using-directive"},{include:"#rendermode-directive"},{include:"#preservewhitespace-directive"},{include:"#typeparam-directive"}]},"do-statement":{begin:/(@)(do)\b\p{space}/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.do.cs"}},end:/(?<=\})/dgv,name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"do-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(do)\b\p{space}/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.do.cs"}},end:/(?<=\})/dgv,name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"else-part":{begin:/(?:^|(?<=\}))\p{space}*(else)\b\p{space}*?(?: (if))?\p{space}*?(?=[\n\(\{])/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.else.cs"},"2":{name:"keyword.control.conditional.if.cs"}},end:/(?<=\})/dgv,name:"meta.statement.else.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"escaped-transition":{match:/@@/dgv,name:"constant.character.escape.razor.transition"},"explicit-razor-expression":{begin:/(@)\(/dgv,beginCaptures:{"0":{name:"keyword.control.cshtml"},"1":{patterns:[{include:"#transition"}]}},end:/\)/dgv,endCaptures:{"0":{name:"keyword.control.cshtml"}},name:"meta.expression.explicit.cshtml",patterns:[{include:"source.cs#expression"}]},"finally-clause":{begin:/(?:^|(?<=\}))\p{space}*(finally)\b\p{space}*?(?=[\n\{])/dgv,beginCaptures:{"1":{name:"keyword.control.try.finally.cs"}},end:/(?<=\})/dgv,name:"meta.statement.finally.razor",patterns:[{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement":{begin:/(@)(for)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.for.cs"}},end:/(?<=\})/dgv,name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(for)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.for.cs"}},end:/(?<=\})/dgv,name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-condition":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"source.cs#type"}]},"7":{name:"entity.name.variable.local.cs"},"8":{name:"keyword.control.loop.in.cs"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(\\bvar\\b)|(?<$0_type_name>(?:(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<$1_name_and_type_args>($3$E$@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<$2_type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*($4$E$($3$E$@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*($5$E$\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*|(?<tuple>\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:))+\\)))+\\)))+\\)))+\\)))+\\)))(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*))\\p{space}+(($3$E$@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}+\\b(in)\\b","dgv",{"useEmulationGroups":true})},{captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"source.cs#tuple-declaration-deconstruction-element-list"}]},"3":{name:"keyword.control.loop.in.cs"}},match:/(?:\b(var)\b\p{space}*)?(?<tuple>\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:))+\)))+\)))+\)))+\)))+\))\p{space}+\b(in)\b/dgv},{include:"source.cs#expression"}]},"foreach-statement":{begin:/(@)(await\p{space}+)?(foreach)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{patterns:[{include:"#await-prefix"}]},"3":{name:"keyword.control.loop.foreach.cs"}},end:/(?<=\})/dgv,name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@)(await\p{space}+)?)(foreach)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{patterns:[{include:"#await-prefix"}]},"3":{name:"keyword.control.loop.foreach.cs"}},end:/(?<=\})/dgv,name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"functions-directive":{begin:/(@)(functions)((?=\{)|\p{space}+)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.functions"}},end:/(?<=\})|\p{space}/dgv,patterns:[{include:"#directive-codeblock"}]},"if-statement":{begin:/(@)(if)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.conditional.if.cs"}},end:/(?<=\})/dgv,name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"if-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(if)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.conditional.if.cs"}},end:/(?<=\})/dgv,name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"implements-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.implements"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(implements)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"implicit-expression":{begin:/(?<![\p{Alpha}\p{Alpha}\p{Nd}])(@)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]}},contentName:"source.cs",end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,name:"meta.expression.implicit.cshtml",patterns:[{include:"#await-prefix"},{include:"#implicit-expression-body"}]},"implicit-expression-accessor":{match:/(?<=\.)[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.object.property.cs"},"implicit-expression-accessor-start":{begin:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"variable.other.object.cs"}},end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-body":{end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#implicit-expression-invocation-start"},{include:"#implicit-expression-accessor-start"}]},"implicit-expression-continuation":{end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#balanced-parenthesis-csharp"},{include:"#balanced-brackets-csharp"},{include:"#implicit-expression-invocation"},{include:"#implicit-expression-accessor"},{include:"#implicit-expression-extension"}]},"implicit-expression-dot-operator":{captures:{"1":{name:"punctuation.accessor.cs"}},match:/(\.)(?=[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv},"implicit-expression-invocation":{match:/(?<=\.)[_\p{Alpha}][_\p{Alpha}\p{Nd}]*(?=\()/dgv,name:"entity.name.function.cs"},"implicit-expression-invocation-start":{begin:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(?=\()/dgv,beginCaptures:{"1":{name:"entity.name.function.cs"}},end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-null-conditional-operator":{captures:{"1":{name:"keyword.operator.null-conditional.cs"}},match:/(\?)(?=[\.\[])/dgv},"implicit-expression-null-forgiveness-operator":{captures:{"1":{name:"keyword.operator.logical.cs"}},match:/(!)(?=\.[_\p{Alpha}][_\p{Alpha}\p{Nd}]*|\?|[\[\(])/dgv},"implicit-expression-operator":{patterns:[{include:"#implicit-expression-dot-operator"},{include:"#implicit-expression-null-conditional-operator"},{include:"#implicit-expression-null-forgiveness-operator"}]},"inherits-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.inherits"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(inherits)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"inject-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.inject"},"3":{patterns:[{include:"source.cs#type"}]},"4":{name:"entity.name.variable.property.cs"}},match:/(@)(inject)\p{space}*([\P{space}\p{space}]+?)?\p{space}*([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)?\p{space}*(?=(?=\n?$))/dgv,name:"meta.directive"},"layout-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.layout"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(layout)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"lock-statement":{begin:/(@)(lock)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.lock.cs"}},end:/(?<=\})/dgv,name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"lock-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(lock)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.lock.cs"}},end:/(?<=\})/dgv,name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"model-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.model"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(model)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"namespace-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.namespace"},"3":{patterns:[{include:"#namespace-directive-argument"}]}},match:/(@)(namespace)\p{space}+([^\p{space}]+)?/dgv,name:"meta.directive"},"namespace-directive-argument":{captures:{"1":{name:"entity.name.type.namespace.cs"},"2":{name:"punctuation.accessor.cs"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(\.)?/dgv},"non-void-tag":{begin:/(?=<(!)?([^\/\p{space}\>]+)(\p{space}|\/?>))/dgv,end:/(<\/)((?!))\p{space}*(>)|(\/>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"punctuation.definition.tag.end.html"},"4":{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:/(<)(!)?([^\/\p{space}\>]+)(?=\p{space}|\/?>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"constant.character.escape.razor.tagHelperOptOut"},"3":{name:"entity.name.tag.html"}},end:/(?=\/?>)/dgv,patterns:[{include:"#razor-control-structures"},{include:"text.html.basic#attribute"}]},{begin:/>/dgv,beginCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},end:/(?=<\/)/dgv,patterns:[{include:"#wellformed-html"},{include:"$self"}]}]},"optionally-transitioned-csharp-control-structures":{patterns:[{include:"#using-statement-with-optional-transition"},{include:"#if-statement-with-optional-transition"},{include:"#else-part"},{include:"#foreach-statement-with-optional-transition"},{include:"#for-statement-with-optional-transition"},{include:"#while-statement"},{include:"#switch-statement-with-optional-transition"},{include:"#lock-statement-with-optional-transition"},{include:"#do-statement-with-optional-transition"},{include:"#try-statement-with-optional-transition"}]},"optionally-transitioned-razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#optionally-transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"page-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.page"},"3":{patterns:[{include:"source.cs#string-literal"}]}},match:/(@)(page)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"preservewhitespace-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.preservewhitespace"},"3":{patterns:[{include:"source.cs#boolean-literal"}]}},match:/(@)(preservewhitespace)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"razor-codeblock":{begin:/(@)(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:/(\})/dgv,endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"razor-codeblock-body":{patterns:[{include:"#text-tag"},{include:"#wellformed-html"},{include:"#razor-single-line-markup"},{include:"#optionally-transitioned-razor-control-structures"},{include:"source.cs"}]},"razor-comment":{begin:/(@)(\*)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.comment.star"}},contentName:"comment.block.razor",end:/(\*)(@)/dgv,endCaptures:{"1":{name:"keyword.control.razor.comment.star"},"2":{patterns:[{include:"#transition"}]}},name:"meta.comment.razor"},"razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"razor-single-line-markup":{captures:{"1":{name:"keyword.control.razor.singleLineMarkup"},"2":{patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}]}},match:/(@:)([^\$]*)(?=\n?$)/dgv},"removeTagHelper-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.removeTagHelper"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}},match:/(@)(removeTagHelper)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"rendermode-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.rendermode"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(rendermode)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"section-directive":{begin:/(@)(section)\b\p{space}+([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)?/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.section"},"3":{name:"variable.other.razor.directive.sectionName"}},end:/(?<=\})/dgv,name:"meta.directive.block",patterns:[{include:"#directive-markupblock"}]},"switch-code-block":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"punctuation.curlybrace.open.cs"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock.switch",patterns:[{include:"source.cs#switch-label"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"switch-statement":{begin:/(@)(switch)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.switch.cs"}},end:/(?<=\})/dgv,name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"switch-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(switch)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.switch.cs"}},end:/(?<=\})/dgv,name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"tagHelper-directive-argument":{patterns:[{include:"source.cs#string-literal"},{include:"#unquoted-string-argument"}]},"tagHelperPrefix-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.tagHelperPrefix"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}},match:/(@)(tagHelperPrefix)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"text-tag":{begin:/(<text\p{space}*>)/dgv,beginCaptures:{"1":{name:"keyword.control.cshtml.transition.textTag.open"}},end:/(<\/text>)/dgv,endCaptures:{"1":{name:"keyword.control.cshtml.transition.textTag.close"}},patterns:[{include:"#wellformed-html"},{include:"$self"}]},transition:{match:/@/dgv,name:"keyword.control.cshtml.transition"},"transitioned-csharp-control-structures":{patterns:[{include:"#using-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#foreach-statement"},{include:"#for-statement"},{include:"#while-statement"},{include:"#switch-statement"},{include:"#lock-statement"},{include:"#do-statement"},{include:"#try-statement"}]},"try-block":{begin:/(@)(try)\b\p{space}*/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.try.cs"}},end:/(?<=\})/dgv,name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-block-with-optional-transition":{begin:/(?:^\p{space}*|(@))(try)\b\p{space}*/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.try.cs"}},end:/(?<=\})/dgv,name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},"try-statement-with-optional-transition":{patterns:[{include:"#try-block-with-optional-transition"},{include:"#catch-clause"},{include:"#finally-clause"}]},"typeparam-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.typeparam"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(typeparam)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"unquoted-string-argument":{match:/[^\$]+/dgv,name:"string.quoted.double.cs"},"using-alias-directive":{captures:{"1":{name:"entity.name.type.alias.cs"},"2":{name:"keyword.operator.assignment.cs"},"3":{patterns:[{include:"source.cs#type"}]}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b\p{space}*(=)\p{space}*([^\n]+)\p{space}*/dgv},"using-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"},"3":{patterns:[{include:"#using-static-directive"},{include:"#using-alias-directive"},{include:"#using-standard-directive"}]},"4":{name:"keyword.control.razor.optionalSemicolon"}},match:/(@)(using)\b\p{space}+(?!\(|\p{space})([^\n]+?)?(;)?(?=\n?$)/dgv,name:"meta.directive"},"using-standard-directive":{captures:{"1":{name:"entity.name.type.namespace.cs"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*/dgv},"using-statement":{begin:/(@)(using)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"}},end:/(?<=\})/dgv,name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(using)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"}},end:/(?<=\})/dgv,name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-static-directive":{captures:{"1":{name:"keyword.other.static.cs"},"2":{patterns:[{include:"source.cs#type"}]}},match:/(static)\b\p{space}+([^\n]+)/dgv},"void-tag":{begin:/(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\p{space}|\/?>)/dgiv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"constant.character.escape.razor.tagHelperOptOut"},"3":{name:"entity.name.tag.html"}},end:/\/?>/dgv,endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$3.void.html",patterns:[{include:"text.html.basic#attribute"}]},"wellformed-html":{patterns:[{include:"#void-tag"},{include:"#non-void-tag"}]},"while-statement":{begin:/(?:(@)|^\p{space}*|(?<=\})\p{space}*)(while)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.while.cs"}},end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.statement.cs"}},name:"meta.statement.while.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]}},scopeName:"text.aspnetcorerazor",embeddedLangs:["html","csharp"],aliases:undefined})
|
|
5
|
+
const lang = Object.freeze({displayName:"ASP.NET Razor",fileTypes:["razor","cshtml"],injections:{"string.quoted.double.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]},"string.quoted.single.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]}},name:"razor",patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}],repository:{"addTagHelper-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.addTagHelper"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}},match:/(@)(addTagHelper)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"attribute-directive":{begin:/(@)(attribute)\b\p{space}+/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.attribute"}},end:/(?<=\])|(?=\n?$)/dgv,name:"meta.directive",patterns:[{include:"source.cs#attribute-section"}]},"await-prefix":{match:/(await)\p{space}+/dgv,name:"keyword.other.await.cs"},"balanced-brackets-csharp":{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.squarebracket.open.cs"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.squarebracket.close.cs"}},name:"razor.test.balanced.brackets",patterns:[{include:"source.cs"}]},"balanced-parenthesis-csharp":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.parenthesis.open.cs"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parenthesis.close.cs"}},name:"razor.test.balanced.parenthesis",patterns:[{include:"source.cs"}]},"catch-clause":{begin:/(?:^|(?<=\}))\p{space}*(catch)\b\p{space}*?(?=[\n\(\{])/dgv,beginCaptures:{"1":{name:"keyword.control.try.catch.cs"}},end:/(?<=\})/dgv,name:"meta.statement.catch.razor",patterns:[{include:"#catch-condition"},{include:"source.cs#when-clause"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"catch-condition":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{"1":{patterns:[{include:"source.cs#type"}]},"6":{name:"entity.name.variable.local.cs"}},match:/*@__PURE__*/ new EmulatedRegExp("(?<$0_type_name>(?:(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<$1_name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<$2_type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*|(?<tuple>\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:))+\\)))+\\)))+\\)))+\\)))+\\)))(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*)\\p{space}*(?:((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\b)?","dgv",{"hiddenCaptures":[4,6,7,8,11],"transfers":[[2,[4,7,11]],[3,[6]],[5,[8]]]})}]},"code-directive":{begin:/(@)(code)((?=\{)|\p{space}+)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.code"}},end:/(?<=\})|\p{space}/dgv,patterns:[{include:"#directive-codeblock"}]},"csharp-code-block":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"punctuation.curlybrace.open.cs"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"csharp-condition":{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.parenthesis.open.cs"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"source.cs#local-variable-declaration"},{include:"source.cs#expression"},{include:"source.cs#punctuation-comma"},{include:"source.cs#punctuation-semicolon"}]},"directive-codeblock":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:/(\})/dgv,endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.codeblock",patterns:[{include:"source.cs#class-or-struct-members"}]},"directive-markupblock":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.open"}},end:/(\})/dgv,endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.markblock",patterns:[{include:"$self"}]},directives:{patterns:[{include:"#code-directive"},{include:"#functions-directive"},{include:"#page-directive"},{include:"#addTagHelper-directive"},{include:"#removeTagHelper-directive"},{include:"#tagHelperPrefix-directive"},{include:"#model-directive"},{include:"#inherits-directive"},{include:"#implements-directive"},{include:"#namespace-directive"},{include:"#inject-directive"},{include:"#attribute-directive"},{include:"#section-directive"},{include:"#layout-directive"},{include:"#using-directive"},{include:"#rendermode-directive"},{include:"#preservewhitespace-directive"},{include:"#typeparam-directive"}]},"do-statement":{begin:/(@)(do)\b\p{space}/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.do.cs"}},end:/(?<=\})/dgv,name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"do-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(do)\b\p{space}/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.do.cs"}},end:/(?<=\})/dgv,name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"else-part":{begin:/(?:^|(?<=\}))\p{space}*(else)\b\p{space}*?(?: (if))?\p{space}*?(?=[\n\(\{])/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.else.cs"},"2":{name:"keyword.control.conditional.if.cs"}},end:/(?<=\})/dgv,name:"meta.statement.else.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"escaped-transition":{match:/@@/dgv,name:"constant.character.escape.razor.transition"},"explicit-razor-expression":{begin:/(@)\(/dgv,beginCaptures:{"0":{name:"keyword.control.cshtml"},"1":{patterns:[{include:"#transition"}]}},end:/\)/dgv,endCaptures:{"0":{name:"keyword.control.cshtml"}},name:"meta.expression.explicit.cshtml",patterns:[{include:"source.cs#expression"}]},"finally-clause":{begin:/(?:^|(?<=\}))\p{space}*(finally)\b\p{space}*?(?=[\n\{])/dgv,beginCaptures:{"1":{name:"keyword.control.try.finally.cs"}},end:/(?<=\})/dgv,name:"meta.statement.finally.razor",patterns:[{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement":{begin:/(@)(for)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.for.cs"}},end:/(?<=\})/dgv,name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(for)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.for.cs"}},end:/(?<=\})/dgv,name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-condition":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"source.cs#type"}]},"7":{name:"entity.name.variable.local.cs"},"8":{name:"keyword.control.loop.in.cs"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(\\bvar\\b)|(?<$0_type_name>(?:(?:(?<identifier>@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*::\\p{space}*)?(?<$1_name_and_type_args>(@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(?<$2_type_args>\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?)(?:\\p{space}*\\.\\p{space}*((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*)\\p{space}*(\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:\\p{space}*<(?:[^\\<\\>]|(?:))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*))+>\\p{space}*)?))*|(?<tuple>\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:\\p{space}*\\((?:[^\\(\\)]|(?:))+\\)))+\\)))+\\)))+\\)))+\\)))(?:\\p{space}*\\?\\p{space}*)?(?:\\p{space}*\\[(?:\\p{space}*,\\p{space}*)*\\]\\p{space}*)*))\\p{space}+((@?[_\\p{Alpha}][_\\p{Alpha}\\p{Nd}]*))\\p{space}+\\b(in)\\b","dgv",{"hiddenCaptures":[5,7,8,9,12],"transfers":[[3,[5,8,12]],[4,[7]],[6,[9]]]})},{captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"source.cs#tuple-declaration-deconstruction-element-list"}]},"3":{name:"keyword.control.loop.in.cs"}},match:/(?:\b(var)\b\p{space}*)?(?<tuple>\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:\((?:[^\(\)]|(?:))+\)))+\)))+\)))+\)))+\))\p{space}+\b(in)\b/dgv},{include:"source.cs#expression"}]},"foreach-statement":{begin:/(@)(await\p{space}+)?(foreach)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{patterns:[{include:"#await-prefix"}]},"3":{name:"keyword.control.loop.foreach.cs"}},end:/(?<=\})/dgv,name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@)(await\p{space}+)?)(foreach)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{patterns:[{include:"#await-prefix"}]},"3":{name:"keyword.control.loop.foreach.cs"}},end:/(?<=\})/dgv,name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"functions-directive":{begin:/(@)(functions)((?=\{)|\p{space}+)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.functions"}},end:/(?<=\})|\p{space}/dgv,patterns:[{include:"#directive-codeblock"}]},"if-statement":{begin:/(@)(if)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.conditional.if.cs"}},end:/(?<=\})/dgv,name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"if-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(if)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.conditional.if.cs"}},end:/(?<=\})/dgv,name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"implements-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.implements"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(implements)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"implicit-expression":{begin:/(?<![\p{Alpha}\p{Alpha}\p{Nd}])(@)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]}},contentName:"source.cs",end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,name:"meta.expression.implicit.cshtml",patterns:[{include:"#await-prefix"},{include:"#implicit-expression-body"}]},"implicit-expression-accessor":{match:/(?<=\.)[_\p{Alpha}][_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.object.property.cs"},"implicit-expression-accessor-start":{begin:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"variable.other.object.cs"}},end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-body":{end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#implicit-expression-invocation-start"},{include:"#implicit-expression-accessor-start"}]},"implicit-expression-continuation":{end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#balanced-parenthesis-csharp"},{include:"#balanced-brackets-csharp"},{include:"#implicit-expression-invocation"},{include:"#implicit-expression-accessor"},{include:"#implicit-expression-extension"}]},"implicit-expression-dot-operator":{captures:{"1":{name:"punctuation.accessor.cs"}},match:/(\.)(?=[_\p{Alpha}][_\p{Alpha}\p{Nd}]*)/dgv},"implicit-expression-invocation":{match:/(?<=\.)[_\p{Alpha}][_\p{Alpha}\p{Nd}]*(?=\()/dgv,name:"entity.name.function.cs"},"implicit-expression-invocation-start":{begin:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(?=\()/dgv,beginCaptures:{"1":{name:"entity.name.function.cs"}},end:/(?=[\p{space}\<\>\{\}\)\]'"])/dgv,patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-null-conditional-operator":{captures:{"1":{name:"keyword.operator.null-conditional.cs"}},match:/(\?)(?=[\.\[])/dgv},"implicit-expression-null-forgiveness-operator":{captures:{"1":{name:"keyword.operator.logical.cs"}},match:/(!)(?=\.[_\p{Alpha}][_\p{Alpha}\p{Nd}]*|\?|[\[\(])/dgv},"implicit-expression-operator":{patterns:[{include:"#implicit-expression-dot-operator"},{include:"#implicit-expression-null-conditional-operator"},{include:"#implicit-expression-null-forgiveness-operator"}]},"inherits-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.inherits"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(inherits)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"inject-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.inject"},"3":{patterns:[{include:"source.cs#type"}]},"4":{name:"entity.name.variable.property.cs"}},match:/(@)(inject)\p{space}*([\P{space}\p{space}]+?)?\p{space}*([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)?\p{space}*(?=(?=\n?$))/dgv,name:"meta.directive"},"layout-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.layout"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(layout)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"lock-statement":{begin:/(@)(lock)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.lock.cs"}},end:/(?<=\})/dgv,name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"lock-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(lock)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.lock.cs"}},end:/(?<=\})/dgv,name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"model-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.model"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(model)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"namespace-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.namespace"},"3":{patterns:[{include:"#namespace-directive-argument"}]}},match:/(@)(namespace)\p{space}+([^\p{space}]+)?/dgv,name:"meta.directive"},"namespace-directive-argument":{captures:{"1":{name:"entity.name.type.namespace.cs"},"2":{name:"punctuation.accessor.cs"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)(\.)?/dgv},"non-void-tag":{begin:/(?=<(!)?([^\/\p{space}\>]+)(\p{space}|\/?>))/dgv,end:/(<\/)((?!))\p{space}*(>)|(\/>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"punctuation.definition.tag.end.html"},"4":{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:/(<)(!)?([^\/\p{space}\>]+)(?=\p{space}|\/?>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"constant.character.escape.razor.tagHelperOptOut"},"3":{name:"entity.name.tag.html"}},end:/(?=\/?>)/dgv,patterns:[{include:"#razor-control-structures"},{include:"text.html.basic#attribute"}]},{begin:/>/dgv,beginCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},end:/(?=<\/)/dgv,patterns:[{include:"#wellformed-html"},{include:"$self"}]}]},"optionally-transitioned-csharp-control-structures":{patterns:[{include:"#using-statement-with-optional-transition"},{include:"#if-statement-with-optional-transition"},{include:"#else-part"},{include:"#foreach-statement-with-optional-transition"},{include:"#for-statement-with-optional-transition"},{include:"#while-statement"},{include:"#switch-statement-with-optional-transition"},{include:"#lock-statement-with-optional-transition"},{include:"#do-statement-with-optional-transition"},{include:"#try-statement-with-optional-transition"}]},"optionally-transitioned-razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#optionally-transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"page-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.page"},"3":{patterns:[{include:"source.cs#string-literal"}]}},match:/(@)(page)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"preservewhitespace-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.preservewhitespace"},"3":{patterns:[{include:"source.cs#boolean-literal"}]}},match:/(@)(preservewhitespace)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"razor-codeblock":{begin:/(@)(\{)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:/(\})/dgv,endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"razor-codeblock-body":{patterns:[{include:"#text-tag"},{include:"#wellformed-html"},{include:"#razor-single-line-markup"},{include:"#optionally-transitioned-razor-control-structures"},{include:"source.cs"}]},"razor-comment":{begin:/(@)(\*)/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.comment.star"}},contentName:"comment.block.razor",end:/(\*)(@)/dgv,endCaptures:{"1":{name:"keyword.control.razor.comment.star"},"2":{patterns:[{include:"#transition"}]}},name:"meta.comment.razor"},"razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"razor-single-line-markup":{captures:{"1":{name:"keyword.control.razor.singleLineMarkup"},"2":{patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}]}},match:/(@:)([^\$]*)(?=\n?$)/dgv},"removeTagHelper-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.removeTagHelper"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}},match:/(@)(removeTagHelper)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"rendermode-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.rendermode"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(rendermode)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"section-directive":{begin:/(@)(section)\b\p{space}+([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)?/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.section"},"3":{name:"variable.other.razor.directive.sectionName"}},end:/(?<=\})/dgv,name:"meta.directive.block",patterns:[{include:"#directive-markupblock"}]},"switch-code-block":{begin:/(\{)/dgv,beginCaptures:{"1":{name:"punctuation.curlybrace.open.cs"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock.switch",patterns:[{include:"source.cs#switch-label"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"switch-statement":{begin:/(@)(switch)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.switch.cs"}},end:/(?<=\})/dgv,name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"switch-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(switch)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.switch.cs"}},end:/(?<=\})/dgv,name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"tagHelper-directive-argument":{patterns:[{include:"source.cs#string-literal"},{include:"#unquoted-string-argument"}]},"tagHelperPrefix-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.tagHelperPrefix"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}},match:/(@)(tagHelperPrefix)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"text-tag":{begin:/(<text\p{space}*>)/dgv,beginCaptures:{"1":{name:"keyword.control.cshtml.transition.textTag.open"}},end:/(<\/text>)/dgv,endCaptures:{"1":{name:"keyword.control.cshtml.transition.textTag.close"}},patterns:[{include:"#wellformed-html"},{include:"$self"}]},transition:{match:/@/dgv,name:"keyword.control.cshtml.transition"},"transitioned-csharp-control-structures":{patterns:[{include:"#using-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#foreach-statement"},{include:"#for-statement"},{include:"#while-statement"},{include:"#switch-statement"},{include:"#lock-statement"},{include:"#do-statement"},{include:"#try-statement"}]},"try-block":{begin:/(@)(try)\b\p{space}*/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.try.cs"}},end:/(?<=\})/dgv,name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-block-with-optional-transition":{begin:/(?:^\p{space}*|(@))(try)\b\p{space}*/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.try.cs"}},end:/(?<=\})/dgv,name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},"try-statement-with-optional-transition":{patterns:[{include:"#try-block-with-optional-transition"},{include:"#catch-clause"},{include:"#finally-clause"}]},"typeparam-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.typeparam"},"3":{patterns:[{include:"source.cs#type"}]}},match:/(@)(typeparam)\p{space}+([^\$]+)?/dgv,name:"meta.directive"},"unquoted-string-argument":{match:/[^\$]+/dgv,name:"string.quoted.double.cs"},"using-alias-directive":{captures:{"1":{name:"entity.name.type.alias.cs"},"2":{name:"keyword.operator.assignment.cs"},"3":{patterns:[{include:"source.cs#type"}]}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\b\p{space}*(=)\p{space}*([^\n]+)\p{space}*/dgv},"using-directive":{captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"},"3":{patterns:[{include:"#using-static-directive"},{include:"#using-alias-directive"},{include:"#using-standard-directive"}]},"4":{name:"keyword.control.razor.optionalSemicolon"}},match:/(@)(using)\b\p{space}+(?!\(|\p{space})([^\n]+?)?(;)?(?=\n?$)/dgv,name:"meta.directive"},"using-standard-directive":{captures:{"1":{name:"entity.name.type.namespace.cs"}},match:/([_\p{Alpha}][_\p{Alpha}\p{Nd}]*)\p{space}*/dgv},"using-statement":{begin:/(@)(using)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"}},end:/(?<=\})/dgv,name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-statement-with-optional-transition":{begin:/(?:^\p{space}*|(@))(using)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"}},end:/(?<=\})/dgv,name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-static-directive":{captures:{"1":{name:"keyword.other.static.cs"},"2":{patterns:[{include:"source.cs#type"}]}},match:/(static)\b\p{space}+([^\n]+)/dgv},"void-tag":{begin:/(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\p{space}|\/?>)/dgiv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"constant.character.escape.razor.tagHelperOptOut"},"3":{name:"entity.name.tag.html"}},end:/\/?>/dgv,endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$3.void.html",patterns:[{include:"text.html.basic#attribute"}]},"wellformed-html":{patterns:[{include:"#void-tag"},{include:"#non-void-tag"}]},"while-statement":{begin:/(?:(@)|^\p{space}*|(?<=\})\p{space}*)(while)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.while.cs"}},end:/(?<=\})|(;)/dgv,endCaptures:{"1":{name:"punctuation.terminator.statement.cs"}},name:"meta.statement.while.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]}},scopeName:"text.aspnetcorerazor",embeddedLangs:["html","csharp"],aliases:undefined})
|
|
6
6
|
|
|
7
7
|
export default [
|
|
8
8
|
...html,
|
package/dist/riscv.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EmulatedRegExp } from 'oniguruma-to-es'
|
|
2
2
|
|
|
3
|
-
const lang = Object.freeze({displayName:"RISC-V",fileTypes:["S","s","riscv","asm"],name:"riscv",patterns:[{comment:"ok actually this are instructions, but one also could call them funtions…",match:/\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r\|w\|s\|c]|csr[w\|s\|c]i)\b/dgv,name:"support.function.pseudo.riscv"},{match:/\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\b/dgv,name:"support.function.riscv"},{comment:"priviledged instructions",match:/\b(ecall|ebreak|sfence\.vma|mret|sret|uret|wfi)\b/dgv,name:"support.function.riscv.privileged"},{comment:"M extension (multiplication and division)",match:/\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\b/dgv,name:"support.function.riscv.m"},{comment:"C extension (compressed instructions)",match:/\b(c\.addi4spn|c\.fld|c\.lq|c\.lw|c\.flw|c\.ld|c\.fsd|c\.sq|c\.sw|c\.fsw|c\.sd|c\.nop|c\.addi|c\.jal|c\.addiw|c\.li|c\.addi16sp|c\.lui|c\.srli|c\.srli64|c\.srai|c\.srai64|c\.andi|c\.sub|c\.xor|c\.or|c\.and|c\.subw|c\.addw|c\.j|c\.beqz|c\.bnez)\b/dgv,name:"support.function.riscv.c"},{comment:"A extension (atomic instructions)",match:/\b(lr\.[w\|d]|sc\.[w\|d]|amoswap\.[w\|d]|amoadd\.[w\|d]|amoxor\.[w\|d]|amoand\.[w\|d]|amoor\.[w\|d]|amomin\.[w\|d]|amomax\.[w\|d]|amominu\.[w\|d]|amomaxu\.[w\|d])\b/dgv,name:"support.function.riscv.a"},{comment:"F extension (single precision floating point)",match:/\b(flw|fsw|fmadd\.s|fmsub\.s|fnmsub\.s|fnmadd\.s|fadd\.s|fsub\.s|fmul\.s|fdiv\.s|fsqrt\.s|fsgnj\.s|fsgnjn\.s|fsgnjx\.s|fmin\.s|fmax\.s|fcvt\.w\.s|fcvt\.wu\.s|fmv\.x\.w|feq\.s|flt\.s|fle\.s|fclass\.s|fcvt\.s\.w|fcvt\.s\.wu|fmv\.w\.x|fcvt\.l\.s|fcvt\.lu\.s|fcvt\.s\.l|fcvt\.s\.lu)\b/dgv,name:"support.function.riscv.f"},{comment:"D extension (double precision floating point)",match:/\b(fld|fsd|fmadd\.d|fmsub\.d|fnmsub\.d|fnmadd\.d|fadd\.d|fsub\.d|fmul\.d|fdiv\.d|fsqrt\.d|fsgnj\.d|fsgnjn\.d|fsgnjx\.d|fmin\.d|fmax\.d|fcvt\.s\.d|fcvt\.d\.s|feq\.d|flt\.d|fle\.d|fclass\.d|fcvt\.w\.d|fcvt\.wu\.d|fcvt\.d\.w|fcvt\.d\.wu|fcvt\.l\.d|fcvt\.lu\.d|fmv\.x\.d|fcvt\.d\.l|fcvt\.d\.lu|fmv\.d\.x)\b/dgv,name:"support.function.riscv.d"},{match:/\.(skip|ascii|asciiz|byte|[2\|4\|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\p{space}*(noat|at)|[s\|u]leb128|string|incbin|zero|rodata|comm|common)\b/dgv,name:"storage.type.riscv"},{match:/\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\b/dgv,name:"storage.modifier.riscv"},{captures:{"1":{name:"entity.name.function.label.riscv"}},match:/\b([A-Za-z0-9_]+):/dgv,name:"meta.function.label.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\b/dgv,name:"variable.other.register.usable.by-number.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\b/dgv,name:"variable.other.register.usable.by-name.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\b/dgv,name:"variable.other.csr.names.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\b/dgv,name:"variable.other.register.usable.floating-point.riscv"},{match:/\b\p{Nd}+\.\p{Nd}+\b/dgv,name:"constant.numeric.float.riscv"},{match:/\b(\p{Nd}+|0(x|X)[a-fA-F0-9]+)\b/dgv,name:"constant.numeric.integer.riscv"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.double.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.single.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block"},{begin:/\/\//dgv,end:/\n/dgv,name:"comment.line.double-slash"},{begin:/*@__PURE__*/ new EmulatedRegExp("^\\p{space}*#\\p{space}*(define)\\p{space}+((?<id>[a-zA-Z_][a-zA-Z0-9_]*))(?:(\\()(\\p{space}*(
|
|
3
|
+
const lang = Object.freeze({displayName:"RISC-V",fileTypes:["S","s","riscv","asm"],name:"riscv",patterns:[{comment:"ok actually this are instructions, but one also could call them funtions…",match:/\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r\|w\|s\|c]|csr[w\|s\|c]i)\b/dgv,name:"support.function.pseudo.riscv"},{match:/\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\b/dgv,name:"support.function.riscv"},{comment:"priviledged instructions",match:/\b(ecall|ebreak|sfence\.vma|mret|sret|uret|wfi)\b/dgv,name:"support.function.riscv.privileged"},{comment:"M extension (multiplication and division)",match:/\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\b/dgv,name:"support.function.riscv.m"},{comment:"C extension (compressed instructions)",match:/\b(c\.addi4spn|c\.fld|c\.lq|c\.lw|c\.flw|c\.ld|c\.fsd|c\.sq|c\.sw|c\.fsw|c\.sd|c\.nop|c\.addi|c\.jal|c\.addiw|c\.li|c\.addi16sp|c\.lui|c\.srli|c\.srli64|c\.srai|c\.srai64|c\.andi|c\.sub|c\.xor|c\.or|c\.and|c\.subw|c\.addw|c\.j|c\.beqz|c\.bnez)\b/dgv,name:"support.function.riscv.c"},{comment:"A extension (atomic instructions)",match:/\b(lr\.[w\|d]|sc\.[w\|d]|amoswap\.[w\|d]|amoadd\.[w\|d]|amoxor\.[w\|d]|amoand\.[w\|d]|amoor\.[w\|d]|amomin\.[w\|d]|amomax\.[w\|d]|amominu\.[w\|d]|amomaxu\.[w\|d])\b/dgv,name:"support.function.riscv.a"},{comment:"F extension (single precision floating point)",match:/\b(flw|fsw|fmadd\.s|fmsub\.s|fnmsub\.s|fnmadd\.s|fadd\.s|fsub\.s|fmul\.s|fdiv\.s|fsqrt\.s|fsgnj\.s|fsgnjn\.s|fsgnjx\.s|fmin\.s|fmax\.s|fcvt\.w\.s|fcvt\.wu\.s|fmv\.x\.w|feq\.s|flt\.s|fle\.s|fclass\.s|fcvt\.s\.w|fcvt\.s\.wu|fmv\.w\.x|fcvt\.l\.s|fcvt\.lu\.s|fcvt\.s\.l|fcvt\.s\.lu)\b/dgv,name:"support.function.riscv.f"},{comment:"D extension (double precision floating point)",match:/\b(fld|fsd|fmadd\.d|fmsub\.d|fnmsub\.d|fnmadd\.d|fadd\.d|fsub\.d|fmul\.d|fdiv\.d|fsqrt\.d|fsgnj\.d|fsgnjn\.d|fsgnjx\.d|fmin\.d|fmax\.d|fcvt\.s\.d|fcvt\.d\.s|feq\.d|flt\.d|fle\.d|fclass\.d|fcvt\.w\.d|fcvt\.wu\.d|fcvt\.d\.w|fcvt\.d\.wu|fcvt\.l\.d|fcvt\.lu\.d|fmv\.x\.d|fcvt\.d\.l|fcvt\.d\.lu|fmv\.d\.x)\b/dgv,name:"support.function.riscv.d"},{match:/\.(skip|ascii|asciiz|byte|[2\|4\|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\p{space}*(noat|at)|[s\|u]leb128|string|incbin|zero|rodata|comm|common)\b/dgv,name:"storage.type.riscv"},{match:/\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\b/dgv,name:"storage.modifier.riscv"},{captures:{"1":{name:"entity.name.function.label.riscv"}},match:/\b([A-Za-z0-9_]+):/dgv,name:"meta.function.label.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\b/dgv,name:"variable.other.register.usable.by-number.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\b/dgv,name:"variable.other.register.usable.by-name.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\b/dgv,name:"variable.other.csr.names.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:/\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\b/dgv,name:"variable.other.register.usable.floating-point.riscv"},{match:/\b\p{Nd}+\.\p{Nd}+\b/dgv,name:"constant.numeric.float.riscv"},{match:/\b(\p{Nd}+|0(x|X)[a-fA-F0-9]+)\b/dgv,name:"constant.numeric.integer.riscv"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.double.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.single.riscv",patterns:[{match:/\\[rnt\\"]/dgv,name:"constant.character.escape.riscv"}]},{begin:/\/\*/dgv,end:/\*\//dgv,name:"comment.block"},{begin:/\/\//dgv,end:/\n/dgv,name:"comment.line.double-slash"},{begin:/*@__PURE__*/ new EmulatedRegExp("^\\p{space}*#\\p{space}*(define)\\p{space}+((?<id>[a-zA-Z_][a-zA-Z0-9_]*))(?:(\\()(\\p{space}*([a-zA-Z_][a-zA-Z0-9_]*)\\p{space}*((,)\\p{space}*([a-zA-Z_][a-zA-Z0-9_]*)\\p{space}*)*(?:\\.\\.\\.)?)(\\)))?","dgv",{"hiddenCaptures":[6,9],"transfers":[[3,[6,9]]]}),beginCaptures:{"1":{name:"keyword.control.import.define.c"},"2":{name:"entity.name.function.preprocessor.c"},"4":{name:"punctuation.definition.parameters.c"},"5":{name:"variable.parameter.preprocessor.c"},"7":{name:"punctuation.separator.parameters.c"},"8":{name:"punctuation.definition.parameters.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.macro.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"},{include:"$base"}]},{begin:/^\p{space}*#\p{space}*(error|warning)\b/dgv,captures:{"1":{name:"keyword.control.import.error.c"}},end:/(?=\n?$)/dgv,name:"meta.preprocessor.diagnostic.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"}]},{begin:/^\p{space}*#\p{space}*(include|import)\b\p{space}+/dgv,captures:{"1":{name:"keyword.control.import.include.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.c.include",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:/^\p{space}*#\p{space}*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\b/dgv,captures:{"1":{name:"keyword.control.import.c"}},end:/(?=(?:\/\/|\/\*))|(?=\n?$)/dgv,name:"meta.preprocessor.c",patterns:[{match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(\\\\\\p{space}*\\n))\\1)","dgv",{"hiddenCaptures":[1]}),name:"punctuation.separator.continuation.c"}]},{begin:/(^[ \t]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.riscv"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/#|(\/\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.riscv"}},end:/\n/dgv,name:"comment.line.number-sign.riscv"}]}],scopeName:"source.riscv",embeddedLangs:undefined,aliases:undefined})
|
|
4
4
|
|
|
5
5
|
export default [
|
|
6
6
|
lang
|
package/dist/ruby.mjs
CHANGED
|
@@ -12,7 +12,7 @@ import shellscript from './shellscript.mjs'
|
|
|
12
12
|
import lua from './lua.mjs'
|
|
13
13
|
import yaml from './yaml.mjs'
|
|
14
14
|
|
|
15
|
-
const lang = Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"entity.name.type.class.ruby"},"5":{name:"punctuation.separator.namespace.ruby"},"7":{name:"punctuation.separator.inheritance.ruby"},"8":{name:"entity.other.inherited-class.ruby"},"11":{name:"punctuation.separator.namespace.ruby"}},comment:"class Namespace::ClassName < OtherNamespace::OtherClassName",match:/\x08(class)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\p{space}*((<)\p{space}*(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*))?/dgv,name:"meta.class.ruby"},{captures:{"1":{name:"keyword.control.module.ruby"},"2":{name:"entity.name.type.module.ruby"},"5":{name:"punctuation.separator.namespace.ruby"}},match:/\x08(module)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)/dgv,name:"meta.module.ruby"},{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"punctuation.separator.inheritance.ruby"}},match:/\x08(class)\p{space}*(<<)\p{space}*/dgv,name:"meta.class.ruby"},{comment:"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",match:/(?<!\.)\belse(\p{space})+if\b/dgv,name:"invalid.deprecated.ruby"},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment",match:/^\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment (+=, -=, *=, /=)",match:/^\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"variable.ruby"}},comment:"A local variable assignment",match:/^\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"}},comment:"A local variable assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"punctuation.definition.constant.hashkey.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\2)?))\\1)(:)(?!:)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.hashkey.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]))\\3)?))\\2)(?=\\p{space}*=>)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:/(?<!\.)\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\b(?![\?\!])/dgv,name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:/(?<!\.)\bdo\b/dgv,name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:/(?<=\{)(\p{space}+)/dgv,name:"meta.syntax.ruby.start-block"},{match:/(?<!\.)\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\b(?![\?\!])|\bdefined\?|\b(block_given|iterator)\?/dgv,name:"keyword.control.pseudo-method.ruby"},{match:/\bnil\b(?![\?\!])/dgv,name:"constant.language.nil.ruby"},{match:/\b(true|false)\b(?![\?\!])/dgv,name:"constant.language.boolean.ruby"},{match:/\b(__(FILE|LINE)__)\b(?![\?\!])/dgv,name:"variable.language.ruby"},{match:/\bself\b(?![\?\!])/dgv,name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:/\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\b(?![\?\!])/dgv,name:"keyword.other.special-method.ruby"},{begin:/\b(?<!\.|::)(require|require_relative)\b(?![\?\!])/dgv,captures:{"1":{name:"keyword.other.special-method.ruby"}},end:/(?=\n?$)|(?=#|\})/dgv,name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)(!|@|&|`|'|\+|\p{Nd}+|~|=|\/|\\|,|;|\.|<|>|_|\*|\$|\?|:|"|-[0adFiIlpv])/dgv,name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:/\b(ENV)\[/dgv,beginCaptures:{"1":{name:"variable.other.constant.ruby"}},end:/\]/dgv,name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:/\b[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*(?=((\.|::)[A-Za-z]|\[))/dgv,name:"support.class.ruby"},{match:/\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\b(?![\?\!])|autoload\?|exit!)/dgv,name:"support.function.kernel.ruby"},{match:/\b[_A-Z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.other.constant.ruby"},{begin:/(->)\(/dgv,beginCaptures:{"1":{name:"support.function.kernel.ruby"}},comment:"Lambda parameters.",end:/\)/dgv,patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\4)))\\3)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))\\p{space}*(\\()","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"},"3":{name:"punctuation.definition.parameters.ruby"}},comment:"The method pattern comes from the symbol pattern. See there for an explanation.",end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\4)))\\3)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))[ \\t](?=[ \\t]*[^\\p{space}\\#\\;])","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:/(?=;)|(?<=[\p{L}\p{M}\p{N}\p{Pc}\]\)\}\`'"\!\?])(?=\p{space}*#|\p{space}*(?=\n?$))/dgv,name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=,|;|\p{space}*#|\p{space}*(?=\n?$))/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{captures:{"1":{name:"keyword.control.def.ruby"},"3":{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\b(\\p{space}+((?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$\\.|::))\\5)))\\4)?(?:(?=($E$[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?!>)))\\7)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\6)))?","dgv",{"useEmulationGroups":true}),name:"meta.function.method.without-arguments.ruby"},{match:/*@__PURE__*/ new EmulatedRegExp("\\b([\\p{Nd}](?:(?=($E$_?\\p{Nd}))\\2)*(\\.(?![^\\p{space}\\p{Nd}])(?:(?=($E$_?\\p{Nd}))\\4)*)?([eE][\\-\\+]?\\p{Nd}(?:(?=($E$_?\\p{Nd}))\\6)*)?|0(?:[xX]\\p{AHex}(?:(?=($E$_?\\p{AHex}))\\7)*|[oO]?[0-7](?:(?=($E$_?[0-7]))\\8)*|[bB][01](?:(?=($E$_?[01]))\\9)*|[dD]\\p{Nd}(?:(?=($E$_?\\p{Nd}))\\10)*))\\b","dgv",{"useEmulationGroups":true}),name:"constant.numeric.ruby"},{begin:/:'/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},comment:"symbol literal with '' delimiter",end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\['\\]/dgv,name:"constant.character.escape.ruby"}]},{begin:/:"/dgv,beginCaptures:{"0":{name:"punctuation.section.symbol.begin.ruby"}},comment:"symbol literal with \"\" delimiter",end:/"/dgv,endCaptures:{"0":{name:"punctuation.section.symbol.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:/(?<!\()\/=/dgv,name:"keyword.operator.assignment.augmented.ruby"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"string literal with '' delimiter",end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:/\\'|\\\\/dgv,name:"constant.character.escape.ruby"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"string literal with interpolation and \"\" delimiter",end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<!\.)`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}\\)])((/))(?![\\?\\*\\+])(?=(?:(?=($E$(?:\\\\/|[^\\/])*))\\3)/[eimnosux]*\\p{space}*(?:[\\)\\]\\}\\#\\.\\,\\?\\:]|\\|\\||&&|<=>|=>|==|=~|!~|!=|;|(?=\\n?$)|if|else|elsif|then|do|end|unless|while|until|or|and)|(?=\\n?$))","dgv",{"useEmulationGroups":true}),captures:{"1":{name:"string.regexp.interpolated.ruby"},"2":{name:"punctuation.section.regexp.ruby"}},comment:"regular expression literal with interpolation",contentName:"string.regexp.interpolated.ruby",end:/((\/[eimnosux]*))/dgv,patterns:[{include:"#regex_sub"}]},{begin:/%r\{/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\}[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},{begin:/%r\[/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\][eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},{begin:/%r\(/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\)[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},{begin:/%r</dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/>[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},{begin:/%r([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\1[eimnosux]*()/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"}]},{begin:/%I\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%I\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%I</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%I\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%I([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%i\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%i\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%i</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%i\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%i([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{begin:/%W\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%W\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%W</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%W\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%W([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%w\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%w\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%w</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%w\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%w([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{begin:/%[Qx]?\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%[Qx]?\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%[Qx]?\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%[Qx]?</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%[Qx]([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%([^\p{L}\p{M}\p{N}\p{Pc}\p{space}\=])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%q\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%q</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%q\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%q\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%q([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{begin:/%s\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%s</dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%s\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%s\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%s([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=($E$[\\$a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=($E$[\\?\\!]|=(?![\\>\\=])))\\3)?|===?|<=>|>[\\>\\=]?|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?|@@?[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*))\\2)","dgv",{"useEmulationGroups":true}),name:"constant.language.symbol.ruby"},{begin:/^=begin/dgv,captures:{"0":{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:/^=end/dgv,name:"comment.block.documentation.ruby"},{include:"#yard"},{begin:/(^[ \t]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ruby"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/\n/dgv,name:"comment.line.number-sign.ruby"}]},{comment:"\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t",match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])\?(\\(x\p{AHex}{1,2}(?!\p{AHex})\b|0[0-7]{0,2}(?![0-7])\b|[^x0MC])|(\\[MC]-)+[\p{L}\p{M}\p{N}\p{Pc}]|[^\p{space}\\])/dgv,name:"constant.numeric.ruby"},{begin:/^__END__\n/dgv,captures:{"0":{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:/(?=not)impossible/dgv,patterns:[{begin:/(?=<?xml|<[Hh][Tt][Mm][Ll]\b|!DOCTYPE [Hh][Tt][Mm][Ll]\b)/dgv,end:/(?=not)impossible/dgv,name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded HTML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.html",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded HAML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.haml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.haml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.haml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded XML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.xml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded SQL",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.sql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded GraphQL",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.graphql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.graphql",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.graphql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded CSS",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.css",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded C++",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.cpp",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.cpp",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.cpp"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded C",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.c",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Javascript",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.js",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded jQuery Javascript",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.js.jquery",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Shell",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.shell",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Lua",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.lua",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Ruby",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.ruby",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded YAML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.yaml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.yaml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.yaml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1))","dgv",{"useEmulationGroups":true}),comment:"Heredoc with embedded Slim",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),name:"meta.embedded.block.slim",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.slim",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.slim"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$=\\p{space}*<<([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\2))\\1)","dgv",{"useEmulationGroups":true}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/^\2(?=\n?$)()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=($E$((<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\4,\\p{space}?)*<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\6)))\\1)([^\\n]*)","dgv",{"useEmulationGroups":true}),beginCaptures:{"1":{name:"punctuation.definition.string.begin.ruby"},"7":{patterns:[{include:"source.ruby"}]}},comment:"heredoc with multiple inputs and indented terminator",end:/^\p{space}*\6(?=\n?$)()()()()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<=\{|\{\p{space}|[^A-Za-z0-9_\:\@\$]do|^do|[^A-Za-z0-9_\:\@\$]do\p{space}|^do\p{space})(\|)/dgv,captures:{"1":{name:"punctuation.separator.variable.ruby"}},end:/(?<!\|)(\|)(?!\|)/dgv,name:"meta.block.parameters.ruby",patterns:[{begin:/(?![\p{space}\,\|\(])/dgv,end:/(?=,|\|\p{space}*)/dgv,patterns:[{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"variable.other.block.ruby"},"3":{name:"variable.other.block.unused.ruby variable.other.constant.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("^([\\&\\*]?)([a-zA-Z][\\p{L}\\p{M}\\p{N}\\p{Pc}_]*)|(_[\\p{L}\\p{M}\\p{N}\\p{Pc}_]*)","dgv",{"strategy":"search_start_clip"})}]},{match:/,/dgv,name:"punctuation.separator.variable.ruby"}]},{match:/=>/dgv,name:"punctuation.separator.key-value"},{match:/->/dgv,name:"support.function.kernel.ruby"},{match:/<<=|%=|&{1,2}=|\*=|\*\*=|\+=|-=|\^=|\|{1,2}=|<</dgv,name:"keyword.operator.assignment.augmented.ruby"},{match:/<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \t])\?/dgv,name:"keyword.operator.comparison.ruby"},{match:/(?<!\.)\b(and|not|or)\b(?![\?\!])/dgv,name:"keyword.operator.logical.ruby"},{match:/(?<=^|[ \t\!])!|&&|\|\||\^/dgv,name:"keyword.operator.logical.ruby"},{captures:{"1":{name:"keyword.operator.logical.ruby"}},comment:"Safe navigation operator",match:/(&\.)\p{space}*(?![A-Z])/dgv},{match:/(%|&|\*\*|\*|\+|-|\/)/dgv,name:"keyword.operator.arithmetic.ruby"},{match:/=/dgv,name:"keyword.operator.assignment.ruby"},{match:/\||~|>>/dgv,name:"keyword.operator.other.ruby"},{match:/;/dgv,name:"punctuation.separator.statement.ruby"},{match:/,/dgv,name:"punctuation.separator.object.ruby"},{captures:{"1":{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:/(::)\p{space}*(?=[A-Z])/dgv},{captures:{"1":{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:/(\.|::)\p{space}*(?![A-Z])/dgv},{comment:"Must come after method and constant separators to prefer double colons",match:/:/dgv,name:"punctuation.separator.other.ruby"},{match:/\{/dgv,name:"punctuation.section.scope.begin.ruby"},{match:/\}/dgv,name:"punctuation.section.scope.end.ruby"},{match:/\[/dgv,name:"punctuation.section.array.begin.ruby"},{match:/\]/dgv,name:"punctuation.section.array.end.ruby"},{match:/\(|\)/dgv,name:"punctuation.section.function.ruby"},{begin:/(?<=[^\.]\.|::)(?=[a-zA-Z][a-zA-Z0-9_\!\?]*[^a-zA-Z0-9_\!\?])/dgv,end:/(?<=[a-zA-Z0-9_\!\?])(?=[^a-zA-Z0-9_\!\?])/dgv,name:"meta.function-call.ruby",patterns:[{match:/([a-zA-Z][a-zA-Z0-9_\!\?]*)(?=[^a-zA-Z0-9_\!\?])/dgv,name:"entity.name.function.ruby"}]},{begin:/([a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*[\!\?]?)(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.ruby"},"2":{name:"punctuation.section.function.ruby"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.section.function.ruby"}},name:"meta.function-call.ruby",patterns:[{include:"$self"}]}],repository:{escaped_char:{match:/\\(?:[0-7]{1,3}|x[\p{Nd}a-fA-F]{1,2}|[^\n])/dgv,name:"constant.character.escape.ruby"},heredoc:{begin:/^<<[\-\~]?[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,end:/(?=\n?$)/dgv,patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:/#\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#\$)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"}]},method_parameters:{patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"#params"},{include:"$self"}],repository:{braces:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.scope.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.scope.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},brackets:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},params:{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"constant.other.symbol.hashkey.parameter.function.ruby"},"3":{name:"punctuation.definition.constant.ruby"},"4":{name:"variable.parameter.function.ruby"}},match:/(&|\*\*?)?(?:([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*[\?\!]?(:))|([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*))/dgvy},parens:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.function.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]}}},nest_brackets:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#nest_brackets"}]},nest_brackets_i:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},nest_brackets_r:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},nest_curly:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly"}]},nest_curly_and_self:{patterns:[{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]},nest_curly_i:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},nest_curly_r:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},nest_ltgt:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#nest_ltgt"}]},nest_ltgt_i:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},nest_ltgt_r:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},nest_parens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#nest_parens"}]},nest_parens_i:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},nest_parens_r:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.ruby"},"3":{name:"punctuation.definition.arbitrary-repetition.ruby"}},match:/(\{)\p{Nd}+(,\p{Nd}+)?(\})/dgv,name:"string.regexp.arbitrary-repetition.ruby"},{begin:/\[(?:\^?\])?/dgv,captures:{"0":{name:"punctuation.definition.character-class.ruby"}},end:/\]/dgv,name:"string.regexp.character-class.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.group.ruby"}},end:/\)/dgv,name:"string.regexp.group.ruby",patterns:[{include:"#regex_sub"}]},{begin:/(?<=^|\p{space})(#)\p{space}(?=[a-zA-Z0-9\,\. \t\?\!\-[^\x00-\x7F]]*(?=\n?$))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.ruby"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",end:/(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},name:"comment.line.number-sign.ruby"}]},yard:{patterns:[{include:"#yard_comment"},{include:"#yard_param_types"},{include:"#yard_option"},{include:"#yard_tag"},{include:"#yard_types"},{include:"#yard_directive"},{include:"#yard_see"},{include:"#yard_macro_attribute"}]},yard_comment:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},comment:"For YARD tags that follow the tag-comment pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_continuation:{match:/^\p{space}*#/dgv,name:"punctuation.definition.comment.ruby"},yard_directive:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(endgroup|group|method|parse|scope|visibility)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},comment:"For YARD directives",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_macro_attribute:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(attribute|macro)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})(\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*:?))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"11":{name:"comment.line.parameter.yard.ruby"}},comment:"separate rule for attribute and macro tags because name goes after []",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_option:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(option)(?=\\p{space})(?:(?=($E$\\p{space}+([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\6)?(?:(?=($E$\\p{space}+((\\[)[^\\n]+(\\]))))\\8)?(?:(?=($E$\\p{space}+((\\P{space}*))))\\12)?(?:(?=($E$\\p{space}+((\\()[^\\n]+(\\)))))\\15)?","dgv",{"useEmulationGroups":true}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.keyword.yard.ruby"},"11":{name:"comment.line.hashkey.yard.ruby"},"12":{name:"comment.line.defaultvalue.yard.ruby"},"13":{name:"comment.line.punctuation.yard.ruby"},"14":{name:"comment.line.punctuation.yard.ruby"}},comment:"For YARD option tag that follow the tag-name-types-key-(value)-description pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_param_types:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\p{space})(?:(?=($E$\\p{space}+(?:(?=($E$([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)|((\\[)[^\\n]+(\\]))))\\7)))\\6)?(?:(?=($E$\\p{space}+(?:(?=($E$((\\[)[^\\n]+(\\]))|([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\13)))\\12)?","dgv",{"useEmulationGroups":true}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.type.yard.ruby"},"11":{name:"comment.line.punctuation.yard.ruby"},"12":{name:"comment.line.punctuation.yard.ruby"},"13":{name:"comment.line.parameter.yard.ruby"}},comment:"For YARD tags that follow the tag-name-types-description or tag-types-name-description pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_see:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(see)(?=\p{space})(\p{space}+([^\n]+?))?(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.parameter.yard.ruby"}},comment:"separate rule for @see because name could contain url",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_tag:{captures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},comment:"For YARD tags that are just the tag",match:/^(\p{space}*)(#)(\p{space}*)(@)(private)(?=\n?$)/dgv,name:"comment.line.number-sign.ruby"},yard_types:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(raise|return|yield(?:return)?)(?=\p{space})(\p{space}+((\[)[^\n]+(\])))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},comment:"For YARD tags that follow the tag-types-comment pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]}},scopeName:"source.ruby",embeddedLangs:["html","haml","xml","sql","graphql","css","cpp","c","javascript","shellscript","lua","yaml"],aliases:["rb"]})
|
|
15
|
+
const lang = Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"entity.name.type.class.ruby"},"5":{name:"punctuation.separator.namespace.ruby"},"7":{name:"punctuation.separator.inheritance.ruby"},"8":{name:"entity.other.inherited-class.ruby"},"11":{name:"punctuation.separator.namespace.ruby"}},comment:"class Namespace::ClassName < OtherNamespace::OtherClassName",match:/\x08(class)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\p{space}*((<)\p{space}*(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*))?/dgv,name:"meta.class.ruby"},{captures:{"1":{name:"keyword.control.module.ruby"},"2":{name:"entity.name.type.module.ruby"},"5":{name:"punctuation.separator.namespace.ruby"}},match:/\x08(module)\p{space}+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)/dgv,name:"meta.module.ruby"},{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"punctuation.separator.inheritance.ruby"}},match:/\x08(class)\p{space}*(<<)\p{space}*/dgv,name:"meta.class.ruby"},{comment:"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",match:/(?<!\.)\belse(\p{space})+if\b/dgv,name:"invalid.deprecated.ruby"},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment",match:/^\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable and/or assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((&&|\|\|)=)/dgv},{captures:{"1":{name:"variable.ruby"},"3":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment (+=, -=, *=, /=)",match:/^\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"},"5":{name:"keyword.operator.assignment.augmented.ruby"}},comment:"A local variable operation assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*((\+|\*|-|\/|%|\*\*|&|\||\^|<<|>>)=)/dgv},{captures:{"1":{name:"variable.ruby"}},comment:"A local variable assignment",match:/^\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"keyword.control.ruby"},"3":{name:"variable.ruby"}},comment:"A local variable assignment in a condition",match:/(?<!\.)\b(case|if|elsif|unless|until|while)\b\p{space}*(\()*?\p{space}*([a-z]([A-Za-z0-9_])*)\p{space}*=[^\=\>]/dgv},{captures:{"1":{name:"punctuation.definition.constant.hashkey.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:/*@__PURE__*/ new EmulatedRegExp("(?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\?\\!]))\\2)?))\\1)(:)(?!:)","dgv",{"hiddenCaptures":[1,2]}),name:"constant.language.symbol.hashkey.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\?\\!]))\\3)?))\\2)(?=\\p{space}*=>)","dgv",{"hiddenCaptures":[2,3]}),name:"constant.language.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:/(?<!\.)\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\b(?![\?\!])/dgv,name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:/(?<!\.)\bdo\b/dgv,name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:/(?<=\{)(\p{space}+)/dgv,name:"meta.syntax.ruby.start-block"},{match:/(?<!\.)\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\b(?![\?\!])|\bdefined\?|\b(block_given|iterator)\?/dgv,name:"keyword.control.pseudo-method.ruby"},{match:/\bnil\b(?![\?\!])/dgv,name:"constant.language.nil.ruby"},{match:/\b(true|false)\b(?![\?\!])/dgv,name:"constant.language.boolean.ruby"},{match:/\b(__(FILE|LINE)__)\b(?![\?\!])/dgv,name:"variable.language.ruby"},{match:/\bself\b(?![\?\!])/dgv,name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:/\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\b(?![\?\!])/dgv,name:"keyword.other.special-method.ruby"},{begin:/\b(?<!\.|::)(require|require_relative)\b(?![\?\!])/dgv,captures:{"1":{name:"keyword.other.special-method.ruby"}},end:/(?=\n?$)|(?=#|\})/dgv,name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(@@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(\$)(!|@|&|`|'|\+|\p{Nd}+|~|=|\/|\\|,|;|\.|<|>|_|\*|\$|\?|:|"|-[0adFiIlpv])/dgv,name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:/\b(ENV)\[/dgv,beginCaptures:{"1":{name:"variable.other.constant.ruby"}},end:/\]/dgv,name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:/\b[A-Z][\p{L}\p{M}\p{N}\p{Pc}]*(?=((\.|::)[A-Za-z]|\[))/dgv,name:"support.class.ruby"},{match:/\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\b(?![\?\!])|autoload\?|exit!)/dgv,name:"support.function.kernel.ruby"},{match:/\b[_A-Z][\p{L}\p{M}\p{N}\p{Pc}]*\b/dgv,name:"variable.other.constant.ruby"},{begin:/(->)\(/dgv,beginCaptures:{"1":{name:"support.function.kernel.ruby"}},comment:"Lambda parameters.",end:/\)/dgv,patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\4)))\\3)?(?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))\\p{space}*(\\()","dgv",{"hiddenCaptures":[3,4,5,6]}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"},"3":{name:"punctuation.definition.parameters.ruby"}},comment:"The method pattern comes from the symbol pattern. See there for an explanation.",end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=[\,\)])/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\p{space}+((?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\4)))\\3)?(?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\?\\!]|=(?!>)))\\6)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\5))[ \\t](?=[ \\t]*[^\\p{space}\\#\\;])","dgv",{"hiddenCaptures":[3,4,5,6]}),beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:/(?=;)|(?<=[\p{L}\p{M}\p{N}\p{Pc}\]\)\}\`'"\!\?])(?=\p{space}*#|\p{space}*(?=\n?$))/dgv,name:"meta.function.method.with-arguments.ruby",patterns:[{begin:/(?=[\&\*_a-zA-Z])/dgv,end:/(?=,|;|\p{space}*#|\p{space}*(?=\n?$))/dgv,patterns:[{include:"#method_parameters"}]},{include:"#method_parameters"}]},{captures:{"1":{name:"keyword.control.def.ruby"},"3":{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:/*@__PURE__*/ new EmulatedRegExp("(?=def\\b)(?<=^|\\p{space})(def)\\b(\\p{space}+((?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=(\\.|::))\\5)))\\4)?(?:(?=([a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\?\\!]|=(?!>)))\\7)?|===?|!=|>[\\>\\=]?|<=>|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?))\\6)))?","dgv",{"hiddenCaptures":[4,5,6,7]}),name:"meta.function.method.without-arguments.ruby"},{match:/*@__PURE__*/ new EmulatedRegExp("\\b([\\p{Nd}](?:(?=(_?\\p{Nd}))\\2)*(\\.(?![^\\p{space}\\p{Nd}])(?:(?=(_?\\p{Nd}))\\4)*)?([eE][\\-\\+]?\\p{Nd}(?:(?=(_?\\p{Nd}))\\6)*)?|0(?:[xX]\\p{AHex}(?:(?=(_?\\p{AHex}))\\7)*|[oO]?[0-7](?:(?=(_?[0-7]))\\8)*|[bB][01](?:(?=(_?[01]))\\9)*|[dD]\\p{Nd}(?:(?=(_?\\p{Nd}))\\10)*))\\b","dgv",{"hiddenCaptures":[2,4,6,7,8,9,10]}),name:"constant.numeric.ruby"},{begin:/:'/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},comment:"symbol literal with '' delimiter",end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\['\\]/dgv,name:"constant.character.escape.ruby"}]},{begin:/:"/dgv,beginCaptures:{"0":{name:"punctuation.section.symbol.begin.ruby"}},comment:"symbol literal with \"\" delimiter",end:/"/dgv,endCaptures:{"0":{name:"punctuation.section.symbol.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:/(?<!\()\/=/dgv,name:"keyword.operator.assignment.augmented.ruby"},{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"string literal with '' delimiter",end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:/\\'|\\\\/dgv,name:"constant.character.escape.ruby"}]},{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"string literal with interpolation and \"\" delimiter",end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<!\.)`/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:/`/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?<![\\p{L}\\p{M}\\p{N}\\p{Pc}\\)])((/))(?![\\?\\*\\+])(?=(?:(?=((?:\\\\/|[^\\/])*))\\3)/[eimnosux]*\\p{space}*(?:[\\)\\]\\}\\#\\.\\,\\?\\:]|\\|\\||&&|<=>|=>|==|=~|!~|!=|;|(?=\\n?$)|if|else|elsif|then|do|end|unless|while|until|or|and)|(?=\\n?$))","dgv",{"hiddenCaptures":[3]}),captures:{"1":{name:"string.regexp.interpolated.ruby"},"2":{name:"punctuation.section.regexp.ruby"}},comment:"regular expression literal with interpolation",contentName:"string.regexp.interpolated.ruby",end:/((\/[eimnosux]*))/dgv,patterns:[{include:"#regex_sub"}]},{begin:/%r\{/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\}[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},{begin:/%r\[/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\][eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},{begin:/%r\(/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\)[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},{begin:/%r</dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/>[eimnosux]*/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},{begin:/%r([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.regexp.begin.ruby"}},end:/\1[eimnosux]*()/dgv,endCaptures:{"0":{name:"punctuation.section.regexp.end.ruby"}},name:"string.regexp.interpolated.ruby",patterns:[{include:"#regex_sub"}]},{begin:/%I\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%I\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%I</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%I\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%I([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%i\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%i\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%i</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%i\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%i([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{begin:/%W\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%W\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%W</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%W\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%W([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%w\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%w\(/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%w</dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%w\{/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%w([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{begin:/%[Qx]?\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:/%[Qx]?\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:/%[Qx]?\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:/%[Qx]?</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:/%[Qx]([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%([^\p{L}\p{M}\p{N}\p{Pc}\p{space}\=])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/%q\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%q</dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%q\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%q\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%q([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{begin:/%s\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\)|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_parens"}]},{begin:/%s</dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\>|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_ltgt"}]},{begin:/%s\[/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\]|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_brackets"}]},{begin:/%s\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{match:/\\\}|\\\\/dgv,name:"constant.character.escape.ruby"},{include:"#nest_curly"}]},{begin:/%s([^\p{L}\p{M}\p{N}\p{Pc}])/dgv,beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.ruby"}},end:/\1()/dgv,endCaptures:{"0":{name:"punctuation.definition.symbol.end.ruby"}},name:"constant.language.symbol.ruby",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:/\\[^\n]/dgv}]},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:/*@__PURE__*/ new EmulatedRegExp("(?<!:)(:)(?:(?=([\\$a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*(?:(?=([\\?\\!]|=(?![\\>\\=])))\\3)?|===?|<=>|>[\\>\\=]?|<[\\<\\=]?|[\\%\\&\\`\\/\\|]|\\*\\*?|=?~|[\\-\\+]@?|\\[\\]=?|@@?[a-zA-Z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*))\\2)","dgv",{"hiddenCaptures":[2,3]}),name:"constant.language.symbol.ruby"},{begin:/^=begin/dgv,captures:{"0":{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:/^=end/dgv,name:"comment.block.documentation.ruby"},{include:"#yard"},{begin:/(^[ \t]+)?(?=#)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ruby"}},end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},end:/\n/dgv,name:"comment.line.number-sign.ruby"}]},{comment:"\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t",match:/(?<![\p{L}\p{M}\p{N}\p{Pc}])\?(\\(x\p{AHex}{1,2}(?!\p{AHex})\b|0[0-7]{0,2}(?![0-7])\b|[^x0MC])|(\\[MC]-)+[\p{L}\p{M}\p{N}\p{Pc}]|[^\p{space}\\])/dgv,name:"constant.numeric.ruby"},{begin:/^__END__\n/dgv,captures:{"0":{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:/(?=not)impossible/dgv,patterns:[{begin:/(?=<?xml|<[Hh][Tt][Mm][Ll]\b|!DOCTYPE [Hh][Tt][Mm][Ll]\b)/dgv,end:/(?=not)impossible/dgv,name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded HTML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.html",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HTML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded HAML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.haml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)HAML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.haml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.haml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded XML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.xml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)XML)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded SQL",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.sql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SQL)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded GraphQL",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.graphql",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:GRAPHQL|GQL))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.graphql",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.graphql"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded CSS",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.css",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CSS)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded C++",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.cpp",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)CPP)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.cpp",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.cpp"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded C",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.c",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)C)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded Javascript",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.js",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:JS|JAVASCRIPT))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded jQuery Javascript",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.js.jquery",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)JQUERY)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded Shell",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.shell",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:SH|SHELL))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded Lua",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.lua",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)LUA)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded Ruby",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.ruby",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)RUBY)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded YAML",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.yaml",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)(?:YAML|YML))\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.yaml",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.yaml"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?=(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1))","dgv",{"hiddenCaptures":[1]}),comment:"Heredoc with embedded Slim",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),name:"meta.embedded.block.slim",patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(<<[\\-\\~]([\"'\\`]?)((?:[_\\p{L}\\p{M}\\p{N}\\p{Pc}]+_|)SLIM)\\b\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.slim",end:/^\p{space}*\2(?=\n?$)\n?()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.slim"},{include:"#escaped_char"}]}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(=\\p{space}*<<([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\2))\\1)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:/^\2(?=\n?$)()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/*@__PURE__*/ new EmulatedRegExp("(?:(?=(((<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\4,\\p{space}?)*<<[\\-\\~]([\"'\\`]?)([\\p{L}\\p{M}\\p{N}\\p{Pc}]+)\\6)))\\1)([^\\n]*)","dgv",{"hiddenCaptures":[1]}),beginCaptures:{"1":{name:"punctuation.definition.string.begin.ruby"},"7":{patterns:[{include:"source.ruby"}]}},comment:"heredoc with multiple inputs and indented terminator",end:/^\p{space}*\6(?=\n?$)()()()()()()/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:/(?<=\{|\{\p{space}|[^A-Za-z0-9_\:\@\$]do|^do|[^A-Za-z0-9_\:\@\$]do\p{space}|^do\p{space})(\|)/dgv,captures:{"1":{name:"punctuation.separator.variable.ruby"}},end:/(?<!\|)(\|)(?!\|)/dgv,name:"meta.block.parameters.ruby",patterns:[{begin:/(?![\p{space}\,\|\(])/dgv,end:/(?=,|\|\p{space}*)/dgv,patterns:[{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"variable.other.block.ruby"},"3":{name:"variable.other.block.unused.ruby variable.other.constant.ruby"}},match:/*@__PURE__*/ new EmulatedRegExp("^([\\&\\*]?)([a-zA-Z][\\p{L}\\p{M}\\p{N}\\p{Pc}_]*)|(_[\\p{L}\\p{M}\\p{N}\\p{Pc}_]*)","dgv",{"strategy":"clip_search"})}]},{match:/,/dgv,name:"punctuation.separator.variable.ruby"}]},{match:/=>/dgv,name:"punctuation.separator.key-value"},{match:/->/dgv,name:"support.function.kernel.ruby"},{match:/<<=|%=|&{1,2}=|\*=|\*\*=|\+=|-=|\^=|\|{1,2}=|<</dgv,name:"keyword.operator.assignment.augmented.ruby"},{match:/<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \t])\?/dgv,name:"keyword.operator.comparison.ruby"},{match:/(?<!\.)\b(and|not|or)\b(?![\?\!])/dgv,name:"keyword.operator.logical.ruby"},{match:/(?<=^|[ \t\!])!|&&|\|\||\^/dgv,name:"keyword.operator.logical.ruby"},{captures:{"1":{name:"keyword.operator.logical.ruby"}},comment:"Safe navigation operator",match:/(&\.)\p{space}*(?![A-Z])/dgv},{match:/(%|&|\*\*|\*|\+|-|\/)/dgv,name:"keyword.operator.arithmetic.ruby"},{match:/=/dgv,name:"keyword.operator.assignment.ruby"},{match:/\||~|>>/dgv,name:"keyword.operator.other.ruby"},{match:/;/dgv,name:"punctuation.separator.statement.ruby"},{match:/,/dgv,name:"punctuation.separator.object.ruby"},{captures:{"1":{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:/(::)\p{space}*(?=[A-Z])/dgv},{captures:{"1":{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:/(\.|::)\p{space}*(?![A-Z])/dgv},{comment:"Must come after method and constant separators to prefer double colons",match:/:/dgv,name:"punctuation.separator.other.ruby"},{match:/\{/dgv,name:"punctuation.section.scope.begin.ruby"},{match:/\}/dgv,name:"punctuation.section.scope.end.ruby"},{match:/\[/dgv,name:"punctuation.section.array.begin.ruby"},{match:/\]/dgv,name:"punctuation.section.array.end.ruby"},{match:/\(|\)/dgv,name:"punctuation.section.function.ruby"},{begin:/(?<=[^\.]\.|::)(?=[a-zA-Z][a-zA-Z0-9_\!\?]*[^a-zA-Z0-9_\!\?])/dgv,end:/(?<=[a-zA-Z0-9_\!\?])(?=[^a-zA-Z0-9_\!\?])/dgv,name:"meta.function-call.ruby",patterns:[{match:/([a-zA-Z][a-zA-Z0-9_\!\?]*)(?=[^a-zA-Z0-9_\!\?])/dgv,name:"entity.name.function.ruby"}]},{begin:/([a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*[\!\?]?)(\()/dgv,beginCaptures:{"1":{name:"entity.name.function.ruby"},"2":{name:"punctuation.section.function.ruby"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.section.function.ruby"}},name:"meta.function-call.ruby",patterns:[{include:"$self"}]}],repository:{escaped_char:{match:/\\(?:[0-7]{1,3}|x[\p{Nd}a-fA-F]{1,2}|[^\n])/dgv,name:"constant.character.escape.ruby"},heredoc:{begin:/^<<[\-\~]?[\p{L}\p{M}\p{N}\p{Pc}]+/dgv,end:/(?=\n?$)/dgv,patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:/#\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#@@)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:/(#\$)[a-zA-Z_][\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"variable.other.readwrite.global.ruby"}]},method_parameters:{patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"#params"},{include:"$self"}],repository:{braces:{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.scope.begin.ruby"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.scope.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},brackets:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]},params:{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"constant.other.symbol.hashkey.parameter.function.ruby"},"3":{name:"punctuation.definition.constant.ruby"},"4":{name:"variable.parameter.function.ruby"}},match:/(&|\*\*?)?(?:([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*[\?\!]?(:))|([_a-zA-Z][\p{L}\p{M}\p{N}\p{Pc}]*))/dgvy},parens:{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.section.function.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"#brackets"},{include:"$self"}]}}},nest_brackets:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#nest_brackets"}]},nest_brackets_i:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},nest_brackets_r:{begin:/\[/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\]/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},nest_curly:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly"}]},nest_curly_and_self:{patterns:[{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]},nest_curly_i:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},nest_curly_r:{begin:/\{/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\}/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},nest_ltgt:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#nest_ltgt"}]},nest_ltgt_i:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},nest_ltgt_r:{begin:/</dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/>/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},nest_parens:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#nest_parens"}]},nest_parens_i:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},nest_parens_r:{begin:/\(/dgv,captures:{"0":{name:"punctuation.section.scope.ruby"}},end:/\)/dgv,patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.ruby"},"3":{name:"punctuation.definition.arbitrary-repetition.ruby"}},match:/(\{)\p{Nd}+(,\p{Nd}+)?(\})/dgv,name:"string.regexp.arbitrary-repetition.ruby"},{begin:/\[(?:\^?\])?/dgv,captures:{"0":{name:"punctuation.definition.character-class.ruby"}},end:/\]/dgv,name:"string.regexp.character-class.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(\?#/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.begin.ruby"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:/\(/dgv,captures:{"0":{name:"punctuation.definition.group.ruby"}},end:/\)/dgv,name:"string.regexp.group.ruby",patterns:[{include:"#regex_sub"}]},{begin:/(?<=^|\p{space})(#)\p{space}(?=[a-zA-Z0-9\,\. \t\?\!\-[^\x00-\x7F]]*(?=\n?$))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.ruby"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",end:/(?=\n?$)\n?/dgv,endCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},name:"comment.line.number-sign.ruby"}]},yard:{patterns:[{include:"#yard_comment"},{include:"#yard_param_types"},{include:"#yard_option"},{include:"#yard_tag"},{include:"#yard_types"},{include:"#yard_directive"},{include:"#yard_see"},{include:"#yard_macro_attribute"}]},yard_comment:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},comment:"For YARD tags that follow the tag-comment pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_continuation:{match:/^\p{space}*#/dgv,name:"punctuation.definition.comment.ruby"},yard_directive:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(endgroup|group|method|parse|scope|visibility)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},comment:"For YARD directives",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_macro_attribute:{begin:/^(\p{space}*)(#)(\p{space}*)(@!)(attribute|macro)(\p{space}+((\[)[^\n]+(\])))?(?=\p{space})(\p{space}+([a-z_][\p{L}\p{M}\p{N}\p{Pc}]*:?))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"11":{name:"comment.line.parameter.yard.ruby"}},comment:"separate rule for attribute and macro tags because name goes after []",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_option:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(option)(?=\\p{space})(?:(?=(\\p{space}+([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\6)?(?:(?=(\\p{space}+((\\[)[^\\n]+(\\]))))\\8)?(?:(?=(\\p{space}+((\\P{space}*))))\\12)?(?:(?=(\\p{space}+((\\()[^\\n]+(\\)))))\\15)?","dgv",{"hiddenCaptures":[6,8,12,15]}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.keyword.yard.ruby"},"11":{name:"comment.line.hashkey.yard.ruby"},"12":{name:"comment.line.defaultvalue.yard.ruby"},"13":{name:"comment.line.punctuation.yard.ruby"},"14":{name:"comment.line.punctuation.yard.ruby"}},comment:"For YARD option tag that follow the tag-name-types-key-(value)-description pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_param_types:{begin:/*@__PURE__*/ new EmulatedRegExp("^(\\p{space}*)(#)(\\p{space}*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\p{space})(?:(?=(\\p{space}+(?:(?=(([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)|((\\[)[^\\n]+(\\]))))\\7)))\\6)?(?:(?=(\\p{space}+(?:(?=(((\\[)[^\\n]+(\\]))|([a-z_][\\p{L}\\p{M}\\p{N}\\p{Pc}]*:?)))\\13)))\\12)?","dgv",{"hiddenCaptures":[6,7,12,13]}),beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"6":{name:"comment.line.parameter.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"},"10":{name:"comment.line.type.yard.ruby"},"11":{name:"comment.line.punctuation.yard.ruby"},"12":{name:"comment.line.punctuation.yard.ruby"},"13":{name:"comment.line.parameter.yard.ruby"}},comment:"For YARD tags that follow the tag-name-types-description or tag-types-name-description pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_see:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(see)(?=\p{space})(\p{space}+([^\n]+?))?(?=\p{space}|(?=\n?$))/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.parameter.yard.ruby"}},comment:"separate rule for @see because name could contain url",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]},yard_tag:{captures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"}},comment:"For YARD tags that are just the tag",match:/^(\p{space}*)(#)(\p{space}*)(@)(private)(?=\n?$)/dgv,name:"comment.line.number-sign.ruby"},yard_types:{begin:/^(\p{space}*)(#)(\p{space}*)(@)(raise|return|yield(?:return)?)(?=\p{space})(\p{space}+((\[)[^\n]+(\])))?/dgv,beginCaptures:{"2":{name:"punctuation.definition.comment.ruby"},"4":{name:"comment.line.keyword.punctuation.yard.ruby"},"5":{name:"comment.line.keyword.yard.ruby"},"7":{name:"comment.line.type.yard.ruby"},"8":{name:"comment.line.punctuation.yard.ruby"},"9":{name:"comment.line.punctuation.yard.ruby"}},comment:"For YARD tags that follow the tag-types-comment pattern",contentName:"comment.line.string.yard.ruby",end:/^(?!\p{space}*#\3\p{space}{2,}|\p{space}*#\p{space}*(?=\n?$))()()()/dgv,name:"comment.line.number-sign.ruby",patterns:[{include:"#yard"},{include:"#yard_continuation"}]}},scopeName:"source.ruby",embeddedLangs:["html","haml","xml","sql","graphql","css","cpp","c","javascript","shellscript","lua","yaml"],aliases:["rb"]})
|
|
16
16
|
|
|
17
17
|
export default [
|
|
18
18
|
...html,
|