github-linguist 9.5.0 → 9.7.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.
- checksums.yaml +4 -4
- data/grammars/etc.json +1 -1
- data/grammars/gno.mod.json +1 -0
- data/grammars/markdown.mojo.codeblock.json +1 -0
- data/grammars/markdown.move.codeblock.json +1 -1
- data/grammars/source.4dm.json +1 -1
- data/grammars/source.abl.json +1 -1
- data/grammars/source.aleo.json +1 -0
- data/grammars/source.apex.json +1 -1
- data/grammars/source.astro.json +1 -1
- data/grammars/source.baml.json +1 -0
- data/grammars/source.bb.json +1 -1
- data/grammars/source.bird2.json +1 -0
- data/grammars/source.blueprint.json +1 -0
- data/grammars/source.bnd.json +1 -1
- data/grammars/source.brs.embedded.xml.json +1 -0
- data/grammars/source.bsl.json +1 -1
- data/grammars/source.c++.json +1 -1
- data/grammars/source.c.json +1 -1
- data/grammars/source.c3.json +1 -1
- data/grammars/source.carbon.json +1 -0
- data/grammars/source.cel.json +1 -0
- data/grammars/source.cl.json +1 -1
- data/grammars/source.clar.json +1 -1
- data/grammars/source.cmake.json +1 -1
- data/grammars/source.cmd.json +1 -1
- data/grammars/source.comment-string.wesl.json +1 -1
- data/grammars/source.comment-string.wgsl.json +1 -1
- data/grammars/source.cs.json +1 -1
- data/grammars/source.csswg.json +1 -1
- data/grammars/source.csv.json +1 -1
- data/grammars/source.curlrc.json +1 -1
- data/grammars/source.dart.json +1 -1
- data/grammars/source.daslang.json +1 -1
- data/grammars/source.data-weave.json +1 -1
- data/grammars/source.dds.dspf.json +1 -1
- data/grammars/source.dds.icff.json +1 -1
- data/grammars/source.dds.lf.json +1 -1
- data/grammars/source.dds.pf.json +1 -1
- data/grammars/source.dds.prtf.json +1 -1
- data/grammars/source.deq.json +1 -0
- data/grammars/source.emacs.lisp.json +1 -1
- data/grammars/source.fift.json +1 -0
- data/grammars/source.flix.json +1 -1
- data/grammars/source.fpp.json +1 -0
- data/grammars/source.func.json +1 -0
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.gedcom.json +1 -1
- data/grammars/source.gimprc.json +1 -0
- data/grammars/source.gimpres.json +1 -0
- data/grammars/source.gitconfig.json +1 -1
- data/grammars/source.gno.json +1 -0
- data/grammars/source.graphql.json +1 -1
- data/grammars/source.gtkrc.json +1 -0
- data/grammars/source.hack.json +1 -1
- data/grammars/source.hosts.json +1 -1
- data/grammars/source.hx.json +1 -1
- data/grammars/source.hxml.json +1 -1
- data/grammars/source.il.json +1 -0
- data/grammars/source.interp.json +1 -0
- data/grammars/source.jac.json +1 -1
- data/grammars/source.jactoml.json +1 -0
- data/grammars/source.jai.json +1 -1
- data/grammars/source.jass.json +1 -0
- data/grammars/source.julia.json +1 -1
- data/grammars/source.just.json +1 -1
- data/grammars/source.kcl.json +1 -1
- data/grammars/source.koka.json +1 -1
- data/grammars/source.lean4.markdown.json +1 -1
- data/grammars/source.leo.json +1 -1
- data/grammars/source.lobster.json +1 -0
- data/grammars/source.logos.json +1 -1
- data/grammars/source.luau.json +1 -1
- data/grammars/source.m2.json +1 -1
- data/grammars/source.m3u.json +1 -1
- data/grammars/source.matlab.json +1 -1
- data/grammars/source.mdx.astro.json +1 -1
- data/grammars/source.mi.json +1 -1
- data/grammars/source.mo.json +1 -1
- data/grammars/source.mojo.json +1 -1
- data/grammars/source.moonbit.config.json +1 -0
- data/grammars/source.moonbit.json +1 -1
- data/grammars/source.move.json +1 -1
- data/grammars/source.ms.json +1 -0
- data/grammars/source.nim.json +1 -1
- data/grammars/source.openqasm.json +1 -1
- data/grammars/source.opy.json +1 -0
- data/grammars/source.paperspecs.json +1 -0
- data/grammars/source.pic.json +1 -1
- data/grammars/source.pkgconf.json +1 -0
- data/grammars/source.pl.json +1 -0
- data/grammars/source.pnlgrp.json +1 -1
- data/grammars/source.powerquery.json +1 -0
- data/grammars/source.powershell.json +1 -1
- data/grammars/source.prisma.json +1 -1
- data/grammars/source.qsharp.json +1 -1
- data/grammars/source.quint.json +1 -0
- data/grammars/source.rarlist.json +1 -0
- data/grammars/source.rascript.json +1 -1
- data/grammars/source.record-jar.json +1 -1
- data/grammars/source.redscript.json +1 -0
- data/grammars/source.rego.json +1 -1
- data/grammars/source.rhai.json +1 -0
- data/grammars/source.rpg.json +1 -1
- data/grammars/source.rpgle.json +1 -1
- data/grammars/source.rust.json +1 -1
- data/grammars/source.scala.json +1 -1
- data/grammars/source.slang.json +1 -1
- data/grammars/source.slint.json +1 -1
- data/grammars/source.smithy.json +1 -1
- data/grammars/source.soql.json +1 -1
- data/grammars/source.spicedb-yaml.json +1 -0
- data/grammars/source.spicedb.json +1 -0
- data/grammars/source.stan.json +1 -1
- data/grammars/source.stim.json +1 -0
- data/grammars/source.surrealql.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.tasm.json +1 -0
- data/grammars/source.tlb.json +1 -0
- data/grammars/source.tolk.json +1 -0
- data/grammars/source.ucode-template.json +1 -0
- data/grammars/source.ucode.json +1 -0
- data/grammars/source.uri-list.json +1 -0
- data/grammars/source.v.json +1 -1
- data/grammars/source.vento.json +1 -1
- data/grammars/source.verse.json +1 -0
- data/grammars/source.vespaSchema.json +1 -0
- data/grammars/source.vhs.json +1 -0
- data/grammars/source.wgsl.json +1 -1
- data/grammars/source.yaml.salt.json +1 -1
- data/grammars/spicedb-yaml.injection.json +1 -0
- data/grammars/text.bbcode.json +1 -0
- data/grammars/text.cachedir.json +1 -0
- data/grammars/text.cookie-jar.json +1 -0
- data/grammars/text.html.handlebars.json +1 -1
- data/grammars/text.html.vue.json +1 -1
- data/grammars/text.mac-tts.json +1 -0
- data/grammars/text.recfile.json +1 -0
- data/grammars/text.roff.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/blob_helper.rb +19 -0
- data/lib/linguist/classifier.rb +2 -1
- data/lib/linguist/generated.rb +40 -0
- data/lib/linguist/generic.yml +3 -0
- data/lib/linguist/heuristics.yml +97 -5
- data/lib/linguist/language.rb +13 -9
- data/lib/linguist/languages.yml +368 -37
- data/lib/linguist/languages_data.rb +7663 -0
- data/lib/linguist/lazy_blob.rb +25 -2
- data/lib/linguist/samples.rb +4 -10
- data/lib/linguist/samples_data.rb +196100 -0
- data/lib/linguist/vendor.yml +3 -0
- metadata +54 -18
- data/grammars/markdown.bicep.codeblock.json +0 -1
- data/lib/linguist/languages.json +0 -1
- data/lib/linguist/samples.json +0 -1
data/grammars/source.qsharp.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"qsharp","scopeName":"source.qsharp","patterns":[{"include":"#comments"},{"include":"#functions"},{"include":"#keywords"},{"include":"#operators"},{"include":"#types"},{"include":"#constants"},{"include":"#strings"},{"include":"#variables"}],"repository":{"comments":{"patterns":[{"name":"comment.line.double-slash","match":"\\/\\/.*$"},{"name":"comment.documentation","match":"\\/\\/\\/.*$"}]},"constants":{"patterns":[{"name":"constant.language.qsharp","match":"\\b(true|false|Pauli(I|X|Y|Z))\\b"},{"name":"constant.other.result.qsharp","match":"\\b(One|Zero)\\b"},{"name":"constant.numeric.qsharp","match":"\\b[\\d_]*\\.?[\\d_]\\b"}]},"functions":{"patterns":[{"name":"meta.function.definition.qsharp","begin":"\\b(function)\\s+([A-Za-z0-9_]+)(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#functions"},{"include":"#keywords"},{"include":"#operators"},{"include":"#types"},{"include":"#constants"},{"include":"#strings"},{"include":"#variables"}],"beginCaptures":{"1":{"name":"keyword.other.qsharp"},"2":{"name":"entity.name.function.qsharp"},"3":{"name":"punctuation.brackets.round.qsharp"}},"endCaptures":{"0":{"name":"punctuation.brackets.round.qsharp"}}},{"name":"meta.function.call.qsharp","begin":"\\b(?\u003c!@)([A-Za-z0-9_]+)(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#functions"},{"include":"#keywords"},{"include":"#operators"},{"include":"#types"},{"include":"#constants"},{"include":"#strings"},{"include":"#variables"}],"beginCaptures":{"1":{"name":"entity.name.function.qsharp"},"2":{"name":"punctuation.brackets.round.qsharp"}},"endCaptures":{"0":{"name":"punctuation.brackets.round.qsharp"}}}]},"keywords":{"patterns":[{"name":"keyword.control.qsharp","match":"\\b(use|borrow|mutable|let|set|if|elif|else|repeat|until|fixup|for|in|while|return|fail|within|apply)\\b"},{"name":"keyword.other.qsharp","match":"\\b(namespace|open|import|export|as|internal|newtype|struct|operation|function|new|body|(a|A)djoint|(c|C)ontrolled|self|auto|distribute|invert|intrinsic)\\b"}]},"operators":{"patterns":[{"name":"keyword.other.operator.qsharp","match":"\\b(not|and|or)\\b|\\b(w/)|(=)|(!)|(\u003c)|(\u003e)|(\\+)|(-)|(\\*)|(\\/)|(\\^)|(%)|(\\|)|(\\\u0026\\\u0026\\\u0026)|(\\~\\~\\~)|(\\.\\.\\.)|(\\.\\.)|(\\?)"}]},"strings":{"patterns":[{"name":"string.quoted.double.qsharp","begin":"(\\$|)\"","end":"\"","patterns":[{"name":"constant.character.escape.qsharp","match":"\\\\."}]}]},"types":{"patterns":[{"name":"storage.type.qsharp","match":"\\b(Int|BigInt|Double|Bool|Qubit|Pauli|Result|Range|String|Unit|Ctl|Adj|is)\\b"}]},"variables":{"patterns":[{"name":"variable.other.qsharp","match":"\\b(?\u003c!@)[A-Za-z0-9_]+\\b"}]}}}
|
|
1
|
+
{"name":"qsharp","scopeName":"source.qsharp","patterns":[{"include":"#comments"},{"include":"#attributes"},{"include":"#namespace-declaration"},{"include":"#import-export-directive"},{"include":"#new-expression"},{"include":"#struct-declaration"},{"include":"#member-access"},{"include":"#tuple-binding"},{"include":"#keywords"},{"include":"#library-invocation"},{"include":"#library"},{"include":"#operations"},{"include":"#types"},{"include":"#literals"},{"include":"#strings"},{"include":"#callable-invocation"},{"include":"#callable-declaration"},{"include":"#udt-declaration"},{"include":"#array-creation-expression"},{"include":"#local-declaration"},{"include":"#array-assignment"},{"include":"#local-assignment"},{"include":"#quantum-declaration"},{"include":"#if-statement"},{"include":"#parenthesized-expression"},{"include":"#expression-operators"},{"include":"#declaration-keywords"},{"include":"#identifier"}],"repository":{"argument":{"patterns":[{"include":"#expression"}]},"argument-list":{"begin":"\\(","end":"\\)","patterns":[{"include":"#argument"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.qsharp"}}},"array-assignment":{"begin":"(?x)\n\\b(set)\\b\\s*\n([_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?:(=)\\s*([_[:alpha:]][_[:alnum:]]*)\\b\\s*(w\\/)|(w\\/=))","end":"(?=;|\\)|})","patterns":[{"name":"keyword.operator.assignment.qsharp","match":"\u003c-"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.set.qsharp"},"2":{"name":"entity.name.variable.local.qsharp"},"3":{"name":"keyword.operator.assignment.qsharp"},"4":{"name":"entity.name.variable.local.qsharp"},"5":{"name":"keyword.operator.assignment.qsharp"},"6":{"name":"keyword.operator.assignment.qsharp"}}},"array-creation-expression":{"begin":"(?\u003c!\\w)\\[","end":"\\]","patterns":[{"begin":"\\b(size)\\s*(?=\\=)","end":"(?=\\])","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.size.qsharp"}}},{"include":"#argument"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.squarebracket.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.squarebracket.close.qsharp"}}},"attributes":{"patterns":[{"begin":"(@)([_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.attribute.qsharp"},"2":{"name":"entity.name.function.attribute.qsharp"}}},{"match":"(@)([_[:alpha:]][_[:alnum:]]*)","captures":{"1":{"name":"punctuation.definition.attribute.qsharp"},"2":{"name":"entity.name.function.attribute.qsharp"}}}]},"boolean-literal":{"patterns":[{"name":"constant.language.boolean.true.qsharp","match":"(?\u003c!\\.)\\btrue\\b"},{"name":"constant.language.boolean.false.qsharp","match":"(?\u003c!\\.)\\bfalse\\b"}]},"callable-declaration":{"begin":"(?x)\n\\b(operation|function)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)\\s* # callable name\n(?\u003ctype_args\u003e\\s*\u003c([^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\\s* # type arguments\n(?=\\() # open parentheses of argument list","end":"(?\u003c=\\))","patterns":[{"include":"#parameter-list"}],"beginCaptures":{"1":{"name":"keyword.other.callable.qsharp"},"2":{"name":"entity.name.function.qsharp"},"3":{"patterns":[{"include":"#type-parameter-list"}]}}},"callable-invocation":{"begin":"(?x)\n(?:(\\:\\:|\\.)\\s*)? # preceding member access (:: or .)\n(?!(?:let|mutable|set|use|borrow|new|fixup|for|in|while|repeat|until|return|fail|within|apply|if|elif|else|not|and|or|namespace|import|export|open|operation|function|struct|newtype|internal|is)\\b)\n([_[:alpha:]][_[:alnum:]]*)\\s* # callable name (not a keyword)\n(?\u003ctype_args\u003e\\s*\u003c([^\u003c\u003e]|\\g\u003ctype_args\u003e)+\u003e\\s*)?\\s* # type arguments\n(?=\\() # open parentheses of argument list","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"name":"punctuation.accessor.qsharp"},"2":{"name":"entity.name.function.qsharp"},"3":{"patterns":[{"include":"#type-parameter-list"}]}}},"comments":{"patterns":[{"begin":"(^\\s+)?(?=//)","end":"(?=$)","patterns":[{"name":"comment.block.documentation.qsharp","begin":"(?\u003c!/)///(?!/)","end":"(?=$)","beginCaptures":{"0":{"name":"punctuation.definition.comment.qsharp"}}},{"name":"comment.line.double-slash.qsharp","begin":"(?\u003c!/)//(?:(?!/))","end":"(?=$)","beginCaptures":{"0":{"name":"punctuation.definition.comment.qsharp"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.qsharp"}}}]},"declaration-keywords":{"patterns":[{"name":"keyword.other.callable.qsharp","match":"\\b(operation|function)\\b"},{"name":"keyword.other.let.qsharp","match":"\\b(let)\\b"},{"name":"keyword.other.mutable.qsharp","match":"\\b(mutable)\\b"},{"name":"keyword.other.set.qsharp","match":"\\b(set)\\b"},{"name":"keyword.other.use.qsharp","match":"\\b(use)\\b"},{"name":"keyword.other.borrow.qsharp","match":"\\b(borrow)\\b"}]},"expression":{"patterns":[{"include":"#comments"},{"include":"#if-statement"},{"include":"#new-expression"},{"include":"#keywords"},{"include":"#strings"},{"include":"#member-access"},{"include":"#library-invocation"},{"include":"#callable-invocation"},{"include":"#library"},{"include":"#types"},{"include":"#literals"},{"include":"#parenthesized-expression"},{"include":"#array-creation-expression"},{"include":"#expression-operators"},{"include":"#identifier"}]},"expression-operators":{"patterns":[{"name":"keyword.operator.logical.qsharp","match":"\\b(not|and|or)\\b"},{"name":"keyword.operator.lambda.qsharp","match":"(-\u003e|=\u003e)"},{"name":"keyword.operator.assignment.compound.qsharp","match":"(\\+=|-=|\\*=|/=|%=|\\^=|\u0026\u0026\u0026=|\\|\\|\\|=|\\^\\^\\^=|\u003c\u003c\u003c=|\u003e\u003e\u003e=|\\bw/=)"},{"name":"keyword.operator.copy-update.qsharp","match":"(\\bw/|\u003c-)"},{"name":"keyword.operator.assignment.qsharp","match":"(?\u003c![=\u003c\u003e!+\\-*/%^\u0026|~])=(?![=\u003e])"},{"name":"keyword.operator.range.qsharp","match":"(\\.\\.\\.|\\.\\.)"},{"name":"keyword.operator.bitwise.qsharp","match":"(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|\u003c\u003c\u003c|\u003e\u003e\u003e)"},{"name":"keyword.operator.comparison.qsharp","match":"(==|!=|\u003c=|\u003e=|\u003c|\u003e)"},{"name":"keyword.operator.arithmetic.qsharp","match":"(\\+|\\-|\\*|/|%|\\^)"},{"name":"keyword.operator.ternary.qsharp","match":"(\\?|\\|)"}]},"field-initializer":{"begin":"([_[:alpha:]][_[:alnum:]]*)\\s*(=)(?![=\u003e])","end":"(?=(,|\\}))","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.property.qsharp"},"2":{"name":"keyword.operator.assignment.qsharp"}}},"identifier":{"patterns":[{"name":"variable.other.readwrite.qsharp","match":"\\b[_[:alpha:]][_[:alnum:]]*\\b"}]},"if-statement":{"begin":"(?\u003c!\\.)\\b(if)\\b\\s*(?=\\S)","end":"(?\u003c=})(?!\\s*\\b(?:elif|else)\\b)|(?=;)","patterns":[{"name":"keyword.control.conditional.qsharp","match":"\\b(elif|else)\\b"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#statements"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.qsharp"}}},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.if.qsharp"}}},"import-export-directive":{"begin":"\\b(import|export)\\b","end":"(?=;)|$","patterns":[{"include":"#comments"},{"begin":"\\b(as)\\b\\s*","end":"(?=(,|;)|$)","patterns":[{"include":"#comments"},{"name":"entity.name.type.alias.qsharp","match":"[_[:alpha:]][_[:alnum:]]*"}],"beginCaptures":{"1":{"name":"keyword.other.qsharp"}}},{"name":"keyword.operator.wildcard.qsharp","match":"\\*"},{"name":"entity.name.namespace.qsharp","match":"[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-accessor"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.other.import.qsharp"}}},"keywords":{"patterns":[{"name":"keyword.control.qsharp","match":"\\b(elif|else|repeat|until|fixup|for|in|while|break|continue|return|fail|within|apply|parallel)\\b"},{"name":"keyword.other.qsharp","match":"\\b(using|borrowing)\\b"},{"name":"keyword.other.qsharp","match":"\\b(new)\\b"}]},"library":{"patterns":[{"name":"support.function.quantum.qsharp","match":"\\b(CCNOT|CNOT|CX|CY|CZ|SWAP|SX|H|S|T|I|X|Y|Z|Rxx|Ryy|Rzz|Rx|Ry|Rz|R1Frac|R1|RFrac|R|ExpFrac|Exp|MResetEachZ|MResetX|MResetY|MResetZ|MeasureEachZ|MeasureAllZ|Measure|M|ResetAll|Reset)\\b"}]},"library-invocation":{"begin":"(?x)\n\\b(CCNOT|CNOT|CX|CY|CZ|SWAP|SX|H|S|T|I|X|Y|Z|Rxx|Ryy|Rzz|Rx|Ry|Rz|R1Frac|R1|RFrac|R|ExpFrac|Exp|MResetEachZ|MResetX|MResetY|MResetZ|MeasureEachZ|MeasureAllZ|Measure|M|ResetAll|Reset)\\b\\s*\n(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#argument-list"}],"beginCaptures":{"1":{"name":"support.function.quantum.qsharp"}}},"literals":{"patterns":[{"include":"#boolean-literal"},{"include":"#result-literal"},{"include":"#pauli-literal"},{"include":"#numeric-literal"}]},"local-assignment":{"begin":"(?x)\n(?:\\b(set)\\b\\s*)\n([_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=;|\\+=|-=|=|\\))","end":"(?=;|\\)|})","patterns":[{"include":"#variable-initializer"}],"beginCaptures":{"1":{"name":"keyword.other.set.qsharp"},"2":{"name":"entity.name.variable.local.qsharp"}}},"local-declaration":{"begin":"(?x)\n(?:\\b(?:(let)|(mutable))\\b\\s*)\n([_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=;|=|\\))","end":"(?=;|\\)|})","patterns":[{"include":"#variable-initializer"}],"beginCaptures":{"1":{"name":"keyword.other.let.qsharp"},"2":{"name":"keyword.other.mutable.qsharp"},"3":{"name":"entity.name.variable.local.qsharp"}}},"member-access":{"match":"(?x)\n(\\.)\\s*\n([_[:alpha:]][_[:alnum:]]*)\\b\n(?!\\s*\\()","captures":{"1":{"name":"punctuation.accessor.qsharp"},"2":{"name":"variable.other.property.qsharp"}}},"namespace-declaration":{"begin":"\\b(namespace)\\s+","end":"(?\u003c=\\})","patterns":[{"name":"entity.name.type.namespace.qsharp","match":"[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-accessor"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#attributes"},{"include":"#import-export-directive"},{"include":"#new-expression"},{"include":"#struct-declaration"},{"include":"#member-access"},{"include":"#tuple-binding"},{"include":"#keywords"},{"include":"#library-invocation"},{"include":"#library"},{"include":"#operations"},{"include":"#types"},{"include":"#literals"},{"include":"#strings"},{"include":"#callable-invocation"},{"include":"#callable-declaration"},{"include":"#udt-declaration"},{"include":"#open-directive"},{"include":"#array-creation-expression"},{"include":"#local-declaration"},{"include":"#array-assignment"},{"include":"#local-assignment"},{"include":"#quantum-declaration"},{"include":"#if-statement"},{"include":"#parenthesized-expression"},{"include":"#expression-operators"},{"include":"#declaration-keywords"},{"include":"#identifier"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.qsharp"}}}],"beginCaptures":{"1":{"name":"keyword.other.namespace.qsharp"}}},"new-expression":{"begin":"(?x)\n\\b(new)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)\\s*\n(?=\\{)","end":"(?\u003c=\\})","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#spread-operator"},{"include":"#field-initializer"},{"include":"#punctuation-comma"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.qsharp"}}}],"beginCaptures":{"1":{"name":"keyword.other.new.qsharp"},"2":{"name":"entity.name.type.struct.qsharp"}}},"numeric-literal":{"patterns":[{"name":"constant.numeric.hexadecimal.qsharp","match":"\\b0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?\\b"},{"name":"constant.numeric.binary.qsharp","match":"\\b0[bB][01][01_]*[lL]?\\b"},{"name":"constant.numeric.octal.qsharp","match":"\\b0[oO][0-7][0-7_]*[lL]?\\b"},{"name":"constant.numeric.decimal.qsharp","match":"(?x)\n\\b\\d[\\d_]* \\. \\d[\\d_]* (?:[eE][+-]?\\d+)? # 1.0 3.14 1.0e-3\n| \\b\\d[\\d_]* [eE][+-]?\\d+ # 1e10\n| \\b\\d[\\d_]* [lL]? # 42 42L 1_000"}]},"open-directive":{"patterns":[{"begin":"\\b(open)\\s*","end":"(?=;)","patterns":[{"include":"#comments"},{"begin":"\\b(as)\\s+(?\u003calias\u003e[_[:alpha:]][_[:alnum:]]*)","end":"(?=;)","beginCaptures":{"1":{"name":"keyword.other.alias.qsharp"},"2":{"name":"entity.name.type.alias.qsharp"}}},{"name":"entity.name.type.namespace.qsharp","match":"[_[:alpha:]][_[:alnum:]]*"},{"include":"#punctuation-accessor"}],"beginCaptures":{"1":{"name":"keyword.other.open.qsharp"}}}]},"operations":{"patterns":[{"name":"keyword.other.qsharp","match":"\\b(as|internal|body|(a|A)djoint|(c|C)ontrolled|self|auto|distribute|invert|intrinsic|is)\\b"}]},"parameter":{"begin":"([_[:alpha:]][_[:alnum:]]*)\\s*(:)","end":"(?=(,|\\)|\\]))","patterns":[{"include":"#comments"},{"include":"#literals"},{"include":"#types"},{"include":"#library"},{"include":"#expression-operators"}],"beginCaptures":{"1":{"name":"entity.name.variable.parameter.qsharp"},"2":{"name":"punctuation.separator.colon.qsharp"}}},"parameter-list":{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comments"},{"include":"#parameter"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.qsharp"}}},"parenthesized-expression":{"begin":"\\(","end":"\\)","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.qsharp"}}},"pauli-literal":{"patterns":[{"name":"constant.language.pauli.qsharp","match":"\\b(Pauli(I|X|Y|Z))\\b"}]},"punctuation-accessor":{"name":"punctuation.accessor.qsharp","match":"\\."},"punctuation-comma":{"name":"punctuation.separator.comma.qsharp","match":","},"quantum-declaration":{"begin":"(?x)\n(?:\\b(?:(use)|(borrow))\\b\\s*)\n([_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=;|=|\\))","end":"(?=;|\\)|})","patterns":[{"include":"#quantum-initializer"}],"beginCaptures":{"1":{"name":"keyword.other.use.qsharp"},"2":{"name":"keyword.other.borrow.qsharp"},"3":{"name":"entity.name.variable.local.qsharp"}}},"quantum-initializer":{"begin":"(?\u003c!=|!)(=)(?!=|\u003e)","end":"(?=[,\\)\\];}])","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.qsharp"}}},"result-literal":{"patterns":[{"name":"constant.language.result.zero.qsharp","match":"(?\u003c!\\.)\\bZero\\b"},{"name":"constant.language.result.one.qsharp","match":"(?\u003c!\\.)\\bOne\\b"}]},"spread-operator":{"name":"keyword.operator.spread.qsharp","match":"\\.\\.\\."},"statements":{"patterns":[{"include":"#comments"},{"include":"#attributes"},{"include":"#import-export-directive"},{"include":"#open-directive"},{"include":"#new-expression"},{"include":"#struct-declaration"},{"include":"#member-access"},{"include":"#tuple-binding"},{"include":"#keywords"},{"include":"#library-invocation"},{"include":"#library"},{"include":"#operations"},{"include":"#types"},{"include":"#literals"},{"include":"#strings"},{"include":"#callable-invocation"},{"include":"#callable-declaration"},{"include":"#udt-declaration"},{"include":"#array-creation-expression"},{"include":"#local-declaration"},{"include":"#array-assignment"},{"include":"#local-assignment"},{"include":"#quantum-declaration"},{"include":"#if-statement"},{"include":"#parenthesized-expression"},{"include":"#expression-operators"},{"include":"#declaration-keywords"},{"include":"#identifier"}]},"strings":{"patterns":[{"name":"string.quoted.double.interpolated.qsharp","begin":"\\$\"","end":"\"","patterns":[{"name":"constant.character.escape.qsharp","match":"\\\\."},{"name":"meta.interpolation.qsharp","begin":"\\{","end":"\\}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.interpolation.begin.qsharp"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.qsharp"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.qsharp"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.qsharp"}}},{"name":"string.quoted.double.qsharp","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.qsharp","match":"\\\\."}]}]},"struct-declaration":{"begin":"(?x)\n\\b(struct)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#struct-field"},{"include":"#punctuation-comma"},{"include":"#types"},{"include":"#library"}],"beginCaptures":{"0":{"name":"punctuation.curlybrace.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.curlybrace.close.qsharp"}}}],"beginCaptures":{"1":{"name":"keyword.other.struct.qsharp"},"2":{"name":"entity.name.type.struct.qsharp"}}},"struct-field":{"begin":"([_[:alpha:]][_[:alnum:]]*)\\s*(:)","end":"(?=(,|\\}))","patterns":[{"include":"#comments"},{"include":"#type-parameter"},{"include":"#types"},{"include":"#library"}],"beginCaptures":{"1":{"name":"variable.other.property.qsharp"},"2":{"name":"punctuation.separator.colon.qsharp"}}},"tuple-binding":{"begin":"(?x)\n\\b(?:(let)|(mutable)|(set)|(use)|(borrow))\\b\\s*\n(?=\\()","end":"(?=;|\\bin\\b)","patterns":[{"include":"#tuple-pattern"},{"include":"#variable-initializer"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.let.qsharp"},"2":{"name":"keyword.other.mutable.qsharp"},"3":{"name":"keyword.other.set.qsharp"},"4":{"name":"keyword.other.use.qsharp"},"5":{"name":"keyword.other.borrow.qsharp"}}},"tuple-pattern":{"begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#tuple-pattern"},{"name":"entity.name.variable.local.qsharp","match":"\\b[_[:alpha:]][_[:alnum:]]*\\b"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.parenthesis.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.qsharp"}}},"type-array-suffix":{"begin":"\\b\\[","end":"\\]","patterns":[{"include":"#punctuation-comma"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.squarebracket.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.squarebracket.close.qsharp"}}},"type-parameter":{"name":"entity.name.type.type-parameter.qsharp","match":"'[_[:alpha:]][_[:alnum:]]*"},"type-parameter-list":{"begin":"\\\u003c","end":"\\\u003e","patterns":[{"include":"#comments"},{"match":"('[_[:alpha:]][_[:alnum:]]*)\\b","captures":{"1":{"name":"entity.name.type.type-parameter.qsharp"}}},{"name":"punctuation.separator.colon.qsharp","match":":"},{"name":"keyword.operator.qsharp","match":"\\+"},{"name":"support.type.constraint.qsharp","match":"\\b(Eq|Add|Sub|Mul|Div|Mod|Signed|Ord|Show|Integral|Iterable|Exp)\\b"},{"name":"punctuation.squarebracket.open.qsharp","match":"\\["},{"name":"punctuation.squarebracket.close.qsharp","match":"\\]"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.qsharp"}},"endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.qsharp"}}},"types":{"patterns":[{"include":"#type-parameter"},{"name":"storage.type.qsharp","match":"\\b(Int|BigInt|Double|Bool|Qubit|Pauli|Result|Range|String|Unit|Ctl|Adj)\\b"},{"include":"#type-array-suffix"}]},"udt-declaration":{"begin":"(?=\\bnewtype\\b)","end":"(?\u003c=\\)|;)","patterns":[{"begin":"(?x)\n(newtype)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)","end":"(?=\\s*=)","beginCaptures":{"1":{"name":"keyword.other.udt.qsharp"},"2":{"name":"entity.name.type.udt.qsharp"}}},{"begin":"(?:\\s*=\\s*)(\\()","end":"\\)","patterns":[{"include":"#comments"},{"include":"#literals"},{"include":"#punctuation-comma"},{"include":"#types"},{"include":"#library"}],"beginCaptures":{"1":{"name":"punctuation.parenthesis.open.qsharp"}},"endCaptures":{"0":{"name":"punctuation.parenthesis.close.qsharp"}}},{"begin":"(?:\\s*=\\s*)","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#literals"},{"include":"#punctuation-comma"},{"include":"#types"},{"include":"#library"}]}]},"variable-initializer":{"begin":"(?\u003c!=|!)(?:(\\+=)|(-=)|(=)|(\u003c-))(?!=|\u003e)","end":"(?=[,\\)\\];}])","patterns":[{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.increment.qsharp"},"2":{"name":"keyword.operator.assignment.decrement.qsharp"},"3":{"name":"keyword.operator.assignment.qsharp"}}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"Quint","scopeName":"source.quint","patterns":[{"include":"#hashbangLine"},{"include":"#docComments"},{"include":"#lineComments"},{"include":"#blockComments"},{"include":"#keywords"},{"include":"#storage"},{"include":"#constants"},{"include":"#punctuation"},{"include":"#operators"},{"include":"#identifiers"},{"include":"#strings"},{"include":"#numbers"}],"repository":{"blockComments":{"name":"comment.block.quint","begin":"/\\*","end":"\\*/"},"constants":{"patterns":[{"name":"constant.language.quint","match":"\\b(false|true|Bool|Int|Nat)\\b"}]},"docComments":{"patterns":[{"name":"comment.block.documentation.quint","match":"///.*$"}]},"hashbangLine":{"patterns":[{"name":"comment.line.hashbang.quint","match":"\\A#!.*$"}]},"identifiers":{"patterns":[{"name":"meta.quint","match":"[a-zA-Z_]([a-zA-Z0-9_])*"}]},"keywords":{"patterns":[{"name":"keyword.control.quint","match":"\\b(module|import|from|export|as|if|else|match|not|or|and|implies|iff|all|any|leadsTo|strongFair|weakFair)\\b"}]},"lineComments":{"patterns":[{"name":"comment.line.double-slash.quint","match":"//.*$"}]},"numbers":{"patterns":[{"name":"constant.numeric.quint","match":"-?(0x[0-9a-fA-F]([0-9a-fA-F]|_[0-9a-fA-F])*|0|[1-9]([0-9]|_[0-9])*)"}]},"operators":{"patterns":[{"name":"keyword.operator.quint","match":"(=\u003e|-\u003e|\u003c=|\u003e|\u003c|=|!=|'|\\.|\\*|\\+|-|/|%|\\^)"}]},"punctuation":{"patterns":[{"name":"keyword.operator.spread.quint","match":"\\.\\.\\."},{"name":"punctuation.accessor.quint","match":"::"},{"name":"punctuation.separator.quint","match":"\\|"}]},"storage":{"patterns":[{"name":"storage.modifier.quint","match":"\\b(type|assume|const|var|val|nondet|def|pure|action|temporal|run)\\b"},{"name":"storage.type.quint","match":"\\b(Set|List|int|str|bool)\\b"},{"name":"support.type.quint","match":"\\b(Map|Tup|Rec)\\b"}]},"strings":{"name":"string.quoted.double.quint","begin":"\"","end":"\""}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"RAR Solid Archives Ordering","scopeName":"source.rarlist","patterns":[{"include":"#main"}],"repository":{"comment":{"name":"comment.line.semicolon.rarlist","begin":"^;","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.rarlist"}}},"main":{"patterns":[{"include":"#comment"},{"include":"#variable"},{"include":"source.gitignore#pattern"}]},"variable":{"name":"keyword.control.default-position.rarlist","match":"^(\\$)default(?=\\s*$)","captures":{"1":{"name":"punctuation.definition.keyword.rarlist"}}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"RAScript","scopeName":"source.rascript","patterns":[{"include":"#statements"}],"repository":{"booleans":{"patterns":[{"name":"constant.language.boolean.rascript","match":"\\b(true|false)\\b"}]},"class-definitions":{"patterns":[{"match":"(\\bclass\\b)[\\t ]*(([a-zA-Z_][\\w]*)|(.+))","captures":{"1":{"name":"keyword.class.rascript"},"3":{"name":"entity.name.class.rascript"},"4":{"name":"invalid.illegal.identifier.rascript"}}}]},"comments":{"patterns":[{"name":"comment.block.rascript","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.block.rascript"}}},{"name":"comment.line.double-slash.rascript","begin":"//","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.single.rascript"}}}]},"controls":{"patterns":[{"name":"keyword.control.rascript","match":"\\b(if|else|for|in|return)\\b"}]},"function-definitions":{"patterns":[{"begin":"(\\bfunction\\b)[\\t ]*(([a-zA-Z_][\\w]*)|(.+))\\(","end":"\\)","patterns":[{"name":"invalid.illegal.identifier.rascript","match":"(?:[\\w]+\\s+[\\w]+)"},{"name":"invalid.illegal.identifier.rascript","match":"(?:[^\\s\\,!]*[\\%\\!\\@\\#\\$\\%\\^\\\u0026\\*\\-\\=\\+\\[\\]\\{\\}\\;\\:\\'\"\\.\\\u003c\\\u003e\\/\\?]+[^\\s\\,]*)"},{"name":"variable.parameter.rascript","match":"(?:[a-zA-Z_][\\w]*)"},{"name":"invalid.illegal.identifier.rascript","match":"(?:\\w+)"}],"beginCaptures":{"1":{"name":"keyword.function.rascript"},"3":{"name":"entity.name.function.rascript"},"4":{"name":"invalid.illegal.identifier.rascript"}}}]},"function-names":{"patterns":[{"match":"(([0-9][\\w+]*)|(\\w+))\\(","captures":{"2":{"name":"invalid.illegal.identifier.rascript"},"3":{"name":"entity.name.function.rascript"}}}]},"header":{"patterns":[{"name":"comment.line.double-slash.rascript","match":"^//\\s*(#ID)\\s*=\\s*(\\d+)$","captures":{"1":{"name":"keyword.other.id.rascript"},"2":{"name":"constant.numeric.id.rascript"}}},{"name":"comment.line.double-slash.rascript","match":"^//\\s*(#MinimumVersion)\\s*=\\s*(\\d+(\\.\\d)?)$","captures":{"1":{"name":"keyword.other.version.rascript"},"2":{"name":"constant.numeric.version.rascript"}}}]},"numbers":{"patterns":[{"name":"constant.numeric.decimal.rascript","match":"\\b[0-9]+\\b"},{"name":"constant.numeric.hexadecimal.rascript","match":"(?i)\\$\\b[[:xdigit:]]+\\b|\\b0x[[:xdigit:]]+\\b"}]},"statements":{"patterns":[{"include":"#controls"},{"include":"#booleans"},{"include":"#strings"},{"include":"#numbers"},{"include":"#class-definitions"},{"include":"#function-definitions"},{"include":"#function-names"},{"include":"#header"},{"include":"#comments"},{"include":"#variable-language-this"},{"include":"#variable-assignment"},{"include":"#variable-other"}]},"strings":{"patterns":[{"name":"string.quoted.double.rascript","match":"
|
|
1
|
+
{"name":"RAScript","scopeName":"source.rascript","patterns":[{"include":"#statements"}],"repository":{"booleans":{"patterns":[{"name":"constant.language.boolean.rascript","match":"\\b(true|false)\\b"}]},"class-definitions":{"patterns":[{"match":"(\\bclass\\b)[\\t ]*(([a-zA-Z_][\\w]*)|(.+))","captures":{"1":{"name":"keyword.class.rascript"},"3":{"name":"entity.name.class.rascript"},"4":{"name":"invalid.illegal.identifier.rascript"}}}]},"comments":{"patterns":[{"name":"comment.block.rascript","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.block.rascript"}}},{"name":"comment.line.double-slash.rascript","begin":"//","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.single.rascript"}}}]},"controls":{"patterns":[{"name":"keyword.control.rascript","match":"\\b(if|else|for|in|return)\\b"}]},"function-definitions":{"patterns":[{"begin":"(\\bfunction\\b)[\\t ]*(([a-zA-Z_][\\w]*)|(.+))\\(","end":"\\)","patterns":[{"name":"invalid.illegal.identifier.rascript","match":"(?:[\\w]+\\s+[\\w]+)"},{"name":"invalid.illegal.identifier.rascript","match":"(?:[^\\s\\,!]*[\\%\\!\\@\\#\\$\\%\\^\\\u0026\\*\\-\\=\\+\\[\\]\\{\\}\\;\\:\\'\"\\.\\\u003c\\\u003e\\/\\?]+[^\\s\\,]*)"},{"name":"variable.parameter.rascript","match":"(?:[a-zA-Z_][\\w]*)"},{"name":"invalid.illegal.identifier.rascript","match":"(?:\\w+)"}],"beginCaptures":{"1":{"name":"keyword.function.rascript"},"3":{"name":"entity.name.function.rascript"},"4":{"name":"invalid.illegal.identifier.rascript"}}}]},"function-names":{"patterns":[{"match":"(([0-9][\\w+]*)|(\\w+))\\(","captures":{"2":{"name":"invalid.illegal.identifier.rascript"},"3":{"name":"entity.name.function.rascript"}}}]},"header":{"patterns":[{"name":"comment.line.double-slash.rascript","match":"^//\\s*(#ID)\\s*=\\s*(\\d+)$","captures":{"1":{"name":"keyword.other.id.rascript"},"2":{"name":"constant.numeric.id.rascript"}}},{"name":"comment.line.double-slash.rascript","match":"^//\\s*(#MinimumVersion)\\s*=\\s*(\\d+(\\.\\d)?)$","captures":{"1":{"name":"keyword.other.version.rascript"},"2":{"name":"constant.numeric.version.rascript"}}}]},"numbers":{"patterns":[{"name":"constant.numeric.decimal.rascript","match":"\\b[0-9]+\\b"},{"name":"constant.numeric.hexadecimal.rascript","match":"(?i)\\$\\b[[:xdigit:]]+\\b|\\b0x[[:xdigit:]]+\\b"}]},"statements":{"patterns":[{"include":"#controls"},{"include":"#booleans"},{"include":"#strings"},{"include":"#numbers"},{"include":"#class-definitions"},{"include":"#function-definitions"},{"include":"#function-names"},{"include":"#header"},{"include":"#comments"},{"include":"#variable-language-this"},{"include":"#variable-assignment"},{"include":"#variable-other"}]},"strings":{"patterns":[{"name":"string.quoted.double.rascript","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.rascript","match":"\\\\."},{"match":"({)([0-9]+)(})","captures":{"1":{"name":"punctuation.definition.template-expression.begin.rascript"},"2":{"name":"variable.other.rascript"},"3":{"name":"punctuation.definition.template-expression.end.rascript"}}}]}]},"variable-assignment":{"patterns":[{"match":"([a-zA-Z_][\\w]*)[\\t ]*=","captures":{"1":{"name":"variable.other.assignment.rascript"}}}]},"variable-language-this":{"patterns":[{"name":"variable.language.this.rascript","match":"\\b(this)\\b"}]},"variable-other":{"patterns":[{"match":"([a-zA-Z_][\\w]*)","captures":{"1":{"name":"variable.other.rascript"}}}]}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Record Jar","scopeName":"source.record-jar","patterns":[{"include":"#main"}],"repository":{"escape":{"patterns":[{"begin":"\\\\$\\s*","end":"(?\u003c=[^\\s#%\"'])(?!\\G)","beginCaptures":{"0":{"name":"constant.character.escape.newline.record-jar"}}},{"name":"constant.character.escape.backslash.record-jar","match":"\\\\."}]},"field":{"name":"meta.field.record-jar","begin":"(?:\\G|^)(\\s*)((?!%%|#)\\S.*?)\\s*(:)\\s*","end":"(?!\\G)^(?!\\1\\s)(?=\\S)","patterns":[{"name":"constant.other.date.record-jar","match":"\\G([0-9]{4})(-)(0[0-9]|1[0-2])(-)([0-2][0-9]|3[01])(?=\\s|$)","captures":{"1":{"name":"constant.numeric.integer.year.record-jar"},"2":{"patterns":[{"include":"etc#dash"}]},"3":{"name":"constant.numeric.integer.month.record-jar"},"4":{"patterns":[{"include":"etc#dash"}]},"5":{"name":"constant.numeric.integer.day.record-jar"}}},{"name":"meta.list.record-jar","begin":"\\G\\s*(?=\"|')","end":"(?=^)(?! |\\t)","patterns":[{"include":"#string"},{"include":"etc#comma"},{"include":"#escape"}]},{"contentName":"string.unquoted.record-jar","begin":"\\G\\s*(?=[^\"'#%\\s])","end":"(?=^)(?! |\\t)","patterns":[{"include":"#escape"}]},{"include":"etc#commentHash"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.field.record-jar"},"2":{"name":"variable.assignment.field-name.record-jar"},"3":{"patterns":[{"include":"etc#kolon"}]}}},"main":{"patterns":[{"include":"#record"},{"include":"etc#commentHash"}]},"record":{"name":"meta.record.record-jar","begin":"
|
|
1
|
+
{"name":"Record Jar","scopeName":"source.record-jar","patterns":[{"name":"meta.database.record-jar","begin":"\\A","end":"(?=A)B","patterns":[{"include":"#main"}]},{"include":"#separator"},{"include":"#field"},{"include":"etc#commentHash"}],"repository":{"escape":{"patterns":[{"begin":"\\\\$\\s*","end":"(?\u003c=[^\\s#%\"'])(?!\\G)","beginCaptures":{"0":{"name":"constant.character.escape.newline.record-jar"}}},{"name":"constant.character.escape.backslash.record-jar","match":"\\\\."}]},"field":{"name":"meta.field.record-jar","begin":"(?:\\G|^)(\\s*)((?!%%|#)\\S.*?)\\s*(:)\\s*","end":"(?!\\G)^(?!\\1\\s)(?=\\S)","patterns":[{"name":"constant.other.date.record-jar","match":"\\G([0-9]{4})(-)(0[0-9]|1[0-2])(-)([0-2][0-9]|3[01])(?=\\s|$)","captures":{"1":{"name":"constant.numeric.integer.year.record-jar"},"2":{"patterns":[{"include":"etc#dash"}]},"3":{"name":"constant.numeric.integer.month.record-jar"},"4":{"patterns":[{"include":"etc#dash"}]},"5":{"name":"constant.numeric.integer.day.record-jar"}}},{"name":"meta.list.record-jar","begin":"\\G\\s*(?=\"|')","end":"(?=^)(?! |\\t)","patterns":[{"include":"#string"},{"include":"etc#comma"},{"include":"#escape"}]},{"contentName":"string.unquoted.record-jar","begin":"\\G\\s*(?=[^\"'#%\\s])","end":"(?=^)(?! |\\t)","patterns":[{"include":"#escape"}]},{"include":"etc#commentHash"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.field.record-jar"},"2":{"name":"variable.assignment.field-name.record-jar"},"3":{"patterns":[{"include":"etc#kolon"}]}}},"main":{"patterns":[{"include":"#separator"},{"include":"#record"},{"include":"etc#commentHash"}]},"record":{"name":"meta.record.record-jar","begin":"^(?!%%)(?=\\s*\\S)","end":"^(?=%%)(?!\\G)","patterns":[{"include":"#field"},{"include":"etc#commentHash"}]},"separator":{"match":"(?:^|\\G)(%%+)(?:\\s*(\\S.*?))?[ \\t]*$","captures":{"1":{"name":"meta.separator.record-jar"},"2":{"name":"comment.line.ignored.record-jar"}}},"string":{"patterns":[{"name":"string.quoted.double.record-jar","begin":"\"","end":"\"|(?=\\s*(?\u003c!\\\\)$)","patterns":[{"include":"#escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.record-jar"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.record-jar"}}},{"name":"string.quoted.single.record-jar","begin":"'","end":"'(?=\\s*(?\u003c!\\\\)$)","patterns":[{"include":"#escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.record-jar"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.record-jar"}}}]}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"Redscript","scopeName":"source.redscript","patterns":[{"include":"#root"}],"repository":{"attributes":{"patterns":[{"name":"meta.attribute.redscript","begin":"((@)(?:(?:wrap|add|replace)Method|replaceGlobal|addField|runtimeProperty))(\\()","end":"(?!\\G)\\)","patterns":[{"name":"entity.name.class.redscript","match":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))"},{"include":"#string"}],"beginCaptures":{"1":{"name":"storage.modifier.attribute.redscript"},"2":{"name":"punctuation.definition.attribute.redscript"},"3":{"name":"punctuation.definition.arguments.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}}]},"builtin-functions":{"patterns":[{"name":"support.function.redscript","match":"(?\u003c=\\.)(?:DetectScriptableCycles|GetClassName|IsA|IsExactlyA|ToString)(?=\\s*[({])\\b"}]},"builtin-global-functions":{"patterns":[{"name":"support.function.redscript","match":"\\b(Equals|NotEquals|IsDefined|To(String|Variant)|EnumInt|IntEnum|Array(Size|Resize|Push|Pop|Clear|Find(First|Last)|Contains|Count|Insert|Remove|Grow|Erase|Last))(?=\\s*\\()"}]},"builtin-properties":{"patterns":[{"name":"support.variable.redscript","match":"(?\u003c=\\.)(?:value)\\b"}]},"builtin-types":{"patterns":[{"include":"#builtin-class-type"},{"include":"#builtin-reference-type"},{"name":"support.type.any.redscript","match":"\\bAny\\b"}],"repository":{"builtin-class-type":{"name":"support.type.redscript","match":"\\b(IScriptable|Vector(2|3|4)|Void|Bool|String|CName|ResRef|TweakDBID|Int(32|64)|Uint32|Float|Double)\\b"},"builtin-reference-type":{"patterns":[{"name":"entity.name.class.redscript","begin":"\\b(w?ref|array)(\u003c)\\s*","end":"\u003e","patterns":[{"include":"#builtin-types"}],"beginCaptures":{"1":{"name":"keyword.other.reference-specifier.redscript"},"2":{"name":"punctuation.definition.arguments.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}}]}}},"code-block":{"begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.scope.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.section.scope.end.redscript"}}},"comments":{"patterns":[{"name":"comment.line.number-sign.redscript","match":"\\A^(#!).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.redscript"}}},{"name":"comment.block.documentation.redscript","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.redscript"}}},{"name":"comment.block.documentation.playground.redscript","begin":"/\\*:","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.redscript"}}},{"name":"comment.block.redscript","begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.redscript"}}},{"name":"invalid.illegal.unexpected-end-of-block-comment.redscript","match":"\\*/"},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.triple-slash.documentation.redscript","begin":"///","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.redscript"}}},{"name":"comment.line.double-slash.documentation.redscript","begin":"//:","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.redscript"}}},{"name":"comment.line.double-slash.redscript","begin":"//","end":"^","beginCaptures":{"0":{"name":"punctuation.definition.comment.redscript"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.redscript"}}}],"repository":{"nested":{"begin":"/\\*","end":"\\*/","patterns":[{"include":"#nested"}]}}},"compiler-control":{"patterns":[{"contentName":"comment.block.preprocessor.redscript","begin":"^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)","end":"(?=^\\s*(#(elseif|else|endif)\\b))","beginCaptures":{"0":{"name":"meta.preprocessor.conditional.redscript"},"1":{"name":"punctuation.definition.preprocessor.redscript"},"2":{"name":"keyword.control.preprocessor.conditional.redscript"},"3":{"name":"constant.language.boolean.redscript"}}},{"name":"meta.preprocessor.conditional.redscript","begin":"^\\s*(#)(if|elseif)\\s+","end":"(?=\\s*(?://|/\\*))|$","patterns":[{"name":"keyword.operator.logical.redscript","match":"(\u0026\u0026|\\|\\|)"},{"name":"constant.language.boolean.redscript","match":"\\b(true|false)\\b"},{"match":"\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))","captures":{"1":{"name":"keyword.other.condition.redscript"},"2":{"name":"punctuation.definition.parameters.begin.redscript"},"3":{"name":"support.constant.platform.architecture.redscript"},"4":{"name":"punctuation.definition.parameters.end.redscript"}}},{"match":"\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))","captures":{"1":{"name":"keyword.other.condition.redscript"},"2":{"name":"punctuation.definition.parameters.begin.redscript"},"3":{"name":"support.constant.platform.os.redscript"},"4":{"name":"punctuation.definition.parameters.end.redscript"}}},{"match":"\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))","captures":{"1":{"name":"keyword.other.condition.redscript"},"2":{"name":"punctuation.definition.parameters.begin.redscript"},"3":{"name":"entity.name.type.module.redscript"},"4":{"name":"punctuation.definition.parameters.end.redscript"}}},{"begin":"\\b(targetEnvironment)\\s*(\\()","end":"(\\))|$","patterns":[{"name":"support.constant.platform.environment.redscript","match":"\\b(simulator|UIKitForMac)\\b"}],"beginCaptures":{"1":{"name":"keyword.other.condition.redscript"},"2":{"name":"punctuation.definition.parameters.begin.redscript"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.redscript"}}},{"begin":"\\b(redscript|compiler)\\s*(\\()","end":"(\\))|$","patterns":[{"name":"keyword.operator.comparison.redscript","match":"\u003e=|\u003c"},{"name":"constant.numeric.redscript","match":"\\b[0-9]+(?:\\.[0-9]+)*\\b"}],"beginCaptures":{"1":{"name":"keyword.other.condition.redscript"},"2":{"name":"punctuation.definition.parameters.begin.redscript"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.redscript"}}}],"captures":{"1":{"name":"punctuation.definition.preprocessor.redscript"},"2":{"name":"keyword.control.preprocessor.conditional.redscript"}}},{"name":"meta.preprocessor.conditional.redscript","match":"^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)","captures":{"1":{"name":"punctuation.definition.preprocessor.redscript"},"2":{"name":"keyword.control.preprocessor.conditional.redscript"},"3":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.redscript","match":"\\S+"}]}}},{"name":"meta.preprocessor.sourcelocation.redscript","match":"^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)","captures":{"1":{"name":"punctuation.definition.preprocessor.redscript"},"2":{"name":"keyword.control.preprocessor.sourcelocation.redscript"},"4":{"name":"punctuation.definition.parameters.begin.redscript"},"5":{"patterns":[{"begin":"(file)\\s*(:)\\s*(?=\")","end":"(?!\\G)","patterns":[{"include":"#literals"}],"beginCaptures":{"1":{"name":"support.variable.parameter.redscript"},"2":{"name":"punctuation.separator.key-value.redscript"}}},{"match":"(line)\\s*(:)\\s*([0-9]+)","captures":{"1":{"name":"support.variable.parameter.redscript"},"2":{"name":"punctuation.separator.key-value.redscript"},"3":{"name":"constant.numeric.integer.redscript"}}},{"name":"punctuation.separator.parameters.redscript","match":","},{"name":"invalid.illegal.character-not-allowed-here.redscript","match":"\\S+"}]},"6":{"name":"punctuation.definition.parameters.begin.redscript"},"7":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.redscript","match":"\\S+"}]}}}]},"constructor":{"patterns":[{"name":"meta.constructor.redscript","begin":"\\bnew\\s","end":"(?!\\G)(\\))","patterns":[{"name":"meta.constructor.class.redscript","begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))(\\()","end":"(?!\\G)|","beginCaptures":{"1":{"name":"entity.name.class.redscript"},"4":{"name":"punctuation.definition.arguments.begin.redscript"}}}],"beginCaptures":{"0":{"name":"keyword.other.declarataion-specifier.redscript"},"1":{"name":"entity.name.class.redscript"}},"endCaptures":{"1":{"name":"punctuation.definition.arguments.end.redscript"}}}]},"declarations":{"patterns":[{"include":"#function"},{"include":"#function-initializer"},{"include":"#typed-variable-declaration"},{"include":"#import"},{"include":"#operator"},{"include":"#precedencegroup"},{"include":"#protocol"},{"include":"#type"},{"include":"#extension"},{"include":"#typealias"}],"repository":{"available-types":{"patterns":[{"include":"#comments"},{"include":"#builtin-types"},{"include":"#attributes"},{"name":"entity.name.class.redscript","match":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))"},{"name":"storage.modifier.redscript","match":"\\binout\\b"},{"match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","captures":{"1":{"name":"keyword.operator.type.function.redscript"}}},{"match":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(\u0026)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","captures":{"1":{"name":"keyword.operator.type.composition.redscript"}}},{"name":"keyword.operator.type.optional.redscript","match":"[?!]"},{"name":"keyword.operator.function.variadic-parameter.redscript","match":"\\.\\.\\."},{"include":"#tuple-type"},{"include":"#collection-type"},{"include":"#generic-argument-clause"}],"repository":{"collection-type":{"begin":"\\[","end":"\\]|(?=[\u003e){}])","patterns":[{"include":"#available-types"},{"begin":":","end":"(?=\\]|[\u003e){}])","patterns":[{"name":"invalid.illegal.extra-colon-in-dictionary-type.redscript","match":":"},{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.separator.key-value.redscript"}}}],"beginCaptures":{"0":{"name":"punctuation.section.collection-type.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.section.collection-type.end.redscript"}}},"tuple-type":{"begin":"\\(","end":"\\)|(?=[\u003e\\]{}])","patterns":[{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.section.tuple-type.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.section.tuple-type.end.redscript"}}}}},"extension":{"name":"meta.definition.type.$1.redscript","begin":"\\b(extension)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.redscript","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.redscript"},"2":{"name":"entity.name.type.redscript","patterns":[{"include":"#available-types"}]},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},"function":{"name":"meta.definition.function.redscript","begin":"(?x)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t\t\t\t\t | (?:\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t(?=\\(|\u003c)\n\t\t\t\t\t","end":"(?\u003c=\\})|$(?# functions in protocol declarations or generated interfaces have no body)","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#generic-where-clause"},{"name":"meta.definition.function.body.redscript","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.redscript"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.function.redscript"},"2":{"name":"entity.name.function.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},"function-initializer":{"name":"meta.definition.function.initializer.redscript","begin":"(?\u003c!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|\u003c)","end":"(?\u003c=\\})|$","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#generic-where-clause"},{"name":"meta.definition.function.body.redscript","begin":"(\\{)","end":"(\\})","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"punctuation.section.function.begin.redscript"}},"endCaptures":{"1":{"name":"punctuation.section.function.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.function.redscript","patterns":[{"name":"invalid.illegal.character-not-allowed-here.redscript","match":"(?\u003c=[?!])[?!]+"}]}}},"function-result":{"name":"meta.function-result.redscript","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(-\u003e)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])\\s*","end":"(?!\\G)(?=\\{|;)|$","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.function-result.redscript"}}},"generic-argument-clause":{"name":"meta.generic-argument-clause.redscript","begin":"\u003c","end":"\u003e|(?=[)\\]{}])","patterns":[{"include":"#available-types"}],"beginCaptures":{"0":{"name":"punctuation.separator.generic-argument-clause.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.separator.generic-argument-clause.end.redscript"}}},"generic-parameter-clause":{"name":"meta.generic-parameter-clause.redscript","begin":"\u003c","end":"\u003e|(?=[^\\w\\d:\u003c\u003e\\s,=\u0026`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)","patterns":[{"include":"#comments"},{"include":"#generic-where-clause"},{"match":"\\b((?!\\d)\\w[\\w\\d]*)\\b","captures":{"1":{"name":"variable.language.generic-parameter.redscript"}}},{"name":"punctuation.separator.generic-parameters.redscript","match":","},{"name":"meta.generic-parameter-constraint.redscript","begin":"(:)\\s*","end":"(?=[,\u003e]|(?!\\G)\\bwhere\\b)","patterns":[{"name":"entity.other.inherited-class.redscript","begin":"\\G","end":"(?=[,\u003e]|(?!\\G)\\bwhere\\b)","patterns":[{"include":"#type-identifier"}]}],"beginCaptures":{"1":{"name":"punctuation.separator.generic-parameter-constraint.redscript"}}}],"beginCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.end.redscript"}}},"generic-where-clause":{"name":"meta.generic-where-clause.redscript","begin":"\\b(where)\\b\\s*","end":"(?!\\G)$|(?=[\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#comments"},{"include":"#requirement-list"}],"beginCaptures":{"1":{"name":"keyword.other.generic-constraint-introducer.redscript"}},"repository":{"requirement-list":{"begin":"\\G|,\\s*","end":"(?=[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#comments"},{"include":"#constraint"},{"include":"#available-types"},{"name":"meta.generic-where-clause.same-type-requirement.redscript","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(==)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.same-type.redscript"}}},{"name":"meta.generic-where-clause.conformance-requirement.redscript","begin":"(?\u003c![/=\\-+!*%\u003c\u003e\u0026|\\^~.])(:)(?![/=\\-+!*%\u003c\u003e\u0026|\\^~.])","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"contentName":"entity.other.inherited-class.redscript","begin":"\\G\\s*","end":"(?=\\s*[,\u003e{};\\n]|//|/\\*)","patterns":[{"include":"#available-types"}]}],"beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.conforms-to.redscript"}}}]}}},"import":{"name":"meta.import.redscript","begin":"(?\u003c!\\.)\\b(import)\\s+","end":"(;)|$\\n?|(?=//|/\\*)","patterns":[{"begin":"\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?","end":"(?=;|$|//|/\\*)","patterns":[{"name":"entity.name.type.redscript","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t\t\t\t\t\t\t\t","captures":{"1":{"name":"punctuation.definition.identifier.redscript"},"2":{"name":"punctuation.definition.identifier.redscript"}}},{"name":"entity.name.type.redscript","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t\\$[0-9]+\n\t\t\t\t\t\t\t\t\t"},{"name":"entity.name.type.redscript","match":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?\u003c=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t(?=\\.|;|$|//|/\\*|\\s)\n\t\t\t\t\t\t\t\t\t","captures":{"1":{"patterns":[{"name":"invalid.illegal.dot-not-allowed-here.redscript","match":"\\."}]}}},{"name":"punctuation.separator.import.redscript","match":"\\."},{"name":"invalid.illegal.character-not-allowed-here.redscript","begin":"(?!\\s*(;|$|//|/\\*))","end":"(?=\\s*(;|$|//|/\\*))"}],"beginCaptures":{"1":{"name":"storage.modifier.redscript"}}}],"beginCaptures":{"1":{"name":"keyword.control.import.redscript"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.redscript"}}},"inheritance-clause":{"name":"meta.inheritance-clause.redscript","begin":"(extends)(?=\\s*\\{)|(extends)\\s*","end":"(?!\\G)$|(?=[={}])","patterns":[{"name":"entity.name.class.redscript","match":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))"}],"beginCaptures":{"1":{"name":"invalid.illegal.empty-inheritance-clause.redscript"},"2":{"name":"punctuation.separator.inheritance-clause.redscript"}},"repository":{"inherited-type":{"name":"entity.other.inherited-class.redscript","begin":"(?=[`\\p{L}_])","end":"(?!\\G)","patterns":[{"include":"#type-identifier"}]},"more-types":{"name":"meta.inheritance-list.more-types","begin":",\\s*","end":"(?!\\G)(?!//|/\\*)|(?=[,={}])","patterns":[{"include":"#comments"},{"include":"#inherited-type"},{"include":"#more-types"}]}}},"operator":{"name":"meta.definition.operator.redscript","begin":"(?x)\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\\b(prefix|infix|postfix)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(operator)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t\t\t\t\t\t\t | \\.\t\t\t\t\t\t\t\t\t# Invalid dot\n\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)*+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )++ )\t\t\t# Dot operators\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t","end":"(;)|$\\n?|(?=//|/\\*)","patterns":[{"include":"#redscript2"},{"include":"#redscript3"},{"name":"invalid.illegal.character-not-allowed-here.redscript","match":"((?!$|;|//|/\\*)\\S)+"}],"beginCaptures":{"1":{"name":"storage.modifier.redscript"},"2":{"name":"storage.type.function.operator.redscript"},"3":{"name":"entity.name.function.operator.redscript"},"4":{"patterns":[{"name":"invalid.illegal.dot-not-allowed-here.redscript","match":"\\."}]}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.redscript"}},"repository":{"redscript2":{"begin":"\\G(\\{)","end":"(\\})","patterns":[{"include":"#comments"},{"match":"\\b(associativity)\\s+(left|right)\\b","captures":{"1":{"name":"storage.modifier.redscript"},"2":{"name":"keyword.other.operator.associativity.redscript"}}},{"match":"\\b(precedence)\\s+([0-9]+)\\b","captures":{"1":{"name":"storage.modifier.redscript"},"2":{"name":"constant.numeric.integer.redscript"}}},{"match":"\\b(assignment)\\b","captures":{"1":{"name":"storage.modifier.redscript"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.operator.begin.redscript"}},"endCaptures":{"1":{"name":"punctuation.definition.operator.end.redscript"}}},"redscript3":{"match":"\\G(:)\\s*((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"2":{"name":"entity.other.inherited-class.redscript","patterns":[{"include":"#types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}}}},"parameter-clause":{"name":"meta.parameter-clause.redscript","begin":"(\\()","end":"(\\))(?:\\s*(async)\\b)?","patterns":[{"include":"#parameter-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.redscript"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.redscript"},"2":{"name":"keyword.control.async.redscript"}}},"parameter-list":{"patterns":[{"match":"((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq1\u003e))\\s+((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq2\u003e))(?=\\s*:)","captures":{"1":{"name":"keyword.redscript"},"2":{"name":"punctuation.definition.identifier.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"variable.parameter.function.redscript"},"5":{"name":"punctuation.definition.identifier.redscript"},"6":{"name":"punctuation.definition.identifier.redscript"}}},{"match":"(((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)))(?=\\s*:)","captures":{"1":{"name":"variable.parameter.function.redscript"},"2":{},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},{"begin":":\\s*(?!\\s)","end":"(?=[,)])","patterns":[{"include":"#available-types"},{"name":"invalid.illegal.extra-colon-in-parameter-list.redscript","match":":"},{"begin":"=","end":"(?=[,)])","patterns":[{"include":"#expressions"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.redscript"}}}]}]},"precedencegroup":{"name":"meta.definition.precedencegroup.redscript","begin":"\\b(precedencegroup)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(?=\\{)","end":"(?!\\G)","patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"match":"\\b(higherThan|lowerThan)\\s*:\\s*((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"1":{"name":"storage.modifier.redscript"},"2":{"name":"entity.other.inherited-class.redscript","patterns":[{"include":"#types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},{"match":"\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?","captures":{"1":{"name":"storage.modifier.redscript"},"2":{"name":"keyword.other.operator.associativity.redscript"}}},{"match":"\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?","captures":{"1":{"name":"storage.modifier.redscript"},"2":{"name":"constant.language.boolean.redscript"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.precedencegroup.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.precedencegroup.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.precedencegroup.redscript"},"2":{"name":"entity.name.type.precedencegroup.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},"protocol":{"name":"meta.definition.type.protocol.redscript","begin":"\\b(protocol)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#inheritance-clause"},{"include":"#generic-where-clause"},{"name":"meta.definition.type.body.redscript","begin":"\\{","end":"\\}","patterns":[{"include":"#protocol-method"},{"include":"#protocol-initializer"},{"include":"#associated-type"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.redscript"},"2":{"name":"entity.name.type.$1.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}},"repository":{"associated-type":{"name":"meta.definition.associatedtype.redscript","begin":"\\b(associatedtype)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\\G)$|(?=[;}]|$)","patterns":[{"include":"#inheritance-clause"},{"include":"#generic-where-clause"},{"include":"#typealias-assignment"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.redscript"},"2":{"name":"variable.language.associatedtype.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},"protocol-initializer":{"name":"meta.definition.function.initializer.redscript","begin":"(?\u003c!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|\u003c)","end":"$|(?=;|//|/\\*|\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#generic-where-clause"},{"name":"invalid.illegal.function-body-not-allowed-in-protocol.redscript","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.function.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.function.redscript","patterns":[{"name":"invalid.illegal.character-not-allowed-here.redscript","match":"(?\u003c=[?!])[?!]+"}]}}},"protocol-method":{"name":"meta.definition.function.redscript","begin":"(?x)\n\t\t\t\t\t\t\t\t\\b\n\t\t\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\n\t\t \t\t\t\t\t\t | (?:\n\t\t \t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t \t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t \t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t\t\\g\u003coph\u003e\n\t\t \t\t\t\t\t\t\t\t\t | (?\u003copc\u003e\t\t\t\t\t\t\t\t# operator-character\n\t\t \t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t \t\t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t)*\n\t\t \t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t | ( \\. ( \\g\u003coph\u003e | \\g\u003copc\u003e | \\. )+ )\t\t\t# Dot operators\n\t\t \t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t(?=\\(|\u003c)\n\t\t\t\t\t\t\t","end":"$|(?=;|//|/\\*|\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#parameter-clause"},{"include":"#function-result"},{"include":"#generic-where-clause"},{"name":"invalid.illegal.function-body-not-allowed-in-protocol.redscript","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.section.function.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.function.redscript"},"2":{"name":"entity.name.function.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}}}},"type":{"patterns":[{"name":"meta.definition.type.$1.redscript","begin":"\\b(class(?!\\s+(?:func|let)\\b)|struct|actor)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.redscript","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.redscript"},"2":{"name":"entity.name.$1.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},{"include":"#type-enum"}]},"type-enum":{"name":"meta.definition.type.$1.redscript","begin":"\\b(enum)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#generic-parameter-clause"},{"include":"#generic-where-clause"},{"include":"#inheritance-clause"},{"name":"meta.definition.type.body.redscript","begin":"\\{","end":"\\}","patterns":[{"include":"#enum-case-clause"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.redscript"}}}],"beginCaptures":{"1":{"name":"storage.type.$1.redscript"},"2":{"name":"entity.name.type.$1.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}},"repository":{"associated-values":{"begin":"\\G\\(","end":"\\)","patterns":[{"include":"#comments"},{"begin":"(?x)\n\t\t\t\t\t\t\t\t\t\t(?:(_)|((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq1\u003e))\n\t\t\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t\t\t(((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq2\u003e))\n\t\t\t\t\t\t\t\t\t\t\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"entity.name.function.redscript"},"2":{"name":"invalid.illegal.distinct-labels-not-allowed.redscript"},"5":{"name":"variable.parameter.function.redscript"},"7":{"name":"punctuation.separator.argument-label.redscript"}}},{"begin":"(((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k\u003cq\u003e))\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"entity.name.function.redscript"},"2":{"name":"variable.parameter.function.redscript"},"4":{"name":"punctuation.separator.argument-label.redscript"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#available-types"},{"name":"invalid.illegal.extra-colon-in-parameter-list.redscript","match":":"}]}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.redscript"}}},"enum-case":{"begin":"(?x)((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?\u003c=\\))|(?![=(])","patterns":[{"include":"#comments"},{"include":"#associated-values"},{"include":"#raw-value-assignment"}],"beginCaptures":{"1":{"name":"constant.other.redscript"}}},"enum-case-clause":{"begin":"\\b(case)\\b\\s*","end":"(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])","patterns":[{"include":"#comments"},{"include":"#enum-case"},{"include":"#more-cases"}],"beginCaptures":{"1":{"name":"storage.type.enum.case.redscript"}}},"more-cases":{"name":"meta.enum-case.more-cases","begin":",\\s*","end":"(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])","patterns":[{"include":"#comments"},{"include":"#enum-case"},{"include":"#more-cases"}]},"raw-value-assignment":{"begin":"(=)\\s*","end":"(?!\\G)","patterns":[{"include":"#comments"},{"include":"#literals"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.redscript"}}}}},"type-identifier":{"begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\u003c)","patterns":[{"begin":"(?=\u003c)","end":"(?!\\G)","patterns":[{"include":"#generic-argument-clause"}]}],"beginCaptures":{"1":{"name":"entity.name.type.redscript","patterns":[{"include":"#builtin-types"}]},"2":{"name":"punctuation.definition.identifier.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"}}},"typealias":{"name":"meta.definition.typealias.redscript","begin":"\\b(typealias)\\s+((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*","end":"(?!\\G)$|(?=;|//|/\\*|$)","patterns":[{"begin":"\\G(?=\u003c)","end":"(?!\\G)","patterns":[{"include":"#generic-parameter-clause"}]},{"include":"#typealias-assignment"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.redscript"},"2":{"name":"entity.name.type.typealias.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.identifier.redscript"}}},"typealias-assignment":{"begin":"(=)\\s*","end":"(?!\\G)$|(?=;|//|/\\*|$)","patterns":[{"include":"#available-types"},{"include":"#constructor"}],"beginCaptures":{"1":{"name":"keyword.operator.assignment.redscript"}}},"typed-variable-declaration":{"begin":"(?x)\n\t\t\t\t\t\t\\b(let)\\b\\s+\n\t\t\t\t\t\t(?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e)\\s*\n\t\t\t\t\t\t:\n\t\t\t\t\t","end":"(?=$|[={])","patterns":[{"include":"#available-types"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.redscript"}}},"types-precedencegroup":{"patterns":[{"name":"support.type.redscript","match":"\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b"}]}}},"expressions":{"patterns":[{"include":"#comments"},{"include":"#code-block"},{"include":"#attributes"},{"include":"#closure-parameter"},{"include":"#literals"},{"include":"#operators"},{"include":"#builtin-types"},{"include":"#builtin-functions"},{"include":"#builtin-global-functions"},{"include":"#global-cast-functions"},{"include":"#builtin-properties"},{"include":"#compound-name"},{"include":"#keywords"},{"include":"#constructor"},{"include":"#function-call-expression"},{"include":"#subscript-expression"},{"include":"#parenthesized-expression"},{"include":"#member-reference"},{"include":"#availability-condition"},{"name":"support.variable.discard-value.redscript","match":"\\b_\\b"}],"repository":{"availability-condition":{"begin":"\\B(#(?:un)?available)(\\()","end":"\\)","patterns":[{"match":"\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))","captures":{"1":{"name":"keyword.other.platform.os.redscript"},"2":{"name":"constant.numeric.redscript"}}},{"match":"(\\*)\\s*(.*?)(?=[,)])","captures":{"1":{"name":"keyword.other.platform.all.redscript"},"2":{"name":"invalid.illegal.character-not-allowed-here.redscript"}}},{"name":"invalid.illegal.character-not-allowed-here.redscript","match":"[^\\s,)]+"}],"beginCaptures":{"1":{"name":"support.function.availability-condition.redscript"},"2":{"name":"punctuation.definition.arguments.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}},"closure-parameter":{"name":"variable.language.closure-parameter.redscript","match":"\\$[0-9]+"},"compound-name":{"match":"(?x)\n\t\t\t\t\t\t((?\u003cq1\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq1\u003e)) \t\t# function name\n\t\t\t\t\t\t\\(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t((?\u003cq2\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq2\u003e)) \t# argument label\n\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t\t\t\t\t# colon\n\t\t\t\t\t\t\t\t)+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\\)\n\t\t\t\t\t","captures":{"1":{"name":"entity.name.function.compound-name.redscript"},"2":{"name":"punctuation.definition.entity.redscript"},"3":{"name":"punctuation.definition.entity.redscript"},"4":{"patterns":[{"name":"entity.name.function.compound-name.redscript","match":"(?\u003cq\u003e`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e):","captures":{"1":{"name":"punctuation.definition.entity.redscript"},"2":{"name":"punctuation.definition.entity.redscript"}}}]}}},"expression-element-list":{"patterns":[{"include":"#comments"},{"begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(:)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"entity.name.function.redscript"},"2":{"name":"punctuation.definition.identifier.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.separator.argument-label.redscript"}}},{"begin":"(?![,)\\]])(?=\\S)","end":"(?=[,)\\]])","patterns":[{"include":"#expressions"}]}]},"function-call-expression":{"patterns":[{"name":"meta.function-call.redscript","begin":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))\\s*(\\()","end":"\\)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"entity.name.function.redscript"},"2":{"name":"punctuation.definition.identifier.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"},"4":{"name":"punctuation.definition.arguments.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}},{"name":"meta.function-call.redscript","begin":"(?\u003c=[`\\])}\u003e\\p{L}_\\p{N}\\p{M}])\\s*(\\()","end":"\\)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}}]},"member-reference":{"patterns":[{"match":"(?\u003c=\\.)((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))","captures":{"1":{"name":"variable.other.redscript"},"2":{"name":"punctuation.definition.identifier.redscript"},"3":{"name":"punctuation.definition.identifier.redscript"}}}]},"parenthesized-expression":{"begin":"\\(","end":"(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"0":{"name":"punctuation.section.tuple.begin.redscript"}},"endCaptures":{"1":{"name":"punctuation.section.tuple.end.redscript"},"2":{"patterns":[{"name":"invalid.illegal.rethrows-only-allowed-on-function-declarations.redscript","match":"\\brethrows\\b"}]}}},"subscript-expression":{"name":"meta.subscript-expression.redscript","begin":"(?\u003c=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)","end":"\\]","patterns":[{"include":"#expression-element-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}}}},"global-cast-functions":{"patterns":[{"name":"support.function.redscript","begin":"\\bCast(\\\u003c)","end":"(?!\\G)\\\u003e","patterns":[{"name":"entity.name.class.redscript","match":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))"}],"beginCaptures":{"0":{"name":"support.function.redscript"},"1":{"name":"punctuation.definition.arguments.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}}]},"keywords":{"patterns":[{"name":"keyword.control.branch.redscript","match":"(?\u003c!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b"},{"name":"keyword.control.transfer.redscript","match":"(?\u003c!\\.)\\b(?:continue|break|fallthrough|return)\\b"},{"name":"keyword.control.loop.redscript","match":"(?\u003c!\\.)\\b(?:while|for|in)\\b"},{"match":"(?\u003c!\\.)\\b(repeat)\\b(\\s*)","captures":{"1":{"name":"keyword.control.loop.redscript"},"2":{"name":"punctuation.whitespace.trailing.repeat.redscript"}}},{"name":"keyword.control.defer.redscript","match":"(?\u003c!\\.)\\bdefer\\b"},{"match":"(?\u003c!\\.)\\b(?:(await\\s+try)|(await)\\b)","captures":{"1":{"name":"invalid.illegal.try-must-precede-await.redscript"},"2":{"name":"keyword.control.await.redscript"}}},{"name":"keyword.control.exception.redscript","match":"(?\u003c!\\.)\\b(?:catch|throws?|rethrows|try)\\b|\\btry[?!]\\B"},{"match":"(?\u003c!\\.)\\b(do)\\b(\\s*)","captures":{"1":{"name":"keyword.control.exception.redscript"},"2":{"name":"punctuation.whitespace.trailing.do.redscript"}}},{"name":"keyword.other.declaration-specifier.redscript","match":"(?\u003c!\\.)\\b(?:let)\\b"},{"name":"storage.type.$1.redscript","match":"(?\u003c!\\.)\\b(class|enum|struct|module)\\b"},{"name":"storage.modifier.redscript","match":"(?\u003c!\\.)\\b(?:static|cb|final|abstract|native|const|persistent|browsable|replicated|inline|edit)\\b"},{"name":"storage.type.function.redscript","match":"\\binit[?!]|\\binit\\b|(?\u003c!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b"},{"name":"keyword.other.declaration-specifier.accessibility.redscript","match":"(?\u003c!\\.)\\b(?:fileprivate|private|internal|public|protected|open)\\b"},{"name":"keyword.other.capture-specifier.redscript","match":"(?\u003c!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?\u003c!\\.)\\b(?:weak|unowned)\\b"},{"match":"(?\u003c=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b","captures":{"1":{"name":"keyword.operator.type.redscript"},"2":{"name":"keyword.operator.type.metatype.redscript"}}},{"name":"variable.language.redscript","match":"(?\u003c!\\.)\\b(?:super|self|this|wrappedMethod)\\b"},{"name":"support.variable.redscript","match":"\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b"},{"name":"keyword.control.import.redscript","match":"(?\u003c!\\.)\\bimport\\b"}]},"literals":{"patterns":[{"include":"#boolean"},{"include":"#numeric"},{"include":"#string"},{"name":"constant.language.nil.redscript","match":"\\bnull\\b"},{"name":"support.function.key-path.redscript","match":"\\B#keyPath\\b"},{"begin":"\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?","end":"\\)","patterns":[{"include":"#expressions"}],"beginCaptures":{"1":{"name":"support.function.selector-reference.redscript"},"2":{"name":"punctuation.definition.arguments.begin.redscript"},"3":{"name":"support.variable.parameter.redscript"},"4":{"name":"punctuation.separator.argument-label.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.redscript"}}}],"repository":{"boolean":{"name":"constant.language.boolean.redscript","match":"\\b(true|false)\\b"},"numeric":{"patterns":[{"name":"constant.numeric.float.decimal.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])"},{"name":"constant.numeric.float.hexadecimal.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.float.invalid-exponent.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.float.missing-exponent.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*"},{"name":"invalid.illegal.numeric.float.missing-leading-zero.redscript","match":"(?\u003c=\\s|^)\\-?\\.[0-9][\\w.]*"},{"name":"invalid.illegal.numeric.leading-underscore.redscript","match":"(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+"},{"match":"(?\u003c=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b"},{"name":"constant.numeric.integer.binary.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.octal.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.decimal.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])"},{"name":"constant.numeric.integer.hexadecimal.redscript","match":"(\\B\\-|\\b)(?\u003c![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])"},{"name":"invalid.illegal.numeric.other.redscript","match":"(\\B\\-|\\b)[0-9][\\w.]*"}]},"string":{"patterns":[{"name":"string.quoted.double.block.redscript","begin":"\"\"\"","end":"\"\"\"(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.redscript","match":"\\G.+(?=\"\"\")|\\G.+"},{"name":"constant.character.escape.newline.redscript","match":"\\\\\\s*\\n"},{"include":"#string-guts"},{"name":"invalid.illegal.content-before-closing-delimiter.redscript","match":"\\S((?!\\\\\\().)*(?=\"\"\")"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.redscript"},"1":{"name":"invalid.illegal.extra-closing-delimiter.redscript"}}},{"name":"string.quoted.double.block.raw.redscript","begin":"#\"\"\"","end":"\"\"\"#(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.redscript","match":"\\G.+(?=\"\"\")|\\G.+"},{"name":"constant.character.escape.newline.redscript","match":"\\\\#\\s*\\n"},{"include":"#raw-string-guts"},{"name":"invalid.illegal.content-before-closing-delimiter.redscript","match":"\\S((?!\\\\#\\().)*(?=\"\"\")"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.redscript"},"1":{"name":"invalid.illegal.extra-closing-delimiter.redscript"}}},{"name":"string.quoted.double.block.raw.redscript","begin":"(##+)\"\"\"","end":"\"\"\"\\1(#*)","patterns":[{"name":"invalid.illegal.content-after-opening-delimiter.redscript","match":"\\G.+(?=\"\"\")|\\G.+"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.redscript"},"1":{"name":"invalid.illegal.extra-closing-delimiter.redscript"}}},{"name":"string.quoted.double.single-line.redscript","begin":"\"","end":"\"(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.redscript","match":"\\r|\\n"},{"include":"#string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.redscript"},"1":{"name":"invalid.illegal.extra-closing-delimiter.redscript"}}},{"name":"string.quoted.double.single-line.redscript","begin":"(n|t|r)(\")","end":"\"(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.redscript","match":"\\r|\\n"},{"include":"#string-guts"}],"beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.redscript"},"2":{"name":"punctuation.definition.string.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.redscript"},"1":{"name":"invalid.illegal.extra-closing-delimiter.redscript"}}},{"name":"string.quoted.double.single-line.raw.redscript","begin":"(##+)\"","end":"\"\\1(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.redscript","match":"\\r|\\n"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.redscript"},"1":{"name":"invalid.illegal.extra-closing-delimiter.redscript"}}},{"name":"string.quoted.double.single-line.raw.redscript","begin":"#\"","end":"\"#(#*)","patterns":[{"name":"invalid.illegal.returns-not-allowed.redscript","match":"\\r|\\n"},{"include":"#raw-string-guts"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.redscript"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.redscript"},"1":{"name":"invalid.illegal.extra-closing-delimiter.redscript"}}}],"repository":{"raw-string-guts":{"patterns":[{"name":"constant.character.escape.redscript","match":"\\\\#[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.redscript","match":"\\\\#u\\{[0-9a-fA-F]{1,8}\\}"},{"name":"meta.embedded.line.redscript","contentName":"source.redscript","begin":"\\\\#\\(","end":"(\\))","patterns":[{"include":"$self"},{"begin":"\\(","end":"\\)"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.redscript"},"1":{"name":"source.redscript"}}},{"name":"invalid.illegal.escape-not-recognized","match":"\\\\#."}]},"string-guts":{"patterns":[{"name":"constant.character.escape.redscript","match":"\\\\[0\\\\tnr\"']"},{"name":"constant.character.escape.unicode.redscript","match":"\\\\u\\{[0-9a-fA-F]{1,8}\\}"},{"name":"meta.embedded.line.redscript","contentName":"source.redscript","begin":"\\\\\\(","end":"(\\))","patterns":[{"include":"$self"},{"begin":"\\(","end":"\\)"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.redscript"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.end.redscript"},"1":{"name":"source.redscript"}}},{"name":"invalid.illegal.escape-not-recognized","match":"\\\\."}]}}}}},"operators":{"patterns":[{"patterns":[{"name":"meta.type-casting","begin":"\\b(as)\\b\\s+","end":"(?!\\G)","patterns":[{"name":"entity.name.class.redscript","match":"((?\u003cq\u003e`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k\u003cq\u003e))"}],"beginCaptures":{"1":{"name":"keyword.operator.type-casting.redscript"}}}]},{"begin":"(?x)\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(?\u003coph\u003e\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\n\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\g\u003coph\u003e\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t","end":"(?!\\G)","patterns":[{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.increment-or-decrement.redscript","match":"\\G(\\+\\+|\\-\\-)$"},{"name":"keyword.operator.arithmetic.unary.redscript","match":"\\G(\\+|\\-)$"},{"name":"keyword.operator.logical.not.redscript","match":"\\G!$"},{"name":"keyword.operator.bitwise.not.redscript","match":"\\G~$"},{"name":"keyword.operator.custom.prefix.redscript","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.increment-or-decrement.redscript","match":"\\G(\\+\\+|\\-\\-)$"},{"name":"keyword.operator.increment-or-decrement.redscript","match":"\\G!$"},{"name":"keyword.operator.custom.postfix.redscript","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.assignment.redscript","match":"\\G=$"},{"name":"keyword.operator.assignment.compound.redscript","match":"\\G(\\+|\\-|\\*|/|%|\u003c\u003c|\u003e\u003e|\u0026|\\^|\\||\u0026\u0026|\\|\\|)=$"},{"name":"keyword.operator.arithmetic.redscript","match":"\\G(\\+|\\-|\\*|/)$"},{"name":"keyword.operator.arithmetic.overflow.redscript","match":"\\G\u0026(\\+|\\-|\\*)$"},{"name":"keyword.operator.arithmetic.remainder.redscript","match":"\\G%$"},{"name":"keyword.operator.comparison.redscript","match":"\\G(==|!=|\u003e|\u003c|\u003e=|\u003c=|~=)$"},{"name":"keyword.operator.coalescing.redscript","match":"\\G\\?\\?$"},{"name":"keyword.operator.logical.redscript","match":"\\G(\u0026\u0026|\\|\\|)$"},{"name":"keyword.operator.bitwise.redscript","match":"\\G(\u0026|\\||\\^|\u003c\u003c|\u003e\u003e)$"},{"name":"keyword.operator.bitwise.redscript","match":"\\G(===|!==)$"},{"name":"keyword.operator.ternary.redscript","match":"\\G\\?$"},{"name":"keyword.operator.custom.infix.redscript","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.custom.prefix.dot.redscript","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?\u003c!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.custom.postfix.dot.redscript","match":".+"}]}}},{"match":"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%\u003c\u003e\u0026|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t","captures":{"0":{"patterns":[{"name":"keyword.operator.range.redscript","match":"\\G\\.\\.[.\u003c]$"},{"name":"keyword.operator.custom.infix.dot.redscript","match":".+"}]}}}]},{"name":"keyword.operator.ternary.redscript","match":":"}]},"root":{"patterns":[{"include":"#compiler-control"},{"include":"#declarations"},{"include":"#expressions"}]}}}
|
data/grammars/source.rego.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Rego","scopeName":"source.rego","patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#comparison-operators"},{"include":"#assignment-operators"},{"include":"#term"}],"repository":{"assignment-operators":{"name":"keyword.operator.assignment.rego","match":":\\=|\\="},"call":{"name":"meta.function-call.rego","match":"([a-zA-Z_][a-zA-Z0-9_]*)\\(","captures":{"1":{"name":"support.function.any-method.rego"}}},"comment":{"patterns":[{"name":"comment.line.number-sign.rego","match":"(#)\\s*(METADATA)\\s*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"},"2":{"name":"strong"}}},{"name":"comment.line.number-sign.rego","match":"(#)\\s*(scope|title|description|related_resources|authors|organizations|schemas|entrypoint|custom):.*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"},"2":{"name":"strong"}}},{"name":"comment.line.number-sign.rego","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"}}}]},"comparison-operators":{"name":"keyword.operator.comparison.rego","match":"\\=\\=|\\!\\=|\u003e|\u003c|\u003c\\=|\u003e\\=|\\+|-|\\*|%|/|\\||\u0026"},"constant":{"name":"constant.language.rego","match":"\\b(?:true|false|null)\\b"},"interpolated-string-double":{"name":"string.template.rego","begin":"(\\$)(\")","end":"\"","patterns":[{"include":"#interpolation-expression"},{"include":"#string-escape"},{"include":"#interpolation-escape"},{"include":"#string-escape-invalid"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.rego"},"2":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},"interpolated-string-raw":{"name":"string.template.rego","begin":"(\\$)(`)","end":"`","patterns":[{"include":"#interpolation-expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.rego"},"2":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},"interpolation-escape":{"name":"constant.character.escape.rego","match":"\\\\[{}]"},"interpolation-expression":{"name":"meta.embedded.expression.rego","begin":"(?\u003c!\\\\)\\{","end":"\\}","patterns":[{"include":"#interpolation-expression-contents"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.rego"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.rego"}}},"interpolation-expression-contents":{"patterns":[{"include":"#comment"},{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#root-document"},{"include":"#variable"},{"include":"#comparison-operators"}]},"keyword":{"name":"keyword.other.rego","match":"(^|\\s+)(?:(default|not|package|import|as|with|else|some|in|every|if|contains))(?=\\s|$)"},"number":{"name":"constant.numeric.rego","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"root-document":{"name":"variable.other.constant.rego support.constant.rego variable.language.rego","match":"(?\u003c!\\.)\\b(?:input|data)\\b"},"string":{"patterns":[{"include":"#interpolated-string-double"},{"include":"#interpolated-string-raw"},{"name":"string.quoted.double.rego","begin":"\"","end":"\"","patterns":[{"include":"#string-escape"},{"include":"#string-escape-invalid"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},{"name":"string.other.raw.rego","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}}]},"string-escape":{"name":"constant.character.escape.rego","match":"(?x: # turn on extended mode\n\t\t\t\\\\ # a literal backslash\n\t\t\t(?: # ...followed by...\n\t\t\t\t[\"\\\\/bfnrt] # one of these characters\n\t\t\t\t| # ...or...\n\t\t\t\tu # a u\n\t\t\t\t[0-9a-fA-F]{4} # and four hex digits\n\t\t\t)\n\t\t\t)"},"string-escape-invalid":{"name":"invalid.illegal.unrecognized-string-escape.rego","match":"\\\\."},"term":{"patterns":[{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#root-document"},{"include":"#variable"}]},"variable":{"name":"meta.identifier.rego","match":"\\b[[:alpha:]_][[:alnum:]_]*\\b"}}}
|
|
1
|
+
{"name":"Rego","scopeName":"source.rego","patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#comparison-operators"},{"include":"#assignment-operators"},{"include":"#term"}],"repository":{"assignment-operators":{"name":"keyword.operator.assignment.rego","match":":\\=|\\="},"call":{"name":"meta.function-call.rego","match":"([a-zA-Z_][a-zA-Z0-9_]*)\\(","captures":{"1":{"name":"support.function.any-method.rego"}}},"comment":{"patterns":[{"name":"comment.line.number-sign.rego","match":"(#)\\s*(METADATA)\\s*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"},"2":{"name":"strong"}}},{"name":"comment.line.number-sign.rego","match":"(#)\\s*(scope|title|description|related_resources|authors|organizations|schemas|entrypoint|custom):.*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"},"2":{"name":"strong"}}},{"name":"comment.line.number-sign.rego","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"}}}]},"comparison-operators":{"name":"keyword.operator.comparison.rego","match":"\\=\\=|\\!\\=|\u003e|\u003c|\u003c\\=|\u003e\\=|\\+|-|\\*|%|/|\\||\u0026"},"constant":{"name":"constant.language.rego","match":"\\b(?:true|false|null)\\b"},"interpolated-string-double":{"name":"string.template.rego","begin":"(\\$)(\")","end":"\"","patterns":[{"include":"#interpolation-expression"},{"include":"#string-escape"},{"include":"#interpolation-escape"},{"include":"#string-escape-invalid"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.rego"},"2":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},"interpolated-string-raw":{"name":"string.template.rego","begin":"(\\$)(`)","end":"`","patterns":[{"include":"#interpolation-expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.rego"},"2":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},"interpolation-escape":{"name":"constant.character.escape.rego","match":"\\\\[{}]"},"interpolation-expression":{"name":"meta.embedded.expression.rego","begin":"(?\u003c!\\\\)\\{","end":"\\}","patterns":[{"include":"#interpolation-expression-contents"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.rego"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.rego"}}},"interpolation-expression-contents":{"patterns":[{"include":"#comment"},{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#root-document"},{"include":"#variable"},{"include":"#comparison-operators"}]},"keyword":{"name":"keyword.other.rego","match":"(^|\\s+)(?:(default|not|package|import|as|with|else|some|in|every|if|contains|and|or))(?=\\s|$)"},"number":{"name":"constant.numeric.rego","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"root-document":{"name":"variable.other.constant.rego support.constant.rego variable.language.rego","match":"(?\u003c!\\.)\\b(?:input|data)\\b"},"string":{"patterns":[{"include":"#interpolated-string-double"},{"include":"#interpolated-string-raw"},{"name":"string.quoted.double.rego","begin":"\"","end":"\"","patterns":[{"include":"#string-escape"},{"include":"#string-escape-invalid"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},{"name":"string.other.raw.rego","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}}]},"string-escape":{"name":"constant.character.escape.rego","match":"(?x: # turn on extended mode\n\t\t\t\\\\ # a literal backslash\n\t\t\t(?: # ...followed by...\n\t\t\t\t[\"\\\\/bfnrt] # one of these characters\n\t\t\t\t| # ...or...\n\t\t\t\tu # a u\n\t\t\t\t[0-9a-fA-F]{4} # and four hex digits\n\t\t\t)\n\t\t\t)"},"string-escape-invalid":{"name":"invalid.illegal.unrecognized-string-escape.rego","match":"\\\\."},"term":{"patterns":[{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#root-document"},{"include":"#variable"}]},"variable":{"name":"meta.identifier.rego","match":"\\b[[:alpha:]_][[:alnum:]_]*\\b"}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"Rhai","scopeName":"source.rhai","patterns":[{"include":"#core"}],"repository":{"brackets":{"patterns":[{"include":"#round-brackets"},{"include":"#square-brackets"},{"include":"#curly-brackets"}]},"comments":{"patterns":[{"name":"comment.block.documentation.rhai","begin":"/\\*\\*(?![/|\\*])","end":"\\*/","patterns":[{"include":"#comments"}],"captures":{"0":{"name":"punctuation.definition.comment.block.documentation.rhai"}}},{"name":"comment.block.rhai","begin":"/\\*","end":"\\*/","patterns":[{"include":"#comments"}],"captures":{"0":{"name":"punctuation.definition.comment.block.rhai"}}},{"name":"comment.line.documentation.rhai","match":"(///)[^/].*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.documentation.rhai"}}},{"name":"comment.line.double-slash.rhai","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.double-slash.rhai"}}},{"name":"comment.line.shebang.rhai","match":"^(#!).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rhai"}}}]},"core":{"patterns":[{"include":"#expression"}]},"curly-brackets":{"patterns":[{"name":"meta.group.braces.curly","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"meta.brace.curly.rhai"}},"endCaptures":{"0":{"name":"meta.brace.curly.rhai"}}}]},"expression":{"patterns":[{"include":"#literal-closure-labels"},{"include":"#literal-labels"},{"include":"#literal-keywords"},{"include":"#support"},{"include":"#literal-function"},{"include":"#literal-closure"},{"include":"#literal-constant"},{"include":"#literal-template-string"},{"include":"#literal-language-variable"},{"include":"#literal-module"},{"include":"#literal-method-call"},{"include":"#literal-function-call"},{"include":"#comments"},{"include":"#brackets"},{"include":"#literal-operators"},{"include":"#literal-namespace"},{"include":"#literal-variable"},{"include":"#literal-punctuation"}]},"function-declaration-parameters":{"patterns":[{"begin":"\\(","end":"\\)","patterns":[{"name":"variable.parameter.function.rhai","match":"[_a-zA-Z]\\w*"},{"name":"punctuation.separator.parameter.function.rhai","match":"\\,"},{"include":"#parameters-list"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.rhai"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.rhai"}}}]},"literal-closure":{"patterns":[{"name":"meta.function.closure.rhai","begin":"(\\|)(?=\\s*[_a-zA-Z\\|])","end":"(\\|)","patterns":[{"include":"#parameters-list"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.closure.begin.rhai"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.closure.end.rhai"}}},{"name":"meta.function.closure.rhai","begin":"(\\b[_a-zA-Z]\\w*)\\s*(=)\\s*(\\|)(?=\\s*[_a-zA-Z\\|])","end":"(\\|)","patterns":[{"include":"#parameters-list"}],"beginCaptures":{"1":{"name":"entity.name.function.closure.rhai"},"2":{"name":"keyword.operator.assignment.rhai"},"3":{"name":"punctuation.definition.parameters.closure.begin.rhai"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.closure.end.rhai"}}},{"name":"meta.function.closure.rhai","begin":"(=\u003e)\\s*(\\|)(?=\\s*[_a-zA-Z\\|])","end":"(\\|)","patterns":[{"include":"#parameters-list"}],"beginCaptures":{"1":{"name":"punctuation.separator.switch.case.rhai"},"2":{"name":"punctuation.definition.parameters.closure.begin.rhai"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.closure.end.rhai"}}}]},"literal-closure-labels":{"patterns":[{"name":"meta.function.closure.rhai","begin":"(\\b[_a-zA-Z]\\w*)\\s*(\\:)\\s*(\\|)(?=\\s*[_a-zA-Z\\|])","end":"(\\|)","patterns":[{"include":"#parameters-list"}],"beginCaptures":{"1":{"name":"string.unquoted.label.rhai entity.name.function.method.rhai"},"2":{"name":"punctuation.separator.key-value.rhai"},"3":{"name":"punctuation.definition.parameters.closure.begin.rhai"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.closure.end.rhai"}}},{"name":"meta.function.closure.rhai","begin":"((\\\")((?:[^\"]|\\\\\")*)(\\\"))\\s*(:)\\s*(\\|)(?=\\s*[_a-zA-Z\\|])","end":"(\\|)","patterns":[{"include":"#parameters-list"}],"beginCaptures":{"1":{"name":"string.quoted.double.rhai"},"2":{"name":"punctuation.definition.string.begin.rhai"},"3":{"name":"entity.name.function.method.rhai"},"4":{"name":"punctuation.definition.string.end.rhai"},"5":{"name":"punctuation.separator.key-value.rhai"},"6":{"name":"punctuation.definition.parameters.closure.begin.rhai"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.closure.end.rhai"}}}]},"literal-constant":{"patterns":[{"include":"#literal-number"},{"include":"#literal-string"},{"include":"#literal-language-constant"}]},"literal-function":{"patterns":[{"name":"meta.function.rhai","begin":"(?x)\n (?:\\b(private)\\s+)?\n \\s*(fn)\n \\s*([_a-zA-Z]\\w*)\\s*","end":"(?\u003c=\\))","patterns":[{"include":"#parameters-list"}],"beginCaptures":{"1":{"name":"storage.modifier.rhai"},"2":{"name":"storage.type.function.rhai"},"3":{"name":"entity.name.function.rhai"}}},{"name":"keyword.other.function.rhai","match":"\\b(fn)\\b"},{"name":"keyword.other.modifier.rhai","match":"\\b(private)\\b"}]},"literal-function-call":{"patterns":[{"name":"meta.function-call.without-arguments.rhai","match":"(?x)\n ([_a-zA-Z]\\w*)(!)?\\s*\n (\\(\\s*\\))","captures":{"1":{"name":"entity.name.function.rhai"},"2":{"name":"punctuation.function-call.capture.rhai"},"3":{"name":"meta.group.braces.round.function.arguments.rhai"}}},{"name":"meta.function-call.with-arguments.rhai","match":"(?x)\n ([_a-zA-Z]\\w*)(!)?\\s*\n (?=\\()","captures":{"1":{"name":"entity.name.function.rhai"},"2":{"name":"punctuation.function-call.capture.rhai"}}}]},"literal-keyword-storage":{"patterns":[{"name":"storage.type.rhai","match":"\\b(const|let)\\b"}]},"literal-keywords":{"patterns":[{"include":"#literal-keyword-storage"},{"name":"keyword.control.flow.rhai","match":"\\b(return)\\b"},{"name":"keyword.control.conditional.rhai","match":"\\b(if|else|switch)\\b"},{"name":"keyword.control.trycatch.rhai","match":"\\b(throw|try|catch)\\b"},{"name":"keyword.control.loop.rhai","match":"\\b(for|in|loop|do|while|until|break|continue)\\b"}]},"literal-labels":{"patterns":[{"begin":"(?x)\n (?\u003c!\\?)(?\u003c!\\?\\s)\n (?=((\")((?:[^\\:\"]|\\\\\")*)(\"))\\s*:)","end":":","patterns":[{"include":"#literal-string"}],"endCaptures":{"0":{"name":"punctuation.separator.key-value.rhai"}}},{"name":"constant.other.object.key.rhai","match":"(?\u003c!\\.|\\?|\\?\\s)([_a-zA-Z]\\w*)\\s*(:)(?!\\:)","captures":{"1":{"name":"string.unquoted.label.rhai"},"2":{"name":"punctuation.separator.key-value.rhai"}}}]},"literal-language-constant":{"patterns":[{"name":"constant.language.boolean.true.rhai","match":"\\btrue\\b"},{"name":"constant.language.boolean.false.rhai","match":"\\bfalse\\b"}]},"literal-language-namespace":{"patterns":[{"match":"(?\u003c!\\:\\:)\\s*((global)\\s*(\\:\\:))(?!\u003c)","captures":{"1":{"name":"meta.path.rhai"},"2":{"name":"constant.language.namespace.global.rhai entity.name.namespace.rhai"},"3":{"name":"punctuation.separator.namespace.rhai"}}}]},"literal-language-variable":{"patterns":[{"name":"variable.language.this.rhai","match":"\\bthis\\b"}]},"literal-method-call":{"patterns":[{"name":"meta.function-call.method.without-arguments.rhai","match":"(?x)\n (?:(?\u003c=\\.)|(?\u003c=\\?\\.))\n \\s*([_a-zA-Z]\\w*)\\s*\n (\\(\\s*\\))","captures":{"1":{"name":"entity.name.function.rhai"},"2":{"name":"meta.group.braces.round.function.arguments.rhai"}}},{"name":"meta.function-call.method.with-arguments.rhai","match":"(?x)\n (?:(?\u003c=\\.)|(?\u003c=\\?\\.))\n \\s*([_a-zA-Z]\\w*)\\s*\n (?=\\()","captures":{"1":{"name":"entity.name.function.rhai"}}}]},"literal-module":{"patterns":[{"name":"keyword.other.module.rhai","match":"\\b(import|export|as)\\b"}]},"literal-namespace":{"patterns":[{"include":"#literal-language-namespace"},{"name":"meta.path.rhai","match":"([_a-zA-Z]\\w*)\\s*(\\:\\:)(?!\u003c)","captures":{"1":{"name":"entity.name.namespace.rhai"},"2":{"name":"punctuation.separator.namespace.rhai"}}},{"match":"(?\u003c=\\:\\:)(\\s*([_a-zA-Z]\\w*))\\s*(?!\\:\\:)","captures":{"1":{"name":"meta.path.rhai"},"2":{"name":"variable.other.constant.rhai"}}}]},"literal-number":{"patterns":[{"name":"constant.numeric.rhai","match":"(?xi)\n (?:\n \\b0b[0-1][_0-1]*| # binary\n \\b0o[0-7][_0-7]*| # octal\n \\b0x[\\da-f][_\\da-f]*| # hex\n (\\B[+\\-])?\\b\\d[_\\d]*\\.\\d[_\\d]*(e[+\\-]?\\d[_\\d]*)?| # e.g. 999.999, 999.99e+123\n (\\B[+\\-])?\\b\\d[_\\d]*\\.(?!\\.)\\B| # e.g. 999.\n (\\B[+\\-])?\\b\\d[_\\d]*(e[+\\-]?\\d[_\\d]*)? # e.g. 999, 999e+123\n )"}]},"literal-operators":{"patterns":[{"name":"keyword.operator.logical.rhai","match":"(?x)\n !(?!=)| # logical-not right-to-left right\n \u0026\u0026 | # logical-and left-to-right both\n \\|\\| # logical-or left-to-right both"},{"name":"keyword.operator.containment.rhai","match":"(?x)\n \\bin\\b | # in left-to-right both\n \\B!in\\b # not-in left-to-right both"},{"name":"keyword.operator.coalesce.rhai","match":"(?x)\n \\?\\? # null-coalesce left-to-right both"},{"name":"keyword.operator.assignment.rhai","match":"(?x)\n =(?![=\u003e]) # assignment right-to-left both"},{"name":"keyword.operator.assignment.augmented.rhai","match":"(?x)\n %= | # assignment right-to-left both\n \u0026= | # assignment right-to-left both\n \\*\\*=| # assignment right-to-left both\n (?\u003c!\\*)\\*= | # assignment right-to-left both\n \\+= | # assignment right-to-left both\n -= | # assignment right-to-left both\n /= | # assignment right-to-left both\n \\^= | # assignment right-to-left both\n \\|= | # assignment right-to-left both\n \u003c\u003c= | # assignment right-to-left both\n \u003e\u003e= # assignment right-to-left both"},{"name":"keyword.operator.bitwise.rhai","match":"(?x)\n \u003c\u003c | # bitwise-shift left-to-right both\n \u003e\u003e | # bitwise-shift left-to-right both\n \u0026 | # bitwise-and left-to-right both\n \\^ | # bitwise-xor left-to-right both\n \\| # bitwise-or left-to-right both"},{"name":"keyword.operator.relational.rhai","match":"(?x)\n \u003c= | # relational left-to-right both\n \u003e= | # relational left-to-right both\n \u003c(?!-) | # relational left-to-right both\n (?\u003c!-)\u003e # relational left-to-right both"},{"name":"keyword.operator.comparison.rhai","match":"(?x)\n ==(?!=) | # equality left-to-right both\n !=(?!=) # equality left-to-right both"},{"name":"keyword.operator.arithmetic.rhai","match":"(?x)\n / | # division left-to-right both\n % | # modulus left-to-right both\n \\*\\* | # power left-to-right both\n \\*(?!\\)) | # multiplication left-to-right both\n \\+(?!\\+) | # addition left-to-right both\n -(?![\u003e-]) # subtraction left-to-right both"},{"name":"keyword.operator.range.exclusive.rhai","match":"\\.\\.(?![\\.=])"},{"name":"keyword.operator.range.inclusive.rhai","match":"\\.\\.="},{"name":"keyword.operator.accessor.rhai punctuation.accessor.rhai","match":"\\.(?!\\.)|\\?\\."},{"name":"punctuation.separator.switch.case.rhai","match":"=\u003e"},{"name":"invalid.illegal.operator.rhai","match":"(\\(\\*|\\*\\)|\\+\\+|--|\\.\\.\\.+|~|#(?!{)|@|\\?|\\$(?!{)|-\u003e|\u003c-|===|!==|\\:=|\\:\\:\u003c)"}]},"literal-punctuation":{"patterns":[{"name":"punctuation.terminator.statement.rhai","match":"\\;"},{"name":"meta.delimiter.comma.rhai","match":"\\,"}]},"literal-string":{"patterns":[{"name":"string.quoted.single.rhai","match":"('([^'\\\\]|\\\\([tnr'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8}))')","patterns":[{"name":"constant.character.escape.rhai","match":"\\\\([tnr'\\\\]|x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"}]},{"name":"string.quoted.double.rhai","begin":"(\")","end":"(\")","patterns":[{"include":"#string-content"},{"name":"invalid.illegal.newline.rhai","match":"(?\u003c!\\\\)\\n"},{"name":"constant.character.escape.newline.rhai punctuation.separator.continuation","match":"\\\\\\n"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.rhai"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.rhai"}}}]},"literal-template-string":{"patterns":[{"name":"string.interpolated.rhai","begin":"`","end":"`","patterns":[{"include":"#string-content"},{"name":"meta.interpolation.rhai","begin":"\\${","end":"}","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.interpolation.begin.rhai"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.rhai"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rhai"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rhai"}}}]},"literal-variable":{"patterns":[{"name":"variable.other.constant.rhai","match":"[A-Z][_\\dA-Z]*\\b"},{"match":"(?\u003c!\\.)\\s*([_a-zA-Z]\\w*)\\s*(?=(\\.|\\?\\.))","captures":{"1":{"name":"variable.other.object.rhai"}}},{"match":"(?:(?\u003c=\\.)|(?\u003c=\\?\\.))\\s*([_a-zA-Z]\\w*)","captures":{"1":{"name":"variable.other.property.rhai entity.name.property.rhai"}}},{"name":"variable.other.readwrite.rhai","match":"[_a-zA-Z]\\w*"}]},"parameters-list":{"patterns":[{"name":"variable.parameter.function.rhai","match":"[_a-zA-Z]\\w*"},{"name":"punctuation.separator.parameter.function.rhai","match":"\\,"},{"include":"#comments"}]},"round-brackets":{"patterns":[{"name":"meta.group.braces.round","begin":"\\((?!\\*)","end":"(?\u003c!\\*)\\)","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.round.rhai"}},"endCaptures":{"0":{"name":"meta.brace.round.rhai"}}}]},"square-brackets":{"patterns":[{"name":"meta.group.braces.square","begin":"\\[|\\?\\[","end":"\\]","patterns":[{"include":"#expression"}],"beginCaptures":{"0":{"name":"meta.brace.square.rhai"}},"endCaptures":{"0":{"name":"meta.brace.square.rhai"}}}]},"string-content":{"patterns":[{"name":"constant.character.escape.rhai","match":"\\\\(x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|U[\\da-fA-F]{8}|t|r|n|\\\\)"},{"name":"invalid.illegal.escape.rhai","match":"\\\\[^xuUtrn\\\\\\n]"}]},"support":{"patterns":[{"name":"support.function.rhai","match":"\\b(print|debug|Fn|call|curry|eval|type_of|is_def_var|is_def_fn|is_shared)\\b"},{"name":"invalid.illegal.keyword.rhai","match":"\\b(var|static|shared|goto|exit|match|case|public|protected|new|use|with|module|package|super|thread|spawn|go|await|async|sync|yield|default|void|null|nil)\\b"}]}}}
|
data/grammars/source.rpg.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"RPG","scopeName":"source.rpg","patterns":[{"include":"#ctarrays"},{"include":"#comments"},{"include":"#sql"},{"include":"#constants"},{"include":"#keywords"},{"include":"#gutter"},{"include":"#strings"}],"repository":{"comments":{"patterns":[{"name":"comment.line.rpg","begin":"(?i)((?\u003c=((?\u003c=^\\s{5}(F|L|I|O)).{68})))|(?\u003c=((?\u003c=^\\s{5}E).{51}))|(?\u003c=((?\u003c=^\\s{5}C).{53}))","end":"\n"},{"name":"comment.line.rpg","begin":"(?i)^.{5}.\\*","end":"\n"},{"name":"comment.line.rpg","begin":"[*]{2}.","end":"\n"}]},"constants":{"patterns":[{"name":"constant.language.rpg.h.datefmt","match":"(?i)(?\u003c=((?\u003c=^.{5}H).{12}))(M|D|Y)"},{"name":"constant.language.rpg.h.datedit","match":"(?i)(?\u003c=((?\u003c=^.{5}H).{13}))(\u0026)"},{"name":"constant.language.rpg.h.invprint","match":"(?i)(?\u003c=((?\u003c=^.{5}H).{14}))(I|J|D)"},{"name":"constant.language.rpg.h.altseq","match":"(?i)(?\u003c=((?\u003c=^.{5}H).{19}))(S|D)"},{"name":"constant.language.rpg.h.filetrans","match":"(?i)(?\u003c=((?\u003c=^.{5}H).{36}))(F)"},{"name":"constant.language.rpg.f.type","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{8})))(I|O|U|C)"},{"name":"constant.language.rpg.f.designation","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{9})).{3})(P|S|R|T|F)"},{"name":"constant.language.rpg.f.eof","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{10})).{2})(E)"},{"name":"constant.language.rpg.f.sequence","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{11})).{1})(A|D)"},{"name":"constant.language.rpg.f.format","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{12})))(F|E)"},{"name":"constant.language.rpg.f.recordlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f|E|e).{9})([0-9]|\\s){4}"},{"name":"constant.language.rpg.f.mode","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f|E|e).{8})(L)"},{"name":"constant.language.rpg.f.keyfieldlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f|E|e).{9})([0-9]|\\s){2}"},{"name":"constant.language.rpg.f.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{11})(A|P)"},{"name":"constant.language.rpg.f.organization","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{12})(I|T)"},{"name":"constant.language.rpg.f.ovind","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{13})(O([A-G]|V))"},{"name":"constant.language.rpg.f.extncode","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{19})(E|L)"},{"name":"constant.language.rpg.f.device","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|E).{20})(WORKSTN|DISK|PRINTER|SPECIAL|SEQ)"},{"name":"constant.language.rpg.f.continuation","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|E).{33})(K)"},{"name":"constant.language.rpg.f.addition","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|E).{46})(A)"},{"name":"constant.language.rpg.f.condition","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|E).{51})([U]([1-8]|C))"},{"name":"constant.language.rpg.fx.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(E|e).{11})(K)"},{"name":"constant.language.rpg.e.entriesrecord","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{26}))[\\s|0-9]{3}"},{"name":"constant.language.rpg.e.entriestable","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{29}))[\\s|0-9]{4}"},{"name":"constant.language.rpg.e.entrylen","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{33}))[\\s|0-9]{3}"},{"name":"constant.language.rpg.e.pblr","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{36}))(P|B|L|R)"},{"name":"constant.language.rpg.e.dec","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{37}))[0-9]"},{"name":"constant.language.rpg.e.seq","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{38}))(A|D)"},{"name":"constant.language.rpg.e.len","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{45}))[\\s|0-9]{3}"},{"name":"constant.language.rpg.e.pblr","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{48}))(P|B|L|R)"},{"name":"constant.language.rpg.e.dec","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{49}))[0-9]"},{"name":"constant.language.rpg.e.seq","match":"(?i)(?\u003c=((?\u003c=^.{5}E).{50}))(A|D)"},{"name":"constant.language.rpg.l.lineno","match":"(?i)(?\u003c=((?\u003c=^.{5}L).{8}))[0-9]{3}"},{"name":"constant.language.rpg.l.formlen","match":"(?i)(?\u003c=((?\u003c=^.{5}L).{11}))(FL)"},{"name":"constant.language.rpg.l.ovlineno","match":"(?i)(?\u003c=((?\u003c=^.{5}L).{13}))[0-9]{3}"},{"name":"constant.language.rpg.l.ovline","match":"(?i)(?\u003c=((?\u003c=^.{5}L).{16}))(OL)"},{"name":"constant.language.rpg.i.ds","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}I).{12}))(DS))(DS)"},{"name":"constant.language.rpg.i.ds.number","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}I).{9})).{3}(DS)).{1}(E)"},{"name":"constant.language.rpg.i.ds.option","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}I).{11})).{1}(DS))(S|U|I)"},{"name":"constant.language.rpg.i.constant","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{36}))C"},{"name":"constant.language.rpg.i.subfinit","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{0}))\\sI"},{"name":"constant.language.rpg.i.seq","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{8}))[A-Za-z0-9]{2}"},{"name":"constant.language.rpg.i.num","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{10}))(1|N)"},{"name":"constant.language.rpg.i.option","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{11}))O"},{"name":"constant.language.rpg.i.recordid","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{12}))(([0-9]{2})|((L|H)[1-9])|(RT|\\*\\*)|(U[1-8]))"},{"name":"constant.language.rpg.i.id1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{14}))([\\s|0-9]{4})(\\s|1|N)(C|Z|D)(.)"},{"name":"constant.language.rpg.i.id2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{21}))([\\s|0-9]{4})(\\s|1|N)(C|Z|D)(.)"},{"name":"constant.language.rpg.i.id3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{28}))([\\s|0-9]{4})(\\s|1|N)(C|Z|D)(.)"},{"name":"constant.language.rpg.i.pblr","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{36}))(P|B|L|R)"},{"name":"constant.language.rpg.i.from","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{37}))(([0-9]|\\s){4})"},{"name":"constant.language.rpg.i.to","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{41}))(([0-9]|\\s){4})"},{"name":"constant.language.rpg.i.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{45}))([0-9])"},{"name":"constant.language.rpg.i.ctrl","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{52}))(L[1-9]|\\s)"},{"name":"constant.language.rpg.i.matching","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{54}))(M[1-9]|\\s)"},{"name":"constant.language.rpg.i.fldrcdrel","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{56}))((([0-9]|\\s){2})|((L|H)[1-9])|(MR|RT)|(U[1-8]))"},{"name":"constant.language.rpg.i.posfld","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{58}))((([0-9]|\\s){2})|(H[1-9])|(RT)|(U[1-8]))"},{"name":"constant.language.rpg.i.negfield","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{60}))((([0-9]|\\s){2})|(H[1-9])|(RT)|(U[1-8]))"},{"name":"constant.language.rpg.i.zeroblank","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{62}))((([0-9]|\\s){2})|(H[1-9])|(RT)|(U[1-8]))"},{"name":"constant.language.rpg.c.level","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{0}))((L([1-9]|O|R))|SR|AN|OR)"},{"name":"constant.language.rpg.c.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{2}))((N|\\s)(([0-9]{2})|(L([1-9]|O|R))|(K[A-NP-Y])|MR|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.n02","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{5}))((N|\\s)(([0-9]{2})|(L([1-9]|O|R))|(K[A-NP-Y])|MR|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.n03","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{8}))((N|\\s)(([0-9]{2})|(L([1-9]|O|R))|(K[A-NP-Y])|MR|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.len","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{42}))(([0-9]|\\s){3})"},{"name":"constant.language.rpg.c.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{45}))(([0-9]|\\s){1})"},{"name":"constant.language.rpg.c.opext","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{46}))(H|N|P)"},{"name":"constant.language.rpg.c.hi","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{47}))((i?)((([0-9]{2})|(L([1-9]|O|R)))|(K([A-MP-Y]))|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.lo","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{49}))((i?)((([0-9]{2})|(L([1-9]|O|R)))|(K([A-MP-Y]))|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.eq","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{51}))((i?)((([0-9]{2})|(L([1-9]|O|R)))|(K([A-MP-Y]))|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.o.type","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{8}))(H|D|T|E)"},{"name":"constant.language.rpg.o.adddel","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{9}))(ADD|DEL)"},{"name":"constant.language.rpg.o.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{16}))((\\s|N)?(([0-9]{2})|(K[A-GN-Y])|((H|L)([1-9]|R))|(MR|RT|1P)|(U[1-8])|(O([A-G]|V))))"},{"name":"constant.language.rpg.o.n02","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{19}))((\\s|N)?(([0-9]{2})|(K[A-GN-Y])|((H|L)([1-9]|R))|(MR|RT|1P)|(U[1-8])|(O([A-G]|V))))"},{"name":"constant.language.rpg.o.n03","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{22}))((\\s|N)?(([0-9]{2})|(K[A-GN-Y])|((H|L)([1-9]|R))|(MR|RT|1P)|(U[1-8])|(O([A-G]|V))))"},{"name":"constant.language.rpg.o.editcode","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{31}))((([0-9])|A|B|C|D|J|K|L|M|N|O|P|Q|X|Y|Z))"},{"name":"constant.language.rpg.o.blankafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{32}))B"},{"name":"constant.language.rpg.o.endpos","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{33}))(((\\+|N)NNN)|\\s*(K([1-8]))|\\s*([0-9]){3})"},{"name":"constant.language.rpg.o.pblr","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{37}))(P|B|L|R)"},{"name":"constant.language.rpg.indicator","match":"(?i)[*]\\b(IN)([0-9]{0,2})\\b"},{"name":"constant.numeric.rpg","match":"\\b(([0-9]+)|([0-9]*[.][0-9]))\\b"},{"name":"constant.numeric.rpg","match":"(?i)(?\u003c=((?\u003c=^.{5}[C]).{26}))([0-9]+)"},{"name":"constant.language.rpg","match":"(?i)[*]\\b(INLR|BLANK|BLANKS|ZERO|ZEROS|HIVAL|LOVAL|ALL|ON|OFF|DATE|MONTH|DAY|YEAR|CANCL|DETC|DETL|GETIN|INIT|OFL|TERM|TOTC|TOTL|DEFN|ENTRY|INZSR|LDA|LIKE|LOCK|NAMVAR|OFF|ON|PDA|PSSR|FILE|EQUATE|PLACE)\\b"},{"name":"constant.language.rpg","match":"(?i)(UDATE|UMONTH|UDAY|UYEAR)"}]},"ctarrays":{"patterns":[{"name":"variable.other.rpg.ctarrays","begin":"(?=^(\\*{2})(?!free))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"string.other.rpg.ctarray","begin":"(\\*{2})"}]}]},"gutter":{"patterns":[{"name":"comment.gutter","match":"^.{5}"}]},"keywords":{"patterns":[{"name":"keyword.other.rpg.precompiler.title","begin":"(?i)^.{5}(H)?[\\/](TITLE)","end":"\n","patterns":[{"name":"comment.line.rpg.precompiler.title","match":".*"}]},{"name":"keyword.other.rpg.precompiler.copy","begin":"(?i)^.{5}(C|\\s)[/](COPY)\\s","end":"\n","patterns":[{"name":"string.other.rpg.precompiler.copy","begin":"\\S","end":"\\s"},{"name":"comment.other.rpg.precompiler.copy","match":".*"}]},{"name":"keyword.other.rpg.precompiler","begin":"(?i)^.{0,5}.(/)(EJECT|COPY|TITLE|SPACE)","end":"\n"},{"name":"keyword.other.rpg","match":"(?i)(?\u003c=^.{5})[H|F|E|L|I|C|O]"},{"name":"keyword.other.rpg","match":"(?i)(?\u003c=((?\u003c=^.{5}[C|c]).{21}))(IF|WH|DOW|DOU|DO|CAB|CAS|AND|OR)(GT|LT|EQ|NE|GE|LE)"},{"name":"keyword.other.rpg","match":"(:|\\,|\\-|\\+|\\.)"},{"name":"keyword.other.rpg","match":"(?i)(ENDDO|ENDIF|ENDCS|ENDSL)"},{"name":"keyword.other.rpg","match":"(?i)(?\u003c=((?\u003c=^.{5}[C|c]).{21}))(Z-SUB|Z-ADD|XLATE|XFOOT|WRITE|WH|UPDAT|UNLCK|TIME|TESTZ|TESTN|TESTB|TAG|SUBST|SUB|SQRT|SORTA|SHTDN|SETON|SETOF|SETLL|SETGT|SELEC|SCAN|ROLBK|RETRN|RESET|REL|REDPE|READP|READE|READC|READ|POST|PLIST|PARM|OUT|OTHER|OR|OPEN|OCUR|NEXT|MVR|MULT|MOVEL|MOVEA|MOVE|MLLZO|MLHZO|MHLZO|MHHZO|LOKUP|LEAVE|KLIST|KFLD|ITER|IN|IF|GOTO|FREE|FORCE|FEOD|EXSR|EXFMT|EXCPT|ENDSR|END|ELSE|DUMP|DSPLY|DOW|DOU|DO|DIV|DELET|DEFN|DEBUG|COMP|COMIT|CLOSE|CLEAR|CHEKR|CHECK|CHAIN|CAT|CAS|CALL|CAB|BITON|BITOF|BEGSR|AND|ADD|ACQ)"}]},"sql":{"patterns":[{"name":"variable.other.rpg.sql","begin":"(?i)(?=((?\u003c=^.{5}[C]))(\\/EXEC\\sSQL))","end":"(?i)(?=((?\u003c=^.{5}[C]))(\\/END\\-EXEC))","patterns":[{"name":"keyword.other.rpg.sql.precompiler","match":"(?i)((/)(EXEC\\s+SQL))"},{"name":"keyword.other.rpg.sql.c","match":"(?i)^.{5}[C]"},{"name":"variable.parameter.rpg.sql","match":"[:][a-zA-Z_][a-zA-Z0-9_]*"},{"include":"source.sql"},{"name":"variable.other.rpg.sql.identifier","match":"[a-zA-Z_][a-zA-Z0-9_]*"}]},{"name":"keyword.other.rpg.sql.precompiler","match":"(?i)(/END\\-EXEC)"}]},"strings":{"patterns":[{"name":"string.other.rpg.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.rpg","begin":"'","end":"(\n|')","patterns":[{"name":"constant.character.escape.rpg","match":"\\\\."}]}]}}}
|
|
1
|
+
{"name":"RPG","scopeName":"source.rpg","patterns":[{"include":"#ctarrays"},{"include":"#comments"},{"include":"#sql"},{"include":"#gutter"},{"include":"#sqlvariables"},{"include":"#constants"},{"include":"#keywords"},{"include":"#strings"}],"repository":{"comments":{"patterns":[{"name":"comment.line.rpg","begin":"(?i)(?\u003c=(?\u003c=^.{5}(F|L|I|O)).{68})|(?\u003c=(?\u003c=^.{5}E).{51})|(?\u003c=(?\u003c=^.{5}C).{53})","end":"\n"},{"name":"comment.line.rpg","begin":"(?i)^.{5}.\\*","end":"\n"}]},"constants":{"patterns":[{"name":"constant.language.rpg.h.datefmt","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{12})(M|D|Y)"},{"name":"constant.language.rpg.h.datedit","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{13})[^ ]"},{"name":"constant.language.rpg.h.currency","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{11})[^ 0*,.\u0026\\-CR]"},{"name":"constant.language.rpg.h.decnotation","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{14})(I|J|D)"},{"name":"constant.language.rpg.h.altseq","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{19})S"},{"name":"constant.language.rpg.h.filetrans","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{36})F"},{"name":"constant.language.rpg.h.debug","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{8})1"},{"name":"constant.language.rpg.h.formsalign","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{34})1"},{"name":"constant.language.rpg.h.transparency","match":"(?i)(?\u003c=(?\u003c=^.{5}H).{50})1"},{"name":"constant.language.rpg.f.type","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}F).{8}))(I|O|U|C)"},{"name":"constant.language.rpg.f.designation","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}F).{9}).{3})(P|S|R|T|F)"},{"name":"constant.language.rpg.f.eof","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}F).{10}).{2})E"},{"name":"constant.language.rpg.f.sequence","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}F).{11}).{1})(A|D)"},{"name":"constant.language.rpg.f.format","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}F).{12}))(F|E)"},{"name":"constant.language.rpg.f.recordlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f|E|e).{4})(?=[0-9 ]{0,3}[0-9])[0-9 ]{4}"},{"name":"constant.language.rpg.f.mode","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f|E|e).{8})L"},{"name":"constant.language.rpg.f.keyfieldlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f|E|e).{9})(?=[0-9 ]{0,1}[0-9])[0-9 ]{2}"},{"name":"constant.language.rpg.f.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{11})(A|P)"},{"name":"constant.language.rpg.f.organization","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{12})(I|T)"},{"name":"constant.language.rpg.f.ovind","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{13})(O([A-G]|V))"},{"name":"constant.language.rpg.f.extncode","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|f).{19})(E|L)"},{"name":"constant.language.rpg.f.device","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|E).{20})(WORKSTN|PRINTER|SPECIAL|DISK|SEQ)"},{"name":"constant.language.rpg.f.continuation","match":"(?i)(?\u003c=^.{5}F.{46})K"},{"name":"constant.language.rpg.f.addition","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|E).{46})A"},{"name":"constant.language.rpg.f.condition","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(F|E).{51})(U([1-8]|C))"},{"name":"constant.language.rpg.fx.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{8}).{4}(E|e).{11})K"},{"name":"support.function.rpg.f.option","match":"(?i)(?\u003c=(?\u003c=^.{5}F).{46}K)(COMIT|IGNORE|INFDS|INFSR|PRTCTL|RENAME|RECNO|SAVDS|SFILE|PLIST|PASS|NUM|IND|ID|SLN)"},{"name":"constant.language.rpg.e.entriesrecord","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{26})(?=[0-9 ]{0,2}[0-9])[0-9 ]{3}"},{"name":"constant.language.rpg.e.entriestable","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{29})(?=[0-9 ]{0,3}[0-9])[0-9 ]{4}"},{"name":"constant.language.rpg.e.entrylen","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{33})(?=[0-9 ]{0,2}[0-9])[0-9 ]{3}"},{"name":"constant.language.rpg.e.pblr","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{36})(P|B|L|R)"},{"name":"constant.language.rpg.e.dec","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{37})[0-9]"},{"name":"constant.language.rpg.e.seq","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{38})(A|D)"},{"name":"constant.language.rpg.e.len","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{45})(?=[0-9 ]{0,2}[0-9])[0-9 ]{3}"},{"name":"constant.language.rpg.e.altpblr","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{48})(P|B|L|R)"},{"name":"constant.language.rpg.e.altdec","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{49})[0-9]"},{"name":"constant.language.rpg.e.altseq","match":"(?i)(?\u003c=(?\u003c=^.{5}E).{50})(A|D)"},{"name":"constant.language.rpg.l.lineno","match":"(?i)(?\u003c=(?\u003c=^.{5}L).{8})(?=[0-9 ]{0,2}[0-9])[0-9 ]{3}"},{"name":"constant.language.rpg.l.formlen","match":"(?i)(?\u003c=(?\u003c=^.{5}L).{11})FL"},{"name":"constant.language.rpg.l.ovlineno","match":"(?i)(?\u003c=(?\u003c=^.{5}L).{13})(?=[0-9 ]{0,2}[0-9])[0-9 ]{3}"},{"name":"constant.language.rpg.l.ovline","match":"(?i)(?\u003c=(?\u003c=^.{5}L).{16})OL"},{"name":"constant.language.rpg.i.ds","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}I).{12})(DS))(DS)"},{"name":"constant.language.rpg.i.ds.number","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}I).{9}).{3}(DS)).{1}E"},{"name":"constant.language.rpg.i.ds.option","match":"(?i)(?=(?\u003c=(?\u003c=^.{5}I).{11}).{1}(DS))(S|U|I)"},{"name":"constant.language.rpg.i.constant","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{36})C"},{"name":"constant.language.rpg.i.subfinit","match":"(?i)(?\u003c=^.{5}I)\\sI"},{"name":"constant.language.rpg.i.logical","match":"(?i)(?\u003c=^.{5}I\\s{7})(AND|OR)"},{"name":"constant.language.rpg.i.seq","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{8})[A-Za-z0-9]{2}"},{"name":"constant.language.rpg.i.num","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{10})(1|N)"},{"name":"constant.language.rpg.i.option","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{11})O"},{"name":"constant.language.rpg.i.recordid","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{12})(([0-9]{2})|((L|H)[1-9])|LR|(U[1-8])|RT|(\\*\\*))"},{"name":"constant.language.rpg.i.id1","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{14})([0-9 ]{4})(\\s|1|N)(C|Z|D)(.|$)"},{"name":"constant.language.rpg.i.id2","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{21})([0-9 ]{4})(\\s|1|N)(C|Z|D)(.|$)"},{"name":"constant.language.rpg.i.id3","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{28})([0-9 ]{4})(\\s|1|N)(C|Z|D)(.|$)"},{"name":"constant.language.rpg.i.pblr","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{36})(P|B|L|R)"},{"name":"constant.language.rpg.i.from","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{37})(?=[0-9 ]{0,3}[0-9])[0-9 ]{4}"},{"name":"constant.language.rpg.i.to","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{41})(?=[0-9 ]{0,3}[0-9])[0-9 ]{4}"},{"name":"constant.language.rpg.i.decpos","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{45})[0-9]"},{"name":"constant.language.rpg.i.ctrl","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{52})L[1-9]"},{"name":"constant.language.rpg.i.matching","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{54})M[1-9]"},{"name":"constant.language.rpg.i.fldrcdrel","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{56})(([0-9]{2})|((L|H)[1-9])|MR|RT|(U[1-8]))"},{"name":"constant.language.rpg.i.posfld","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{58})(([0-9]{2})|(H[1-9])|(U[1-8])|RT)"},{"name":"constant.language.rpg.i.negfield","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{60})(([0-9]{2})|(H[1-9])|(U[1-8])|RT)"},{"name":"constant.language.rpg.i.zeroblank","match":"(?i)(?\u003c=(?\u003c=^.{5}I).{62})(([0-9]{2})|(H[1-9])|(U[1-8])|RT)"},{"name":"constant.language.rpg.c.level","match":"(?i)(?\u003c=^.{5}C)((L([0-9]|R))|SR|AN|OR)"},{"name":"constant.language.rpg.c.n01","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{2})((N|\\s)(([0-9]{2})|(L[1-9])|LR|(K[A-NP-Y])|MR|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.n02","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{5})((N|\\s)(([0-9]{2})|(L[1-9])|LR|(K[A-NP-Y])|MR|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.n03","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{8})((N|\\s)(([0-9]{2})|(L[1-9])|LR|(K[A-NP-Y])|MR|RT|(H[1-9])|(O([A-G]|V))|(U[1-8])))"},{"name":"constant.language.rpg.c.len","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{42})(?=[0-9 ]{0,2}[0-9])[0-9 ]{3}"},{"name":"constant.language.rpg.c.decpos","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{45})[0-9]"},{"name":"constant.language.rpg.c.opext","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{46})(H|N|P)"},{"name":"constant.language.rpg.c.hi","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{47})(([0-9]{2})|(L[1-9])|LR|(K[A-NP-Y])|RT|(H[1-9])|(O([A-G]|V))|(U[1-8]))"},{"name":"constant.language.rpg.c.lo","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{49})(([0-9]{2})|(L[1-9])|LR|(K[A-NP-Y])|RT|(H[1-9])|(O([A-G]|V))|(U[1-8]))"},{"name":"constant.language.rpg.c.eq","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{51})(([0-9]{2})|(L[1-9])|LR|(K[A-NP-Y])|RT|(H[1-9])|(O([A-G]|V))|(U[1-8]))"},{"name":"constant.language.rpg.o.logical","match":"(?i)(?\u003c=^.{5}O\\s{7})(AND|OR)"},{"name":"constant.language.rpg.o.type","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{8})(H|D|T|E)"},{"name":"constant.language.rpg.o.adddel","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{9})(ADD|DEL)"},{"name":"constant.language.rpg.o.fetch","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{9})(F|R)"},{"name":"constant.language.rpg.o.n01","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{16})((\\s|N)?(([0-9]{2})|(K[A-NP-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O([A-G]|V))))"},{"name":"constant.language.rpg.o.n02","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{19})((\\s|N)?(([0-9]{2})|(K[A-NP-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O([A-G]|V))))"},{"name":"constant.language.rpg.o.n03","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{22})((\\s|N)?(([0-9]{2})|(K[A-NP-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O([A-G]|V))))"},{"name":"constant.language.rpg.o.editcode","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{31})([1-9]|A|B|C|D|J|K|L|M|N|O|P|Q|X|Y|Z)"},{"name":"constant.language.rpg.o.blankafter","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{32})B"},{"name":"constant.language.rpg.o.endpos","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{33})(([+\\-][0-9 ]{3})|([ ]{0,2}K[1-8])|((?=[0-9 ]{0,3}[0-9])[0-9 ]{4}))"},{"name":"constant.language.rpg.o.pblr","match":"(?i)(?\u003c=(?\u003c=^.{5}O).{37})(P|B|L|R)"},{"name":"constant.language.rpg.indicator","match":"(?i)\\*IN(,?)(([0-9]{2})|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(K[A-NP-Y])|(O([A-G]|V)))?\\b"},{"name":"constant.numeric.rpg","match":"(?i)(?\u003c=^.{5}I\\s{14})[+\\-]?[0-9]+(\\.[0-9]+)?-?"},{"name":"constant.numeric.rpg","match":"\\b[0-9]+(\\.[0-9]+)?\\b"},{"name":"constant.numeric.rpg","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{11})[+\\-]?[0-9]+(\\.[0-9]+)?"},{"name":"constant.numeric.rpg","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{26})[+\\-]?[0-9]+(\\.[0-9]+)?"},{"name":"constant.language.rpg","match":"(?i)\\*(BLANKS|BLANK|ZEROS|ZERO|HIVAL|LOVAL|ALLX|ALL|ON|OFF|DATE|MONTH|DAY|YEAR|CANCL|DETC|DETL|GETIN|INIT|OFL|TERM|TOTC|TOTL|DEFN|ENTRY|INZSR|LDA|LIKE|LOCK|NAMVAR|PDA|PSSR|FILE|OPCODE|PARMS|PROGRAM|RECORD|ROUTINE|STATUS|EQUATE|PLACE|NOKEY|EXT)\\b"},{"name":"constant.language.rpg","match":"(?i)(?:(?\u003c![A-Za-z0-9#@$])|(?\u003c=^.{17})|(?\u003c=^.{31})|(?\u003c=^.{32})|(?\u003c=^.{42}))(UDATE|UMONTH|UDAY|UYEAR|PAGE[1-7]|PAGE)(?![A-Za-z0-9#@$])"}]},"ctarrays":{"patterns":[{"name":"variable.other.rpg.ctarrays","begin":"(?=^(\\*{2})(?!free))","end":"(?!x)x","patterns":[{"name":"string.other.rpg.ctarray","begin":"(\\*{2})"}]}]},"gutter":{"patterns":[{"name":"comment.gutter","match":"^.{5}"}]},"keywords":{"patterns":[{"name":"keyword.other.rpg.precompiler.title","begin":"(?i)(?\u003c=^.{5}.)[\\/](TITLE)","end":"\n","patterns":[{"name":"comment.line.rpg.precompiler.title","match":".*"}]},{"name":"keyword.other.rpg.precompiler.copy","begin":"(?i)(?\u003c=^.{5}.)[\\/](COPY)\\s","end":"\n","patterns":[{"name":"string.other.rpg.precompiler.copy","begin":"\\S","end":"\\s"},{"name":"comment.other.rpg.precompiler.copy","match":".*"}]},{"name":"keyword.other.rpg.precompiler","begin":"(?i)(?\u003c=^.{5}.)(/)(SPACE)","end":"\n","patterns":[{"name":"constant.numeric.rpg","match":"[0-9]+"}]},{"name":"keyword.other.rpg.precompiler","begin":"(?i)(?\u003c=^.{5}.)(/)(EJECT|COPY|TITLE|SPACE)","end":"\n"},{"name":"keyword.other.rpg","match":"(?i)(?\u003c=^.{5})[HFELICO]"},{"name":"keyword.other.rpg","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{21})(IF|WH|DOW|DOU|CAB|CAS|AND|OR)(GT|LT|EQ|NE|GE|LE)"},{"name":"keyword.other.rpg","match":"(:|\\,|\\-|\\+|\\.)"},{"name":"keyword.other.rpg","match":"(?i)(?\u003c=(?\u003c=^.{5}C).{21})(Z-SUB|Z-ADD|XLATE|XFOOT|WRITE|WH|UPDAT|UNLCK|TIME|TESTZ|TESTN|TESTB|TAG|SUBST|SUB|SQRT|SORTA|SHTDN|SETON|SETOF|SETLL|SETGT|SELEC|SCAN|ROLBK|RETRN|RESET|REL|REDPE|READP|READE|READC|READ|POST|PLIST|PARM|OUT|OTHER|OR|OPEN|OCUR|NEXT|MVR|MULT|MOVEL|MOVEA|MOVE|MLLZO|MLHZO|MHLZO|MHHZO|LOKUP|LEAVE|KLIST|KFLD|ITER|IN|IF|GOTO|FREE|FORCE|FEOD|EXSR|EXFMT|EXCPT|ENDSR|ENDSL|ENDIF|ENDDO|ENDCS|END|ELSE|DUMP|DSPLY|DOW|DOU|DO|DIV|DELET|DEFN|DEBUG|COMP|COMIT|CLOSE|CLEAR|CHEKR|CHECK|CHAIN|CAT|CAS|CALL|CAB|BITON|BITOF|BEGSR|AND|ADD|ACQ)"}]},"sql":{"patterns":[{"name":"variable.other.rpg.sql","begin":"(?i)(?=(?\u003c=^.{5}C)(\\/EXEC\\sSQL))","end":"(?i)(?=(?\u003c=^.{5}C)(\\/END\\-EXEC))","patterns":[{"name":"keyword.other.rpg.sql.precompiler","match":"(?i)(\\/)(EXEC\\s+SQL)"},{"include":"#gutter"},{"name":"keyword.other.rpg.sql.c","match":"(?i)(?\u003c=^.{5})C[+]?"},{"include":"#sqlcommon"}]},{"name":"keyword.other.rpg.sql.precompiler","match":"(?i)(\\/END\\-EXEC)"}]},"sqlcommon":{"patterns":[{"name":"comment.line.rpg.sql","match":"--.*"},{"name":"constant.language.rpg.sql.globals","match":"(?i)\\b(CLIENT_HOST|CLIENT_IPADDR|CLIENT_PORT|JOB_NAME|PACKAGE_NAME|PACKAGE_SCHEMA|PACKAGE_VERSION|PROCESS_ID|ROUTINE_SCHEMA|ROUTINE_SPECIFIC_NAME|ROUTINE_TYPE|SERVER_MODE_JOB_NAME|THREAD_ID)\\b"},{"name":"support.function.rpg.sql","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(?=\\()"},{"name":"constant.language.rpg.sql.schema","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(\\.|\\/)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*"},{"name":"variable.parameter.rpg.sql","match":"[:][a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*"},{"name":"string.other.rpg.sql.hex","match":"(?i)x'[^']*'"},{"name":"string.quoted.single.rpg.sql","match":"'[^']*'"},{"name":"keyword.operator.rpg.sql.reserved","match":"(?i)\\b(ZONE|YES|YEARS|YEAR|XSROBJECT|XSLTRANSFORM|XMLVALIDATE|XMLTEXT|XMLTABLE|XMLSERIALIZE|XMLROW|XMLPI|XMLPARSE|XMLNAMESPACES|XMLGROUP|XMLFOREST|XMLELEMENT|XMLDOCUMENT|XMLCONCAT|XMLCOMMENT|XMLCAST|XMLATTRIBUTES|XMLAGG|WRKSTNNAME|WRITE|WRAPPER|WRAPPED|WITHOUT|WITHIN|WITH|WHILE|WHERE|WHENEVER|WHEN|WAIT|VOLATILE|VIEW|VERSIONING|VERSION|VCAT|VARIANT|VARIABLE|VALUES|VALUE|USING|USERID|USER|USE|USAGE|URI|UPDATING|UPDATE|UNTIL|UNNEST|UNKNOWN|UNIT|UNIQUE|UNION|UNDO|TYPE|TRY_CAST|TRUNCATE|TRUE|TRIM_ARRAY|TRIM|TRIGGER|TRANSFER|TRANSACTION|TO|TIMESTAMP|TIME|THREADSAFE|THEN|TAG|TABLESPACES|TABLESPACE|TABLE|SYSTEM_USER|SYSTEM_TIME|SYNONYM|SUMMARY|SUBSTRING|STOGROUP|STATIC|STATEMENT|STARTING|START|STACKED|SQLWARNING|SQLIND_UNASSIGNED|SQLIND_DEFAULT|SQLID|SQLERROR|SQL|SPECIFIC|SOURCE|SOME|SNAN|SKIP|SIMPLE|SIGNAL|SET|SESSION_USER|SESSION|SEQUENCE|SENSITIVE|SELECT|SECURED|SECQTY|SECONDS|SECOND|SEARCH|SCROLL|SCRATCHPAD|SCHEMA|SCALAR|SBCS|SAVEPOINT|RUN|RRN|ROW_NUMBER|ROWS|ROWNUMBER|ROW|ROUTINE|ROLLUP|ROLLBACK|RIGHT|RID|REVOKE|RETURNS|RETURNING|RETURN|RESULT_SET_LOCATOR|RESULT|RESTRICT|RESTART|RESIGNAL|RESET|REPEAT|RENAME|RELEASE|REGEXP_LIKE|REFRESH|REFERENCING|REFERENCES|RECOVERY|READS|READ|RCDFMT|RATIO_TO_REPORT|RANK|RANGE|QUERY|PROGRAMID|PROGRAM|PROCEDURE|PRIVILEGES|PRIQTY|PRIOR|PRIMARY|PREVVAL|PREPARE|POSITION|PLAN|PIPE|PIECESIZE|PERMISSION|PERIOD|PERCENT_RANK|PERCENTILE_DISC|PERCENTILE_CONT|PCTFREE|PATH|PASSWORD|PASSING|PARTITIONS|PARTITIONING|PARTITIONED|PARTITION|PART|PARAMETER|PAGESIZE|PAGE|PADDED|PACKAGE|OVERRIDING|OVERLAY|OVER|OUTER|OUT|ORGANIZE|ORDINALITY|ORDER|OR|OPTION|OPTIMIZE|OPEN|ONLY|ON|OMIT|OLD_TABLE|OLD|OFFSET|OFF|OF|OBJECT|OBID|NVARCHAR|NULLS|NULL|NTILE|NTH_VALUE|NOTNULL|NOT|NORMALIZED|NOORDER|NONE|NOMINVALUE|NOMAXVALUE|NODENUMBER|NODENAME|NOCYCLE|NOCACHE|NO|NEXTVAL|NEW_TABLE|NEW|NESTED|NCLOB|NCHAR|NATIONAL|NAN|NAMESPACE|MONTHS|MONTH|MODIFIES|MODE|MIXED|MIRROR|MINVALUE|MINUTES|MINUTE|MINPCTUSED|MICROSECONDS|MICROSECOND|MERGE|MAXVALUE|MATERIALIZED|MATCHED|MASK|MAINTAINED|LOOP|LONG|LOGGED|LOG|LOCKSIZE|LOCK|LOCATOR|LOCATION|LOCALTIMESTAMP|LOCALTIME|LOCALDATE|LOCAL|LISTAGG|LINKTYPE|LIMIT|LIKE|LEVEL2|LEFT|LEAVE|LEAD|LATERAL|LAST_VALUE|LANGUAGE|LAG|LABEL|KEYS|KEY|KEEP|JSON_VALUE|JSON_TABLE|JSON_QUERY|JSON_OBJECTAGG|JSON_OBJECT|JSON_EXISTS|JSON_ARRAYAGG|JSON_ARRAY|JSON|JOIN|JAVA|ITERATE|ISOLATION|ISNULL|IS|INTO|INTERSECT|INTERPRET|INTEGRITY|INSERTING|INSERT|INSENSITIVE|INOUT|INNER|INLINE|INHERIT|INFINITY|INF|INDICATOR|INDEXBP|INDEX|INCREMENT|INCLUSIVE|INCLUDING|INCLUDE|IN|IMPLICITLY|IMMEDIATE|IGNORE|IF|IDENTITY|ID|HOURS|HOUR|HOLD|HINT|HAVING|HASH_ROW|HASHED_VALUE|HASH|HANDLER|GROUP|GRAPHIC|GRANT|GOTO|GO|GLOBAL|GET|GENERATED|GENERAL|GBPCACHE|FUNCTION|FULL|FROM|FREEPAGE|FREE|FOUND|FORMAT|FOREIGN|FOR|FIRST_VALUE|FINAL|FILE|FIELDPROC|FETCH|FENCED|FALSE|EXTRACT|EXTERNAL|EXTEND|EXIT|EXISTS|EXECUTE|EXCLUSIVE|EXCLUDING|EXCEPTION|EXCEPT|EVERY|ESCAPE|ERROR|ENFORCED|ENDING|END|ENCRYPTION|ENCODING|ENABLE|EMPTY|ELSEIF|ELSE|EACH|DYNAMIC|DROP|DOUBLE|DOCUMENT|DO|DISTINCT|DISCONNECT|DISALLOW|DISABLE|DIAGNOSTICS|DETERMINISTIC|DETACH|DESCRIPTOR|DESCRIBE|DESC|DENSE_RANK|DENSERANK|DELETING|DELETE|DEFINITION|DEFINE|DEFER|DEFAULTS|DEFAULT|DECLARE|DEALLOCATE|DEACTIVATE|DBPARTITIONNUM|DBPARTITIONNAME|DBINFO|DB2SQL|DB2GENRL|DB2GENERAL|DAYS|DAY|DATE|DATAPARTITIONNUM|DATAPARTITIONNAME|DATABASE|DATA|CYCLE|CURSOR|CURRENT_USER|CURRENT_TIMEZONE|CURRENT_TIMESTAMP|CURRENT_TIME|CURRENT_SERVER|CURRENT_SCHEMA|CURRENT_PATH|CURRENT_DATE|CURRENT|CUME_DIST|CUBE|CROSS|CREATEIN|CREATE|COUNT_BIG|COUNT|COPY|CONTINUE|CONTENT|CONTAINS|CONSTRAINT|CONSTANT|CONNECT_BY_ROOT|CONNECTION|CONNECT|CONDITION|CONCURRENT|CONCAT|COMPRESS|COMPARISONS|COMPACT|COMMIT|COMMENT|COLUMN|COLLECTION|COLLECT|CLUSTER|CLOSE|CL|CHECK|CHARACTER|CHAR|CCSID|CAST|CASE|CARDINALITY|CALLED|CALL|CACHE|BY|BUFFERPOOL|BSON|BOOLEAN|BIT|BIND|BINARY|BETWEEN|BEGIN|BEFORE|AUTONOMOUS|AUTHORIZATION|ATTRIBUTES|ATTACH|ATOMIC|AT|ASSOCIATE|ASENSITIVE|ASC|AS|ARRAY_TRIM|ARRAY_AGG|ARRAY|APPLNAME|APPEND|ANY|AND|ALTER|ALLOW|ALLOCATE|ALL|ALIAS|ADD|ACTIVATE|ACTION|ACCTNG|ACCORDING|ABSENT)\\b"},{"include":"#sqlvariables"},{"name":"constant.numeric.rpg.sql","match":"\\b[0-9]+(\\.[0-9]+)?\\b"},{"name":"keyword.operator.rpg.sql","match":"(\\|\\||\\*\\*|\u003c\u003e|\u003c=|\u003e=|[¬!][=\u003c\u003e]|[=\u003c\u003e+\\-*/])"}]},"sqlvariables":{"patterns":[{"name":"variable.language.rpg.sql","match":"(?i)(SQLWRN|SQLWNA|SQLWN9|SQLWN8|SQLWN7|SQLWN6|SQLWN5|SQLWN4|SQLWN3|SQLWN2|SQLWN1|SQLWN0|SQLWARN|SQLSTT|SQLSTATE|SQLCODE|SQLCOD|SQLERRP|SQLERRML|SQLERRMC|SQLERRD|SQLERR|SQLERP|SQLERM|SQLERL|SQLER6|SQLER5|SQLER4|SQLER3|SQLER2|SQLER1)"}]},"strings":{"patterns":[{"name":"string.other.rpg.hex","begin":"(?i)(?\u003c=^.{5}I\\s{14})x'","end":"'|(?\u003c=^.{5}I.{36})"},{"name":"string.quoted.single.rpg","begin":"(?\u003c=^.{5}I\\s{14})'","end":"'|(?\u003c=^.{5}I.{36})"},{"name":"string.other.rpg.hex","begin":"(?i)x'","end":"(\\n|')"},{"name":"string.quoted.single.rpg","begin":"'","end":"(\n|')"}]}}}
|