github-linguist 9.5.0 → 9.6.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/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.apex.json +1 -1
- data/grammars/source.baml-jinja.json +1 -0
- data/grammars/source.baml.json +1 -0
- data/grammars/source.bb.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.cel.json +1 -0
- data/grammars/source.clarion.json +1 -1
- data/grammars/source.cmake.json +1 -1
- data/grammars/source.cs.json +1 -1
- data/grammars/source.csv.json +1 -1
- data/grammars/source.curlrc.json +1 -1
- data/grammars/source.daslang.json +1 -1
- data/grammars/source.data-weave.json +1 -1
- data/grammars/source.emacs.lisp.json +1 -1
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.gimprc.json +1 -0
- data/grammars/source.gimpres.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.il.json +1 -0
- data/grammars/source.ink.json +1 -1
- 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.just.json +1 -1
- data/grammars/source.lean4.markdown.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.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.opy.json +1 -0
- data/grammars/source.pic.json +1 -1
- data/grammars/source.pkgconf.json +1 -0
- data/grammars/source.powerquery.json +1 -0
- data/grammars/source.powershell.json +1 -1
- data/grammars/source.prisma.json +1 -1
- data/grammars/source.quint.json +1 -0
- data/grammars/source.rascal.json +1 -1
- 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.slang.json +1 -1
- data/grammars/source.slint.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.surrealql.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.uri-list.json +1 -0
- data/grammars/source.v.json +1 -1
- data/grammars/source.wgsl.json +1 -1
- data/grammars/spicedb-yaml.injection.json +1 -0
- data/grammars/text.cachedir.json +1 -0
- data/grammars/text.cookie-jar.json +1 -0
- data/grammars/text.html.vue.json +1 -1
- data/grammars/text.mac-tts.json +1 -0
- data/grammars/text.roff.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/classifier.rb +2 -1
- data/lib/linguist/generated.rb +16 -0
- data/lib/linguist/generic.yml +2 -0
- data/lib/linguist/heuristics.yml +17 -0
- data/lib/linguist/language.rb +8 -0
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +139 -12
- data/lib/linguist/lazy_blob.rb +19 -1
- data/lib/linguist/samples.json +1 -1
- data/lib/linguist/vendor.yml +3 -0
- metadata +25 -1
data/grammars/source.prisma.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Prisma","scopeName":"source.prisma","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#model_block_definition"},{"include":"#config_block_definition"},{"include":"#enum_block_definition"},{"include":"#type_definition"}],"repository":{"array":{"name":"source.prisma.array","begin":"\\[","end":"\\]","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}}},"assignment":{"patterns":[{"begin":"^\\s*(\\w+)\\s*(=)\\s*","end":"\\n","patterns":[{"include":"#value"},{"include":"#double_comment_inline"}],"beginCaptures":{"1":{"name":"variable.other.assignment.prisma"},"2":{"name":"keyword.operator.terraform"}}}]},"attribute":{"name":"source.prisma.attribute","match":"(@@?[\\w\\.]+)","captures":{"1":{"name":"entity.name.function.attribute.prisma"}}},"attribute_with_arguments":{"name":"source.prisma.attribute.with_arguments","begin":"(@@?[\\w\\.]+)(\\()","end":"\\)","patterns":[{"include":"#named_argument"},{"include":"#value"}],"beginCaptures":{"1":{"name":"entity.name.function.attribute.prisma"},"2":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"boolean":{"name":"constant.language.boolean.prisma","match":"\\b(true|false)\\b"},"config_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(generator|datasource)\\s+([A-Za-z][\\w]*)\\s+({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#assignment"}],"beginCaptures":{"1":{"name":"storage.type.config.prisma"},"2":{"name":"entity.name.type.config.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}}},"double_comment":{"name":"comment.prisma","begin":"//","end":"$\\n?"},"double_comment_inline":{"name":"comment.prisma","match":"//[^\\n]*"},"double_quoted_string":{"name":"unnamed","begin":"\"","end":"\"","patterns":[{"include":"#string_interpolation"},{"name":"string.quoted.double.prisma","match":"([\\w\\-\\/\\._\\\\%@:\\?=]+)"}],"beginCaptures":{"0":{"name":"string.quoted.double.start.prisma"}},"endCaptures":{"0":{"name":"string.quoted.double.end.prisma"}}},"enum_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(enum)\\s+([A-Za-z][\\w]*)\\s+({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#enum_value_definition"}],"beginCaptures":{"1":{"name":"storage.type.enum.prisma"},"2":{"name":"entity.name.type.enum.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"enum_value_definition":{"patterns":[{"match":"^\\s*(\\w+)\\s*","captures":{"1":{"name":"variable.other.assignment.prisma"}}},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"field_definition":{"name":"scalar.field","patterns":[{"match":"^\\s*(\\w+)(\\s*:)?\\s+((?!(?:Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\b)\\b\\w+)?(Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\[\\])?(\\?)?(\\!)?","captures":{"1":{"name":"variable.other.assignment.prisma"},"2":{"name":"invalid.illegal.colon.prisma"},"3":{"name":"variable.language.relations.prisma"},"4":{"name":"support.type.primitive.prisma"},"5":{"name":"keyword.operator.list_type.prisma"},"6":{"name":"keyword.operator.optional_type.prisma"},"7":{"name":"invalid.illegal.required_type.prisma"}}},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"functional":{"name":"source.prisma.functional","begin":"(\\w+)(\\()","end":"\\)","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"support.function.functional.prisma"},"2":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"identifier":{"patterns":[{"name":"support.constant.constant.prisma","match":"\\b(\\w)+\\b"}]},"literal":{"name":"source.prisma.literal","patterns":[{"include":"#boolean"},{"include":"#number"},{"include":"#double_quoted_string"},{"include":"#identifier"}]},"map_key":{"name":"source.prisma.key","patterns":[{"match":"(\\w+)\\s*(:)\\s*","captures":{"1":{"name":"variable.parameter.key.prisma"},"2":{"name":"punctuation.definition.separator.key-value.prisma"}}}]},"model_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(model|type|view)\\s+([A-Za-z][\\w]*)\\s*({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#field_definition"}],"beginCaptures":{"1":{"name":"storage.type.model.prisma"},"2":{"name":"entity.name.type.model.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"multi_line_comment":{"name":"comment.prisma","begin":"/\\*","end":"\\*/"},"named_argument":{"name":"source.prisma.named_argument","patterns":[{"include":"#map_key"},{"include":"#value"}]},"number":{"name":"constant.numeric.prisma","match":"((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b"},"string_interpolation":{"patterns":[{"name":"source.tag.embedded.source.prisma","begin":"\\$\\{","end":"\\s*\\}","patterns":[{"include":"#value"}],"beginCaptures":{"0":{"name":"keyword.control.interpolation.start.prisma"}},"endCaptures":{"0":{"name":"keyword.control.interpolation.end.prisma"}}}]},"triple_comment":{"name":"comment.prisma","begin":"///","end":"$\\n?"},"type_definition":{"patterns":[{"match":"^\\s*(type)\\s+(\\w+)\\s*=\\s*(\\w+)","captures":{"1":{"name":"storage.type.type.prisma"},"2":{"name":"entity.name.type.type.prisma"},"3":{"name":"support.type.primitive.prisma"}}},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"value":{"name":"source.prisma.value","patterns":[{"include":"#array"},{"include":"#functional"},{"include":"#literal"}]}}}
|
|
1
|
+
{"name":"Prisma","scopeName":"source.prisma","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#types_block_definition"},{"include":"#namespace_block_definition"},{"include":"#model_block_definition"},{"include":"#config_block_definition"},{"include":"#enum_block_definition"},{"include":"#type_definition"}],"repository":{"array":{"name":"source.prisma.array","begin":"\\[","end":"\\]","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}}},"assignment":{"patterns":[{"begin":"^\\s*(\\w+)\\s*(=)\\s*","end":"\\n","patterns":[{"include":"#value"},{"include":"#double_comment_inline"}],"beginCaptures":{"1":{"name":"variable.other.assignment.prisma"},"2":{"name":"keyword.operator.terraform"}}}]},"attribute":{"name":"source.prisma.attribute","match":"(@@?[\\w\\.]+)","captures":{"1":{"name":"entity.name.function.attribute.prisma"}}},"attribute_with_arguments":{"name":"source.prisma.attribute.with_arguments","begin":"(@@?[\\w\\.]+)(\\()","end":"\\)","patterns":[{"include":"#named_argument"},{"include":"#value"}],"beginCaptures":{"1":{"name":"entity.name.function.attribute.prisma"},"2":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"boolean":{"name":"constant.language.boolean.prisma","match":"\\b(true|false)\\b"},"config_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(generator|datasource)\\s+([A-Za-z][\\w]*)\\s+({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#assignment"}],"beginCaptures":{"1":{"name":"storage.type.config.prisma"},"2":{"name":"entity.name.type.config.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}}},"double_comment":{"name":"comment.prisma","begin":"//","end":"$\\n?"},"double_comment_inline":{"name":"comment.prisma","match":"//[^\\n]*"},"double_quoted_string":{"name":"unnamed","begin":"\"","end":"\"","patterns":[{"include":"#string_interpolation"},{"name":"string.quoted.double.prisma","match":"([\\w\\-\\/\\._\\\\%@:\\?=]+)"}],"beginCaptures":{"0":{"name":"string.quoted.double.start.prisma"}},"endCaptures":{"0":{"name":"string.quoted.double.end.prisma"}}},"enum_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(enum)\\s+([A-Za-z][\\w]*)\\s+({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#enum_value_definition"}],"beginCaptures":{"1":{"name":"storage.type.enum.prisma"},"2":{"name":"entity.name.type.enum.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"enum_value_definition":{"patterns":[{"match":"^\\s*(\\w+)\\s*","captures":{"1":{"name":"variable.other.assignment.prisma"}}},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"field_definition":{"name":"scalar.field","patterns":[{"match":"^\\s*(\\w+)(\\s*:)?\\s+((?!(?:Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\b)\\b\\w+)?(Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\[\\])?(\\?)?(\\!)?","captures":{"1":{"name":"variable.other.assignment.prisma"},"2":{"name":"invalid.illegal.colon.prisma"},"3":{"name":"variable.language.relations.prisma"},"4":{"name":"support.type.primitive.prisma"},"5":{"name":"keyword.operator.list_type.prisma"},"6":{"name":"keyword.operator.optional_type.prisma"},"7":{"name":"invalid.illegal.required_type.prisma"}}},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"functional":{"name":"source.prisma.functional","begin":"(\\w+)(\\()","end":"\\)","patterns":[{"include":"#value"}],"beginCaptures":{"1":{"name":"support.function.functional.prisma"},"2":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"identifier":{"patterns":[{"name":"support.constant.constant.prisma","match":"\\b(\\w)+\\b"}]},"literal":{"name":"source.prisma.literal","patterns":[{"include":"#boolean"},{"include":"#number"},{"include":"#double_quoted_string"},{"include":"#identifier"}]},"map_key":{"name":"source.prisma.key","patterns":[{"match":"(\\w+)\\s*(:)\\s*","captures":{"1":{"name":"variable.parameter.key.prisma"},"2":{"name":"punctuation.definition.separator.key-value.prisma"}}}]},"model_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(model|type|view)\\s+([A-Za-z][\\w]*)\\s*({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#field_definition"}],"beginCaptures":{"1":{"name":"storage.type.model.prisma"},"2":{"name":"entity.name.type.model.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"multi_line_comment":{"name":"comment.prisma","begin":"/\\*","end":"\\*/"},"named_argument":{"name":"source.prisma.named_argument","patterns":[{"include":"#map_key"},{"include":"#value"}]},"namespace_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(namespace)\\s+([A-Za-z][\\w]*)\\s*({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#model_block_definition"},{"include":"#enum_block_definition"},{"include":"#type_definition"}],"beginCaptures":{"1":{"name":"storage.type.namespace.prisma"},"2":{"name":"entity.name.type.namespace.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"number":{"name":"constant.numeric.prisma","match":"((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b"},"string_interpolation":{"patterns":[{"name":"source.tag.embedded.source.prisma","begin":"\\$\\{","end":"\\s*\\}","patterns":[{"include":"#value"}],"beginCaptures":{"0":{"name":"keyword.control.interpolation.start.prisma"}},"endCaptures":{"0":{"name":"keyword.control.interpolation.end.prisma"}}}]},"triple_comment":{"name":"comment.prisma","begin":"///","end":"$\\n?"},"type_alias_definition":{"patterns":[{"match":"^\\s*(\\w+)\\s*(=)\\s*(\\w+)","captures":{"1":{"name":"entity.name.type.alias.prisma"},"2":{"name":"keyword.operator.assignment.prisma"},"3":{"name":"support.type.primitive.prisma"}}},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"type_definition":{"patterns":[{"match":"^\\s*(type)\\s+(\\w+)\\s*=\\s*(\\w+)","captures":{"1":{"name":"storage.type.type.prisma"},"2":{"name":"entity.name.type.type.prisma"},"3":{"name":"support.type.primitive.prisma"}}},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"types_block_definition":{"name":"source.prisma.embedded.source","begin":"^\\s*(types)\\s*({)","end":"\\s*\\}","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#type_alias_definition"}],"beginCaptures":{"1":{"name":"storage.type.types.prisma"},"2":{"name":"punctuation.definition.tag.prisma"}},"endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}}},"value":{"name":"source.prisma.value","patterns":[{"include":"#array"},{"include":"#functional"},{"include":"#literal"}]}}}
|
|
@@ -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":"\""}}}
|
data/grammars/source.rascal.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Rascal","scopeName":"source.rascal","patterns":[{"include":"#top_level"}],"repository":{"annotation":{"patterns":[{"name":"comment.block.annotation.rascal","begin":"(@[^ {]+)({)","end":"(})","beginCaptures":{"1":{"name":"storage.type.annotation.block.rascal"},"2":{"name":"punctuation.annotation-argument.begin.rascal"}},"endCaptures":{"1":{"name":"punctuation.annotation-argument.end.rascal"}}},{"name":"meta.annotation.inline.rascal","match":"(@[A-Za-z_0-9]+)","captures":{"1":{"name":"storage.type.annotation.inline.rascal"}}}]},"char_set":{"patterns":[{"name":"punctuation.other.lexicalcharset.rascal","begin":"\\[","end":"\\]","patterns":[{"include":"#string_escape"}]}]},"comment":{"patterns":[{"name":"comment.line.double-slash.rascal","match":"//.*$\\n?"},{"name":"comment.block.rascal","begin":"/\\*","end":"\\*/"}]},"regex":{"patterns":[{"name":"string.regexp.rascal","
|
|
1
|
+
{"name":"Rascal","scopeName":"source.rascal","patterns":[{"include":"#top_level"}],"repository":{"annotation":{"patterns":[{"name":"comment.block.annotation.rascal","begin":"(@[^ {]+)({)","end":"(})","beginCaptures":{"1":{"name":"storage.type.annotation.block.rascal"},"2":{"name":"punctuation.annotation-argument.begin.rascal"}},"endCaptures":{"1":{"name":"punctuation.annotation-argument.end.rascal"}}},{"name":"meta.annotation.inline.rascal","match":"(@[A-Za-z_0-9]+)","captures":{"1":{"name":"storage.type.annotation.inline.rascal"}}}]},"char_set":{"patterns":[{"name":"punctuation.other.lexicalcharset.rascal","begin":"\\[","end":"\\]","patterns":[{"include":"#string_escape"}]}]},"comment":{"patterns":[{"name":"comment.line.double-slash.rascal","match":"//.*$\\n?"},{"name":"comment.block.rascal","begin":"/\\*","end":"\\*/"}]},"regex":{"patterns":[{"name":"string.regexp.rascal","end":"/([dims]*)","patterns":[{"include":"#regex_escape"},{"include":"#string_interpolation"}],"endCaptures":{"1":{"name":"storage.modifier.regex.rascal"}}}]},"regex_escape":{"patterns":[{"name":"constant.character.escape.regex.rascal","match":"\\\\(/|\u003c|\u003e|\\\\)"}]},"string":{"patterns":[{"name":"string.quoted.single.rascal","begin":"'","end":"'","patterns":[{"include":"#string_escape"}]},{"name":"string.quoted.double.rascal","begin":"\"","end":"\"","patterns":[{"include":"#string_escape"},{"include":"#string_interpolation"}]},{"name":"string.interpolated.rascal","begin":"`","end":"`","patterns":[{"include":"#string_interpolation"},{"include":"#syntax_escape"}]}]},"string_escape":{"patterns":[{"name":"constant.character.escape.ordinary.rascal","match":"\\\\(\\\"|\\'|\u003c|\u003e|\\\\|[bnfrt])"},{"name":"constant.character.escape.unicode.rascal","match":"\\\\(u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f] |U(0[0-9 A-F a-f]|10)[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f] |a[0-7][0-9A-Fa-f] )"}]},"string_interpolation":{"patterns":[{"name":"support.interpolated-string.rascal","begin":"(\u003c)","end":"(\u003e)","patterns":[{"include":"#top_level"}],"beginCaptures":{"1":{"name":"punctuation.interpolation.begin.rascal"}},"endCaptures":{"2":{"name":"punctuation.interpolation.end.rascal"}}}]},"syntax_escape":{"patterns":[{"name":"constant.character.escape.syntax.rascal","match":"\\\\(\\\\|\u003c|\u003e|`)"}]},"top_level":{"patterns":[{"name":"punctuation.other.syntactic.rascal","begin":"(lexical|syntax)\\s+([a-zA-Z][A-Za-z_0-9]*)","end":";","patterns":[{"include":"#char_set"},{"include":"#string"},{"include":"#comment"},{"include":"#regex"},{"include":"#annotation"}],"captures":{"1":{"name":"keyword.control.rascal"},"2":{"name":"entity.name.type.rascal"}}},{"name":"constant.numeric.decimal.rascal","match":"(?\u003c![A-Za-z_])(0(?![0-9a-z_A-Z])|[1-9][0-9]*(?![0-9a-z_A-Z]))"},{"name":"constant.numeric.hex.rascal","match":"(?\u003c![A-Za-z_])0[Xx][0-9A-Fa-f]+(?![0-9a-z_A-Z])"},{"name":"constant.numeric.octal.rascal","match":"(?\u003c![A-Za-z_])0[0-7]+(?![0-9a-z_A-Z])"},{"name":"string.other.datetime.rascal","begin":"\\\\$","end":"\\\\$"},{"name":"constant.numeric.real.rascal","match":"(?\u003c![A-Za-z_]) ([0-9]+[dDfF] |[0-9]+[eE][+\\-]?[0-9]+[dDfF]? |[0-9]+\\.(?!\\.)[0-9]*[dDfF]? |[0-9]+\\.[0-9]*[eE][+\\-]?[0-9]+[dDfF]? |\\.(?!\\.)[0-9]+[dDfF]? |\\.(?!\\.)[0-9]+[eE][+\\-]?[0-9]+[dDfF]? )"},{"name":"constant.language.bool.rascal","match":"\\b(true|false)\\b"},{"name":"constant.numeric.rational.rascal","match":"(?\u003c![A-Za-z_])([0-9][0-9]*r|[1-9][0-9]*r[0-9][0-9]*(?![0-9a-z_A-Z]))"},{"name":"keyword.control.rascal","match":"\\b(syntax|keyword|lexical|break|continue|finally|private|fail|filter|if|tag|extend|append|non-assoc|assoc|test|anno|layout|data|join|it|bracket|in|import|all|solve|try|catch|notin|else|insert|switch|return|case|while|throws|visit|for|assert|default|map|alias|any|module|mod|public|one|throw|start)\\b"},{"name":"support.type.basic.rascal","match":"\\b(value|loc|node|num|type|bag|int|rat|rel|lrel|real|tuple|str|bool|void|datetime|set|map|list)\\b"},{"include":"#string"},{"include":"#regex"},{"include":"#annotation"},{"include":"#comment"},{"name":"variable.other.ordinary.rascal","match":"\\b[a-zA-Z][A-Za-z_0-9]*\\b"},{"name":"variable.other.escaped-keyword.rascal","match":"\\\\(syntax|keyword|lexical|break|continue|finally|private|fail|filter|if|tag|extend|append|non-assoc|assoc|test|anno|layout|data|join|it|bracket|in|import|all|solve|try|catch|notin|else|insert|switch|return|case|while|throws|visit|for|assert|default|map|alias|any|module|mod|public|one|throw|start|value|loc|node|num|type|bag|int|rat|rel|lrel|real|tuple|str|bool|void|datetime|set|map|list)"},{"name":"string.other.url.rascal","match":"\\|([0-9a-z_A-Z.\\-_~:/?#\\[\\]@!$\u0026'()*+,;=`])+\\|","captures":{"1":{"name":"markup.underline.link.rascal"}}}]}}}
|
|
@@ -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"}]}}}
|