github-linguist 9.6.0 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/grammars/gno.mod.json +1 -0
- data/grammars/source.abl.json +1 -1
- data/grammars/source.aleo.json +1 -0
- data/grammars/source.astro.json +1 -1
- data/grammars/source.baml.json +1 -1
- data/grammars/source.bird2.json +1 -0
- data/grammars/source.blueprint.json +1 -0
- data/grammars/source.bnd.json +1 -1
- data/grammars/source.bsl.json +1 -1
- data/grammars/source.carbon.json +1 -0
- data/grammars/source.cl.json +1 -1
- data/grammars/source.clar.json +1 -1
- data/grammars/source.clarion.json +1 -1
- data/grammars/source.cmd.json +1 -1
- data/grammars/source.comment-string.wesl.json +1 -1
- data/grammars/source.comment-string.wgsl.json +1 -1
- data/grammars/source.cs.json +1 -1
- data/grammars/source.csswg.json +1 -1
- data/grammars/source.curlrc.json +1 -1
- data/grammars/source.dart.json +1 -1
- data/grammars/source.dds.dspf.json +1 -1
- data/grammars/source.dds.icff.json +1 -1
- data/grammars/source.dds.lf.json +1 -1
- data/grammars/source.dds.pf.json +1 -1
- data/grammars/source.dds.prtf.json +1 -1
- data/grammars/source.deq.json +1 -0
- data/grammars/source.fift.json +1 -0
- data/grammars/source.flix.json +1 -1
- data/grammars/source.fpp.json +1 -0
- data/grammars/source.func.json +1 -0
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.gedcom.json +1 -1
- data/grammars/source.gitconfig.json +1 -1
- data/grammars/source.gno.json +1 -0
- data/grammars/source.graphql.json +1 -1
- data/grammars/source.hack.json +1 -1
- data/grammars/source.hx.json +1 -1
- data/grammars/source.hxml.json +1 -1
- data/grammars/source.ink.json +1 -1
- data/grammars/source.jac.json +1 -1
- data/grammars/source.jass.json +1 -0
- data/grammars/source.julia.json +1 -1
- data/grammars/source.kcl.json +1 -1
- data/grammars/source.koka.json +1 -1
- data/grammars/source.leo.json +1 -1
- data/grammars/source.lobster.json +1 -0
- data/grammars/source.logos.json +1 -1
- data/grammars/source.luau.json +1 -1
- data/grammars/source.m2.json +1 -1
- data/grammars/source.mi.json +1 -1
- data/grammars/source.mojo.json +1 -1
- data/grammars/source.ms.json +1 -0
- data/grammars/source.nim.json +1 -1
- data/grammars/source.openqasm.json +1 -1
- data/grammars/source.opy.json +1 -1
- data/grammars/source.paperspecs.json +1 -0
- data/grammars/source.pl.json +1 -0
- data/grammars/source.pnlgrp.json +1 -1
- data/grammars/source.qsharp.json +1 -1
- data/grammars/source.rarlist.json +1 -0
- data/grammars/source.rascal.json +1 -1
- data/grammars/source.rego.json +1 -1
- data/grammars/source.rhai.json +1 -0
- data/grammars/source.rpg.json +1 -1
- data/grammars/source.rpgle.json +1 -1
- data/grammars/source.rust.json +1 -1
- data/grammars/source.scala.json +1 -1
- data/grammars/source.smithy.json +1 -1
- data/grammars/source.spicedb.json +1 -1
- data/grammars/source.stim.json +1 -0
- data/grammars/source.surrealql.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.tasm.json +1 -0
- data/grammars/source.tlb.json +1 -0
- data/grammars/source.tolk.json +1 -0
- data/grammars/source.ucode-template.json +1 -0
- data/grammars/source.ucode.json +1 -0
- data/grammars/source.vento.json +1 -1
- data/grammars/source.verse.json +1 -0
- data/grammars/source.vespaSchema.json +1 -0
- data/grammars/source.vhs.json +1 -0
- data/grammars/source.wgsl.json +1 -1
- data/grammars/source.yaml.salt.json +1 -1
- data/grammars/text.bbcode.json +1 -0
- data/grammars/text.html.handlebars.json +1 -1
- data/grammars/text.recfile.json +1 -0
- data/grammars/text.roff.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/blob_helper.rb +19 -0
- data/lib/linguist/generated.rb +24 -0
- data/lib/linguist/generic.yml +1 -0
- data/lib/linguist/heuristics.yml +80 -5
- data/lib/linguist/language.rb +5 -9
- data/lib/linguist/languages.yml +231 -27
- data/lib/linguist/languages_data.rb +7663 -0
- data/lib/linguist/lazy_blob.rb +6 -1
- data/lib/linguist/samples.rb +4 -10
- data/lib/linguist/samples_data.rb +196100 -0
- metadata +31 -19
- data/grammars/markdown.bicep.codeblock.json +0 -1
- data/grammars/source.baml-jinja.json +0 -1
- data/lib/linguist/languages.json +0 -1
- data/lib/linguist/samples.json +0 -1
data/grammars/source.hx.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Haxe","scopeName":"source.hx","patterns":[{"include":"#all"}],"repository":{"abstract":{"name":"meta.abstract.hx","begin":"(?=abstract\\s+[A-Z])","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#abstract-name"},{"include":"#abstract-name-post"},{"include":"#abstract-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"abstract-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#modifiers"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"abstract-name":{"begin":"\\b(abstract)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"abstract-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#global"},{"name":"keyword.other.hx","match":"\\b(from|to)\\b"},{"include":"#type"},{"name":"punctuation.definition.other.hx","match":"[\\(\\)]"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"accessor-method":{"patterns":[{"name":"entity.name.function.hx","match":"\\b(get|set)_[_A-Za-z]\\w*\\b"}]},"all":{"patterns":[{"include":"#global"},{"include":"#package"},{"include":"#import"},{"include":"#using"},{"name":"storage.modifier.hx","match":"\\b(final)\\b(?=\\s+(class|interface|extern|private)\\b)"},{"include":"#abstract"},{"include":"#class"},{"include":"#enum"},{"include":"#interface"},{"include":"#typedef"},{"include":"#block"},{"include":"#block-contents"}]},"array":{"name":"meta.array.literal.hx","begin":"\\[","end":"\\]","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.hx"}}},"arrow-function":{"name":"meta.method.arrow.hx","begin":"(\\()(?=[^(]*?\\)\\s*-\u003e)","end":"(\\))\\s*(-\u003e)","patterns":[{"include":"#arrow-function-parameter"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.hx"},"2":{"name":"storage.type.function.arrow.hx"}}},"arrow-function-parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)|,)","patterns":[{"include":"#parameter-name"},{"include":"#arrow-function-parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#punctuation-comma"},{"include":"#global"}]},"arrow-function-parameter-type-hint":{"begin":":","end":"(?=\\)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"block":{"begin":"\\{","end":"\\}","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.hx"}}},"block-contents":{"patterns":[{"include":"#global"},{"include":"#regex"},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"include":"#metadata"},{"include":"#method"},{"include":"#variable"},{"include":"#modifiers"},{"include":"#new-expr"},{"include":"#for-loop"},{"include":"#keywords"},{"include":"#arrow-function"},{"include":"#method-call"},{"include":"#enum-constructor-call"},{"include":"#punctuation-braces"},{"include":"#macro-reification"},{"include":"#operators"},{"include":"#operator-assignment"},{"include":"#punctuation-terminator"},{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"},{"include":"#identifiers"}]},"class":{"name":"meta.class.hx","begin":"(?=class)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#class-name"},{"include":"#class-name-post"},{"include":"#class-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"class-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#modifiers"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"class-name":{"name":"meta.class.identifier.hx","begin":"\\b(class)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"class-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#modifiers-inheritance"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"comments":{"patterns":[{"name":"comment.block.documentation.hx","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#javadoc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.hx"}}},{"name":"comment.block.hx","begin":"/\\*","end":"\\*/","patterns":[{"include":"#javadoc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.hx"}}},{"name":"comment.line.double-slash.hx","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.hx"}}}]},"conditional-compilation":{"patterns":[{"match":"((#(if|elseif))[\\s!]+([a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\\s|/\\*|//))","captures":{"0":{"name":"punctuation.definition.tag"}}},{"name":"punctuation.definition.tag","begin":"((#(if|elseif))[\\s!]*)(?=\\()","end":"(?\u003c=\\)|\\n)","patterns":[{"include":"#conditional-compilation-parens"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag"}},"endCaptures":{"0":{"name":"punctuation.definition.tag"}}},{"name":"punctuation.definition.tag","match":"(#(end|else|error|line))"},{"name":"punctuation.definition.tag","match":"(#([a-zA-Z0-9_]*))\\s"}]},"conditional-compilation-parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#conditional-compilation-parens"}]},"constant-name":{"name":"variable.other.hx","match":"\\b([_A-Z][_A-Z0-9]*)\\b"},"constants":{"patterns":[{"name":"constant.language.hx","match":"\\b(true|false|null)\\b"},{"match":"\\b(?:0[xX][0-9a-fA-F][_0-9a-fA-F]*([iu][0-9][0-9_]*)?)\\b","captures":{"0":{"name":"constant.numeric.hex.hx"},"1":{"name":"constant.numeric.suffix.hx"}}},{"match":"\\b(?:0[bB][01][_01]*([iu][0-9][0-9_]*)?)\\b","captures":{"0":{"name":"constant.numeric.bin.hx"},"1":{"name":"constant.numeric.suffix.hx"}}},{"match":"(?x)\n(?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9_]+[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # 1.1E+3f64\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # 1.E+3f64\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # .1E+3f64\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\b)| # 1E+3f64\n (?:\\b[0-9][0-9_]*(\\.)[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # 1.1f64\n (?:\\b[0-9][0-9_]*(\\.)(?!\\.)(?:\\B|([fiu][0-9][0-9_]*)\\b))| # 1.f64\n (?:\\B(\\.)[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\b)| # .1f64\n (?:\\b[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\b) # 1u64\n)(?!\\$)","captures":{"0":{"name":"constant.numeric.decimal.hx"},"1":{"name":"meta.delimiter.decimal.period.hx"},"10":{"name":"meta.delimiter.decimal.period.hx"},"11":{"name":"constant.numeric.suffix.hx"},"12":{"name":"meta.delimiter.decimal.period.hx"},"13":{"name":"constant.numeric.suffix.hx"},"14":{"name":"constant.numeric.suffix.hx"},"2":{"name":"constant.numeric.suffix.hx"},"3":{"name":"meta.delimiter.decimal.period.hx"},"4":{"name":"constant.numeric.suffix.hx"},"5":{"name":"meta.delimiter.decimal.period.hx"},"6":{"name":"constant.numeric.suffix.hx"},"7":{"name":"constant.numeric.suffix.hx"},"8":{"name":"meta.delimiter.decimal.period.hx"},"9":{"name":"constant.numeric.suffix.hx"}}}]},"enum":{"name":"meta.enum.hx","begin":"(?=enum\\s+[A-Z])","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#enum-name"},{"include":"#enum-name-post"},{"include":"#enum-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"enum-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#parameters"},{"include":"#identifiers"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"enum-constructor-call":{"begin":"\\b(?\u003c!\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\s*(\\()","end":"(\\))","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"},"4":{"name":"support.package.hx"},"5":{"name":"entity.name.type.hx"},"6":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"enum-name":{"begin":"\\b(enum)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"enum-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"for-loop":{"begin":"\\b(for)\\b\\s*(\\()","end":"(\\))","patterns":[{"name":"keyword.other.in.hx","match":"\\b(in)\\b"},{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"keyword.control.flow-control.hx"},"2":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"function-type":{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-type-parameter"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.hx"}}},"function-type-parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)|,)","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#operator-optional"},{"include":"#punctuation-comma"},{"include":"#function-type-parameter-name"},{"include":"#function-type-parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#type"},{"include":"#global"}]},"function-type-parameter-name":{"match":"([_a-zA-Z]\\w*)(?=\\s*:)","captures":{"1":{"name":"variable.parameter.hx"}}},"function-type-parameter-type-hint":{"begin":":","end":"(?=\\)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"global":{"patterns":[{"include":"#comments"},{"include":"#conditional-compilation"}]},"identifier-name":{"name":"variable.other.hx","match":"\\b([_A-Za-z]\\w*)\\b"},"identifiers":{"patterns":[{"include":"#constant-name"},{"include":"#type-name"},{"include":"#identifier-name"}]},"import":{"begin":"import\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"name":"keyword.control.as.hx","match":"\\b(as)\\b"},{"name":"keyword.control.in.hx","match":"\\b(in)\\b"},{"name":"constant.language.import-all.hx","match":"\\*"},{"name":"variable.other.hxt","match":"\\b([_A-Za-z]\\w*)\\b(?=\\s*(as|in|$|(;)))"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.control.import.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"interface":{"name":"meta.interface.hx","begin":"(?=interface)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#interface-name"},{"include":"#interface-name-post"},{"include":"#interface-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"interface-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"interface-name":{"begin":"\\b(interface)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"interface-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#global"},{"include":"#modifiers-inheritance"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"javadoc-tags":{"patterns":[{"match":"(@(?:param|exception|throws|event))\\s+([_A-Za-z]\\w*)\\s+","captures":{"1":{"name":"storage.type.class.javadoc"},"2":{"name":"variable.other.javadoc"}}},{"match":"(@since)\\s+([\\w\\.-]+)\\s+","captures":{"1":{"name":"storage.type.class.javadoc"},"2":{"name":"constant.numeric.javadoc"}}},{"match":"@(param|exception|throws|deprecated|returns?|since|default|see|event)","captures":{"0":{"name":"storage.type.class.javadoc"}}}]},"keywords":{"patterns":[{"begin":"(?\u003c=trace|$type|if|while|for|super)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"begin":"(?\u003c=catch)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"},{"include":"#type-check"}],"beginCaptures":{"1":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"begin":"(?\u003c=cast)\\s*(\\()","end":"\\)","patterns":[{"begin":"(?=,)","end":"(?=\\))","patterns":[{"include":"#type"}]},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"name":"keyword.control.catch-exception.hx","match":"\\b(try|catch|throw)\\b"},{"begin":"\\b(case|default)\\b","end":":|(?=if)|$","patterns":[{"include":"#global"},{"include":"#metadata"},{"match":"\\b(var|final)\\b\\s*([_a-zA-Z]\\w*)\\b","captures":{"1":{"name":"storage.type.variable.hx"},"2":{"name":"variable.other.hx"}}},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"name":"meta.brace.round.hx","match":"\\("},{"name":"meta.brace.round.hx","match":"\\)"},{"include":"#macro-reification"},{"name":"keyword.operator.extractor.hx","match":"=\u003e"},{"include":"#operator-assignment"},{"include":"#punctuation-comma"},{"include":"#keywords"},{"include":"#method-call"},{"include":"#identifiers"}],"beginCaptures":{"1":{"name":"keyword.control.flow-control.hx"}}},{"name":"keyword.control.flow-control.hx","match":"\\b(if|else|return|do|while|for|break|continue|switch|case|default)\\b"},{"name":"keyword.other.untyped.hx","match":"\\b(cast|untyped)\\b"},{"name":"keyword.other.trace.hx","match":"\\btrace\\b"},{"name":"keyword.other.type.hx","match":"\\$type\\b"},{"name":"keyword.other.untyped-property.hx","match":"\\__(global|this)__\\b"},{"name":"variable.language.hx","match":"\\b(this|super)\\b"},{"name":"keyword.operator.new.hx","match":"\\bnew\\b"},{"name":"storage.type.hx","match":"\\b(abstract|class|enum|interface|typedef)\\b"},{"name":"storage.type.function.arrow.hx","match":"-\u003e"},{"include":"#modifiers"},{"include":"#modifiers-inheritance"}]},"keywords-accessor":{"name":"storage.type.property.hx","match":"\\b(private|default|get|set|dynamic|never|null)\\b"},"macro-reification":{"patterns":[{"match":"(\\$)([eabipv])\\{","captures":{"1":{"name":"punctuation.definition.reification.hx"},"2":{"name":"keyword.reification.hx"}}},{"match":"((\\$)([a-zA-Z]*))","captures":{"2":{"name":"punctuation.definition.reification.hx"},"3":{"name":"variable.reification.hx"}}}]},"metadata":{"patterns":[{"begin":"(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"storage.modifier.metadata.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"match":"((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b))","captures":{"2":{"name":"punctuation.metadata.hx"},"3":{"name":"storage.modifier.metadata.hx"}}},{"begin":"(@)(:?[a-zA-Z_]*)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"variable.metadata.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"match":"(@)(:?)([a-zA-Z_]*(\\.))*([a-zA-Z_]*)?","captures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"variable.metadata.hx"},"3":{"name":"variable.metadata.hx"},"4":{"name":"punctuation.accessor.hx"},"5":{"name":"variable.metadata.hx"}}}]},"method":{"name":"meta.method.hx","begin":"(?=\\bfunction\\b)","end":"(?\u003c=[\\};])","patterns":[{"include":"#macro-reification"},{"include":"#method-name"},{"include":"#method-name-post"},{"include":"#method-block"}]},"method-block":{"name":"meta.method.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"method-call":{"begin":"\\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|in|int|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z]\\w*))\\s*(\\()","end":"(\\))","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"keyword.other.untyped-function.hx"},"2":{"name":"entity.name.function.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"method-name":{"begin":"\\b(function)\\b\\s*\\b(?:(new)|([_A-Za-z]\\w*))?\\b","end":"(?=$|\\()","patterns":[{"include":"#macro-reification"},{"include":"#type-parameters"}],"beginCaptures":{"1":{"name":"storage.type.function.hx"},"2":{"name":"storage.type.hx"},"3":{"name":"entity.name.function.hx"}}},"method-name-post":{"begin":"(?\u003c=[\\w\\s\u003e])","end":"(\\{)|(;)","patterns":[{"include":"#parameters"},{"include":"#method-return-type-hint"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"},"2":{"name":"punctuation.terminator.hx"}}},"method-return-type-hint":{"begin":"(?\u003c=\\))\\s*(:)","end":"(?=\\{|;|[a-z0-9])","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.hx"}}},"modifiers":{"patterns":[{"name":"storage.type.class","match":"\\b(enum)\\b"},{"name":"storage.modifier.hx","match":"\\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\\b"},{"name":"storage.modifier.hx","match":"\\b(final)\\b(?=\\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))"}]},"modifiers-inheritance":{"name":"storage.modifier.hx","match":"\\b(implements|extends)\\b"},"new-expr":{"name":"new.expr.hx","begin":"(?\u003c!\\.)\\b(new)\\b","end":"(?=$|\\()","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.new.hx"}}},"operator-assignment":{"name":"keyword.operator.assignment.hx","match":"(=)"},"operator-optional":{"name":"keyword.operator.optional.hx","match":"(\\?)(?!\\s)"},"operator-rest":{"name":"keyword.operator.rest.hx","match":"\\.\\.\\."},"operator-type-hint":{"name":"keyword.operator.type.annotation.hx","match":"(:)"},"operators":{"patterns":[{"name":"keyword.operator.logical.hx","match":"(\u0026\u0026|\\|\\|)"},{"name":"keyword.operator.bitwise.hx","match":"(~|\u0026|\\||\\^|\u003e\u003e\u003e|\u003c\u003c|\u003e\u003e)"},{"name":"keyword.operator.comparison.hx","match":"(==|!=|\u003c=|\u003e=|\u003c|\u003e)"},{"name":"keyword.operator.logical.hx","match":"(!)"},{"name":"keyword.operator.increment-decrement.hx","match":"(\\-\\-|\\+\\+)"},{"name":"keyword.operator.arithmetic.hx","match":"(\\-|\\+|\\*|\\/|%)"},{"name":"keyword.operator.intiterator.hx","match":"\\.\\.\\."},{"name":"keyword.operator.arrow.hx","match":"=\u003e"},{"name":"keyword.operator.nullcoalescing.hx","match":"\\?\\?"},{"name":"keyword.operator.safenavigation.hx","match":"\\?\\."},{"name":"keyword.other.hx","match":"\\bis\\b(?!\\()"},{"begin":"\\?","end":":","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.ternary.hx"}},"endCaptures":{"0":{"name":"keyword.operator.ternary.hx"}}}]},"package":{"begin":"package\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.other.package.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)(?!\\s*-\u003e)|,)","patterns":[{"include":"#parameter-name"},{"include":"#parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#global"}]},"parameter-assign":{"begin":"=","end":"(?=\\)|,)","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.hx"}}},"parameter-name":{"patterns":[{"match":"\\s*([_a-zA-Z]\\w*)","captures":{"1":{"name":"variable.parameter.hx"}}},{"include":"#global"},{"include":"#metadata"},{"include":"#operator-optional"},{"include":"#operator-rest"}]},"parameter-type-hint":{"begin":":","end":"(?=\\)(?!\\s*-\u003e)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"parameters":{"name":"meta.parameters.hx","begin":"\\(","end":"\\s*(\\)(?!\\s*-\u003e))","patterns":[{"include":"#parameter"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.hx"}}},"punctuation-accessor":{"name":"punctuation.accessor.hx","match":"\\."},"punctuation-braces":{"begin":"\\(","end":"\\)","patterns":[{"include":"#keywords"},{"include":"#block"},{"include":"#block-contents"},{"include":"#type-check"}],"beginCaptures":{"0":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},"punctuation-comma":{"name":"punctuation.separator.comma.hx","match":","},"punctuation-terminator":{"name":"punctuation.terminator.hx","match":";"},"regex":{"name":"string.regexp.hx","begin":"(~/)","end":"(/)([gimsu]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.hx"},"2":{"name":"keyword.other.hx"}}},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]])"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"name":"keyword.other.back-reference.regexp","match":"\\\\[1-9]\\d*"},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((\\?:)?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.capture.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"string-escape-sequences":{"patterns":[{"name":"constant.character.escape.hx","match":"\\\\[0-3][0-9]{2}"},{"name":"constant.character.escape.hx","match":"\\\\x[0-9A-Fa-f]{2}"},{"name":"constant.character.escape.hx","match":"\\\\u[0-9]{4}"},{"name":"constant.character.escape.hx","match":"\\\\u\\{[0-9A-Fa-f]{1,}\\}"},{"name":"constant.character.escape.hx","match":"\\\\[nrt\"'\\\\]"},{"name":"invalid.escape.sequence.hx","match":"\\\\."}]},"strings":{"patterns":[{"name":"string.quoted.double.hx","begin":"\"","end":"\"","patterns":[{"include":"#string-escape-sequences"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.hx"}}},{"begin":"(')","end":"(')","patterns":[{"name":"string.quoted.single.hx","begin":"\\$(?=\\$)","end":"\\$","beginCaptures":{"0":{"name":"constant.character.escape.hx"}},"endCaptures":{"0":{"name":"constant.character.escape.hx"}}},{"include":"#string-escape-sequences"},{"begin":"(\\${)","end":"(})","patterns":[{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.hx"}}},{"match":"(\\$)([_a-zA-Z]\\w*)","captures":{"1":{"name":"punctuation.definition.block.begin.hx"},"2":{"name":"variable.other.hx"}}},{"name":"constant.character.escape.hx"},{"name":"string.quoted.single.hx","match":"."}],"beginCaptures":{"0":{"name":"string.quoted.single.hx"},"1":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"0":{"name":"string.quoted.single.hx"},"1":{"name":"punctuation.definition.string.end.hx"}}}]},"type":{"patterns":[{"include":"#global"},{"include":"#macro-reification"},{"include":"#type-name"},{"include":"#type-parameters"},{"name":"keyword.operator.type.function.hx","match":"-\u003e"},{"name":"keyword.operator.type.intersection.hx","match":"\u0026"},{"name":"keyword.operator.optional","match":"\\?(?=\\s*[_A-Z])"},{"name":"punctuation.definition.tag","match":"\\?(?!\\s*[_A-Z])"},{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#typedef-block"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}}},{"include":"#function-type"}]},"type-check":{"begin":"(?\u003c!macro)(?=:)","end":"(?=\\))","patterns":[{"include":"#operator-type-hint"},{"include":"#type"}]},"type-name":{"patterns":[{"match":"\\b(Any|Array|ArrayAccess|Bool|Class|Date|DateTools|Dynamic|Enum|EnumValue|EReg|Float|IMap|Int|IntIterator|Iterable|Iterator|KeyValueIterator|KeyValueIterable|Lambda|List|ListIterator|ListNode|Map|Math|Null|Reflect|Single|Std|String|StringBuf|StringTools|Sys|Type|UInt|UnicodeString|ValueType|Void|Xml|XmlType)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b","captures":{"1":{"name":"support.class.builtin.hx"},"2":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"}}},{"match":"\\b(?\u003c![^.]\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b","captures":{"1":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"},"4":{"name":"support.package.hx"},"5":{"name":"entity.name.type.hx"}}}]},"type-parameter-constraint-new":{"name":"keyword.operator.type.annotation.hxt","match":":"},"type-parameter-constraint-old":{"begin":"(:)\\s*(\\()","end":"\\)","patterns":[{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.hx"},"2":{"name":"punctuation.definition.constraint.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.constraint.end.hx"}}},"type-parameters":{"name":"meta.type-parameters.hx","begin":"(\u003c)","end":"(?=$)|(\u003e)","patterns":[{"include":"#type"},{"include":"#type-parameter-constraint-old"},{"include":"#type-parameter-constraint-new"},{"include":"#global"},{"include":"#regex"},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"include":"#metadata"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"punctuation.definition.typeparameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.hx"}}},"type-path":{"patterns":[{"include":"#global"},{"include":"#punctuation-accessor"},{"include":"#type-path-type-name"}]},"type-path-package-name":{"name":"support.package.hx","match":"\\b([_A-Za-z]\\w*)\\b"},"type-path-type-name":{"name":"entity.name.type.hx","match":"\\b(_*[A-Z]\\w*)\\b"},"typedef":{"name":"meta.typedef.hx","begin":"(?=typedef)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#typedef-name"},{"include":"#typedef-name-post"},{"include":"#typedef-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"typedef-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#method"},{"include":"#variable"},{"include":"#modifiers"},{"include":"#punctuation-comma"},{"include":"#operator-optional"},{"include":"#typedef-extension"},{"include":"#typedef-simple-field-type-hint"},{"include":"#identifier-name"},{"include":"#strings"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"typedef-extension":{"begin":"\u003e","end":",|$","patterns":[{"include":"#type"}]},"typedef-name":{"begin":"\\b(typedef)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"typedef-name-post":{"begin":"(?\u003c=\\w)","end":"(\\{)|(?=;)","patterns":[{"include":"#global"},{"include":"#punctuation-brackets"},{"include":"#punctuation-separator"},{"include":"#operator-assignment"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"typedef-simple-field-type-hint":{"begin":":","end":"(?=\\}|,|;)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"using":{"begin":"using\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.other.using.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"variable":{"begin":"(?=\\b(var|final)\\b)","end":"(?=$)|(;)","patterns":[{"include":"#variable-name"},{"include":"#variable-name-next"},{"include":"#variable-assign"},{"include":"#variable-name-post"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"variable-accessors":{"name":"meta.parameters.hx","begin":"\\(","end":"\\)","patterns":[{"include":"#global"},{"include":"#keywords-accessor"},{"include":"#accessor-method"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.hx"}}},"variable-assign":{"begin":"=","end":"(?=;|,)","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.hx"}}},"variable-name":{"begin":"\\b(var|final)\\b","end":"(?=$)|([_a-zA-Z]\\w*)","patterns":[{"include":"#operator-optional"}],"beginCaptures":{"1":{"name":"storage.type.variable.hx"}},"endCaptures":{"1":{"name":"variable.other.hx"}}},"variable-name-next":{"begin":",","end":"([_a-zA-Z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"0":{"name":"punctuation.separator.comma.hx"}},"endCaptures":{"1":{"name":"variable.other.hx"}}},"variable-name-post":{"begin":"(?\u003c=\\w)","end":"(?=;)|(?==)","patterns":[{"include":"#variable-accessors"},{"include":"#variable-type-hint"},{"include":"#block-contents"}]},"variable-type-hint":{"begin":":","end":"(?=$|;|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}}}}
|
|
1
|
+
{"name":"Haxe","scopeName":"source.hx","patterns":[{"include":"#all"}],"repository":{"abstract":{"name":"meta.abstract.hx","begin":"(?=abstract\\s+[A-Z])","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#abstract-name"},{"include":"#abstract-name-post"},{"include":"#abstract-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"abstract-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#modifiers"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"abstract-name":{"begin":"\\b(abstract)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"abstract-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#global"},{"begin":"\\b(from|to)\\b(?=\\s*\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.other.hx"}}},{"name":"keyword.other.hx","match":"\\b(from|to)\\b"},{"include":"#type"},{"name":"punctuation.definition.other.hx","match":"[\\(\\)]"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"accessor-method":{"patterns":[{"name":"entity.name.function.hx","match":"\\b(get|set)_[_A-Za-z]\\w*\\b"}]},"all":{"patterns":[{"include":"#global"},{"include":"#package"},{"include":"#import"},{"include":"#using"},{"name":"storage.modifier.hx","match":"\\b(final)\\b(?=\\s+(class|interface|extern|private)\\b)"},{"include":"#abstract"},{"include":"#class"},{"include":"#enum"},{"include":"#interface"},{"include":"#typedef"},{"include":"#block"},{"include":"#block-contents"}]},"array":{"name":"meta.array.literal.hx","begin":"\\[","end":"\\]","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.hx"}}},"arrow-function":{"name":"meta.method.arrow.hx","begin":"(\\()(?=[^(]*?\\)\\s*-\u003e)","end":"(\\))\\s*(-\u003e)","patterns":[{"include":"#arrow-function-parameter"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.hx"},"2":{"name":"storage.type.function.arrow.hx"}}},"arrow-function-parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)|,)","patterns":[{"include":"#parameter-name"},{"include":"#arrow-function-parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#punctuation-comma"},{"include":"#global"}]},"arrow-function-parameter-type-hint":{"begin":":","end":"(?=\\)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"block":{"begin":"\\{","end":"\\}","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.hx"}}},"block-contents":{"patterns":[{"include":"#global"},{"include":"#regex"},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"include":"#metadata"},{"include":"#method"},{"include":"#variable"},{"include":"#modifiers"},{"include":"#new-expr"},{"include":"#for-loop"},{"include":"#keywords"},{"include":"#arrow-function"},{"include":"#method-call"},{"include":"#enum-constructor-call"},{"include":"#punctuation-braces"},{"include":"#macro-reification"},{"include":"#operators"},{"include":"#operator-assignment"},{"include":"#punctuation-terminator"},{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"},{"include":"#identifiers"},{"include":"#method-return-type-hint"}]},"case-object-pattern":{"begin":"\\{","end":"\\}","patterns":[{"include":"#global"},{"include":"#case-object-pattern"},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"include":"#macro-reification"},{"include":"#punctuation-comma"},{"include":"#identifiers"}],"beginCaptures":{"0":{"name":"meta.brace.curly.hx"}},"endCaptures":{"0":{"name":"meta.brace.curly.hx"}}},"class":{"name":"meta.class.hx","begin":"(?=class)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#class-name"},{"include":"#class-name-post"},{"include":"#class-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"class-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#modifiers"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"class-name":{"name":"meta.class.identifier.hx","begin":"\\b(class)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"class-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#modifiers-inheritance"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"comments":{"patterns":[{"name":"comment.block.documentation.hx","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#javadoc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.hx"}}},{"name":"comment.block.hx","begin":"/\\*","end":"\\*/","patterns":[{"include":"#javadoc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.hx"}}},{"name":"comment.line.double-slash.hx","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.hx"}}}]},"conditional-compilation":{"patterns":[{"match":"((#(if|elseif))[\\s!]+([a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\\s|/\\*|//))","captures":{"0":{"name":"punctuation.definition.tag"}}},{"name":"punctuation.definition.tag","begin":"((#(if|elseif))[\\s!]*)(?=\\()","end":"(?\u003c=\\)|\\n)","patterns":[{"include":"#conditional-compilation-parens"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag"}},"endCaptures":{"0":{"name":"punctuation.definition.tag"}}},{"name":"punctuation.definition.tag","match":"(#(end|else|error|line))"},{"name":"punctuation.definition.tag","match":"(#([a-zA-Z0-9_]*))\\s"}]},"conditional-compilation-parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#conditional-compilation-parens"}]},"constant-name":{"name":"variable.other.hx","match":"\\b([_A-Z][_A-Z0-9]*)\\b"},"constants":{"patterns":[{"name":"constant.language.hx","match":"\\b(true|false|null)\\b"},{"match":"\\b(?:0[xX][0-9a-fA-F][_0-9a-fA-F]*([iu][0-9][0-9_]*)?)\\b","captures":{"0":{"name":"constant.numeric.hex.hx"},"1":{"name":"constant.numeric.suffix.hx"}}},{"match":"\\b(?:0[bB][01][_01]*([iu][0-9][0-9_]*)?)\\b","captures":{"0":{"name":"constant.numeric.bin.hx"},"1":{"name":"constant.numeric.suffix.hx"}}},{"match":"(?x)\n(?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9_]+[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # 1.1E+3f64\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # 1.E+3f64\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # .1E+3f64\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\b)| # 1E+3f64\n (?:\\b[0-9][0-9_]*(\\.)[0-9_]+([fiu][0-9][0-9_]*)?\\b)| # 1.1f64\n (?:\\b[0-9][0-9_]*(\\.)(?!\\.)(?:\\B|([fiu][0-9][0-9_]*)\\b))| # 1.f64\n (?:\\B(\\.)[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\b)| # .1f64\n (?:\\b[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\b) # 1u64\n)(?!\\$)","captures":{"0":{"name":"constant.numeric.decimal.hx"},"1":{"name":"meta.delimiter.decimal.period.hx"},"10":{"name":"meta.delimiter.decimal.period.hx"},"11":{"name":"constant.numeric.suffix.hx"},"12":{"name":"meta.delimiter.decimal.period.hx"},"13":{"name":"constant.numeric.suffix.hx"},"14":{"name":"constant.numeric.suffix.hx"},"2":{"name":"constant.numeric.suffix.hx"},"3":{"name":"meta.delimiter.decimal.period.hx"},"4":{"name":"constant.numeric.suffix.hx"},"5":{"name":"meta.delimiter.decimal.period.hx"},"6":{"name":"constant.numeric.suffix.hx"},"7":{"name":"constant.numeric.suffix.hx"},"8":{"name":"meta.delimiter.decimal.period.hx"},"9":{"name":"constant.numeric.suffix.hx"}}}]},"enum":{"name":"meta.enum.hx","begin":"(?=enum\\s+[A-Z])","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#enum-name"},{"include":"#enum-name-post"},{"include":"#enum-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"enum-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#parameters"},{"include":"#identifiers"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"enum-constructor-call":{"begin":"\\b(?\u003c!\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\s*(\\()","end":"(\\))","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"},"4":{"name":"support.package.hx"},"5":{"name":"entity.name.type.hx"},"6":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"enum-name":{"begin":"\\b(enum)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"enum-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"for-loop":{"begin":"\\b(for)\\b\\s*(\\()","end":"(\\))","patterns":[{"name":"keyword.other.in.hx","match":"\\b(in)\\b"},{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"keyword.control.flow-control.hx"},"2":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"function-type":{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-type-parameter"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.hx"}}},"function-type-parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)|,)","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#operator-optional"},{"include":"#punctuation-comma"},{"include":"#function-type-parameter-name"},{"include":"#function-type-parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#type"},{"include":"#global"}]},"function-type-parameter-name":{"match":"([_a-zA-Z]\\w*)(?=\\s*:)","captures":{"1":{"name":"variable.parameter.hx"}}},"function-type-parameter-type-hint":{"begin":":","end":"(?=\\)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"global":{"patterns":[{"include":"#comments"},{"include":"#conditional-compilation"}]},"identifier-name":{"name":"variable.other.hx","match":"\\b([_A-Za-z]\\w*)\\b"},"identifiers":{"patterns":[{"include":"#constant-name"},{"include":"#type-name"},{"include":"#identifier-name"}]},"import":{"begin":"import\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"name":"keyword.control.as.hx","match":"\\b(as)\\b"},{"name":"keyword.control.in.hx","match":"\\b(in)\\b"},{"name":"constant.language.import-all.hx","match":"\\*"},{"name":"variable.other.hxt","match":"\\b([_A-Za-z]\\w*)\\b(?=\\s*(as|in|$|(;)))"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.control.import.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"interface":{"name":"meta.interface.hx","begin":"(?=interface)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#interface-name"},{"include":"#interface-name-post"},{"include":"#interface-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"interface-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"interface-name":{"begin":"\\b(interface)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"interface-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#global"},{"include":"#modifiers-inheritance"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"javadoc-tags":{"patterns":[{"match":"(@(?:param|exception|throws|event))\\s+([_A-Za-z]\\w*)\\s+","captures":{"1":{"name":"storage.type.class.javadoc"},"2":{"name":"variable.other.javadoc"}}},{"match":"(@since)\\s+([\\w\\.-]+)\\s+","captures":{"1":{"name":"storage.type.class.javadoc"},"2":{"name":"constant.numeric.javadoc"}}},{"match":"@(param|exception|throws|deprecated|returns?|since|default|see|event)","captures":{"0":{"name":"storage.type.class.javadoc"}}}]},"keywords":{"patterns":[{"begin":"(?\u003c=trace|$type|if|while|for|super)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"begin":"(?\u003c=catch)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"},{"include":"#type-check"}],"beginCaptures":{"1":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"begin":"(?\u003c=cast)\\s*(\\()","end":"\\)","patterns":[{"begin":"(?=,)","end":"(?=\\))","patterns":[{"include":"#type"}]},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"name":"keyword.control.catch-exception.hx","match":"\\b(try|catch|throw)\\b"},{"begin":"\\b(case|default)\\b","end":":|(?=if)|$","patterns":[{"include":"#global"},{"include":"#case-object-pattern"},{"include":"#metadata"},{"match":"\\b(var|final)\\b\\s*([_a-zA-Z]\\w*)\\b","captures":{"1":{"name":"storage.type.variable.hx"},"2":{"name":"variable.other.hx"}}},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"name":"meta.brace.round.hx","match":"\\("},{"name":"meta.brace.round.hx","match":"\\)"},{"include":"#macro-reification"},{"name":"keyword.operator.extractor.hx","match":"=\u003e"},{"include":"#operator-assignment"},{"include":"#punctuation-comma"},{"include":"#keywords"},{"include":"#method-call"},{"include":"#identifiers"}],"beginCaptures":{"1":{"name":"keyword.control.flow-control.hx"}}},{"name":"keyword.control.flow-control.hx","match":"\\b(if|else|return|do|while|for|break|continue|switch|case|default)\\b"},{"name":"keyword.other.untyped.hx","match":"\\b(cast|untyped)\\b"},{"name":"keyword.other.trace.hx","match":"\\btrace\\b"},{"name":"keyword.other.type.hx","match":"\\$type\\b"},{"name":"keyword.other.untyped-property.hx","match":"\\__(global|this)__\\b"},{"name":"variable.language.hx","match":"\\b(this|super)\\b"},{"name":"keyword.operator.new.hx","match":"\\bnew\\b"},{"name":"storage.type.hx","match":"\\b(abstract|class|enum|interface|typedef)\\b"},{"name":"storage.type.function.arrow.hx","match":"-\u003e"},{"include":"#modifiers"},{"include":"#modifiers-inheritance"}]},"keywords-accessor":{"name":"storage.type.property.hx","match":"\\b(private|default|get|set|dynamic|never|null)\\b"},"macro-reification":{"patterns":[{"match":"(\\$)([eabipv])\\{","captures":{"1":{"name":"punctuation.definition.reification.hx"},"2":{"name":"keyword.reification.hx"}}},{"match":"((\\$)([a-zA-Z]*))","captures":{"2":{"name":"punctuation.definition.reification.hx"},"3":{"name":"variable.reification.hx"}}}]},"metadata":{"patterns":[{"begin":"(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"storage.modifier.metadata.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"match":"((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b))","captures":{"2":{"name":"punctuation.metadata.hx"},"3":{"name":"storage.modifier.metadata.hx"}}},{"begin":"(@)(:?[a-zA-Z_]*)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"variable.metadata.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"match":"(@)(:?)([a-zA-Z_]*(\\.))*([a-zA-Z_]*)?","captures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"variable.metadata.hx"},"3":{"name":"variable.metadata.hx"},"4":{"name":"punctuation.accessor.hx"},"5":{"name":"variable.metadata.hx"}}}]},"method":{"name":"meta.method.hx","begin":"(?=\\bfunction\\b)","end":"(?\u003c=\\})|(?=\\s*[^\\s{])","patterns":[{"include":"#macro-reification"},{"include":"#method-name"},{"include":"#parameters"},{"include":"#method-return"},{"match":"(\\{)","captures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},{"include":"#method-block"}],"applyEndPatternLast":true},"method-block":{"name":"meta.method.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"method-call":{"begin":"\\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|in|int|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z]\\w*))\\s*(\\()","end":"(\\))","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"keyword.other.untyped-function.hx"},"2":{"name":"entity.name.function.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"method-name":{"begin":"\\b(function)\\b\\s*\\b(?:(new)|([_A-Za-z]\\w*))?\\b","end":"(?=$|\\()","patterns":[{"include":"#macro-reification"},{"include":"#type-parameters"}],"beginCaptures":{"1":{"name":"storage.type.function.hx"},"2":{"name":"storage.type.hx"},"3":{"name":"entity.name.function.hx"}}},"method-return":{"begin":"(?\u003c=\\))\\s*(:)","end":"(?=\\{|;)|(?\u003c=\\s)(?=[a-z0-9]\\w*\\b(?!\\s*\\.))","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.hx"}}},"method-return-type-hint":{"end":"(?=\\{|;)|(?\u003c=\\s)(?=[a-z0-9]\\w*\\b(?!\\s*\\.))","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.hx"}}},"modifiers":{"patterns":[{"name":"storage.type.class","match":"\\b(enum)\\b"},{"name":"storage.modifier.hx","match":"\\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\\b"},{"name":"storage.modifier.hx","match":"\\b(final)\\b(?=\\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))"}]},"modifiers-inheritance":{"name":"storage.modifier.hx","match":"\\b(implements|extends)\\b"},"new-expr":{"name":"new.expr.hx","begin":"(?\u003c!\\.)\\b(new)\\b","end":"(?=$|\\()","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.new.hx"}}},"operator-assignment":{"name":"keyword.operator.assignment.hx","match":"(=)"},"operator-optional":{"name":"keyword.operator.optional.hx","match":"(\\?)(?!\\s)"},"operator-rest":{"name":"keyword.operator.rest.hx","match":"\\.\\.\\."},"operator-type-hint":{"name":"keyword.operator.type.annotation.hx","match":"(:)"},"operators":{"patterns":[{"name":"keyword.operator.logical.hx","match":"(\u0026\u0026|\\|\\|)"},{"name":"keyword.operator.bitwise.hx","match":"(~|\u0026|\\||\\^|\u003e\u003e\u003e|\u003c\u003c|\u003e\u003e)"},{"name":"keyword.operator.comparison.hx","match":"(==|!=|\u003c=|\u003e=|\u003c|\u003e)"},{"name":"keyword.operator.logical.hx","match":"(!)"},{"name":"keyword.operator.increment-decrement.hx","match":"(\\-\\-|\\+\\+)"},{"name":"keyword.operator.arithmetic.hx","match":"(\\-|\\+|\\*|\\/|%)"},{"name":"keyword.operator.intiterator.hx","match":"\\.\\.\\."},{"name":"keyword.operator.arrow.hx","match":"=\u003e"},{"name":"keyword.operator.nullcoalescing.hx","match":"\\?\\?"},{"name":"keyword.operator.safenavigation.hx","match":"\\?\\."},{"name":"keyword.other.hx","match":"\\bis\\b(?!\\()"},{"begin":"\\?","end":":","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.ternary.hx"}},"endCaptures":{"0":{"name":"keyword.operator.ternary.hx"}}}]},"package":{"begin":"package\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.other.package.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)(?!\\s*-\u003e)|,)","patterns":[{"include":"#parameter-name"},{"include":"#parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#global"}]},"parameter-assign":{"begin":"=","end":"(?=\\)|,)","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.hx"}}},"parameter-name":{"patterns":[{"match":"\\s*([_a-zA-Z]\\w*)","captures":{"1":{"name":"variable.parameter.hx"}}},{"include":"#global"},{"include":"#metadata"},{"include":"#operator-optional"},{"include":"#operator-rest"}]},"parameter-type-hint":{"begin":":","end":"(?=\\)(?!\\s*-\u003e)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"parameters":{"name":"meta.parameters.hx","begin":"\\(","end":"\\s*(\\)(?!\\s*-\u003e))","patterns":[{"include":"#parameter"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.hx"}}},"punctuation-accessor":{"name":"punctuation.accessor.hx","match":"\\."},"punctuation-braces":{"begin":"\\(","end":"\\)","patterns":[{"include":"#keywords"},{"include":"#block"},{"include":"#block-contents"},{"include":"#type-check"}],"beginCaptures":{"0":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},"punctuation-comma":{"name":"punctuation.separator.comma.hx","match":","},"punctuation-terminator":{"name":"punctuation.terminator.hx","match":";"},"regex":{"name":"string.regexp.hx","begin":"(~/)","end":"(/)([gimsu]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.hx"},"2":{"name":"keyword.other.hx"}}},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]])"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"name":"keyword.other.back-reference.regexp","match":"\\\\[1-9]\\d*"},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((\\?:)?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.capture.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"string-escape-sequences":{"patterns":[{"name":"constant.character.escape.hx","match":"\\\\[0-3][0-9]{2}"},{"name":"constant.character.escape.hx","match":"\\\\x[0-9A-Fa-f]{2}"},{"name":"constant.character.escape.hx","match":"\\\\u[0-9]{4}"},{"name":"constant.character.escape.hx","match":"\\\\u\\{[0-9A-Fa-f]{1,}\\}"},{"name":"constant.character.escape.hx","match":"\\\\[nrt\"'\\\\]"},{"name":"invalid.escape.sequence.hx","match":"\\\\."}]},"strings":{"patterns":[{"name":"string.quoted.double.hx","begin":"\"","end":"\"","patterns":[{"include":"#string-escape-sequences"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.hx"}}},{"begin":"(')","end":"(')","patterns":[{"name":"string.quoted.single.hx","begin":"\\$(?=\\$)","end":"\\$","beginCaptures":{"0":{"name":"constant.character.escape.hx"}},"endCaptures":{"0":{"name":"constant.character.escape.hx"}}},{"include":"#string-escape-sequences"},{"begin":"(\\${)","end":"(})","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.hx"}}},{"match":"(\\$)([_a-zA-Z]\\w*)","captures":{"1":{"name":"punctuation.definition.block.begin.hx"},"2":{"name":"variable.other.hx"}}},{"name":"constant.character.escape.hx"},{"name":"string.quoted.single.hx","match":"."}],"beginCaptures":{"0":{"name":"string.quoted.single.hx"},"1":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"0":{"name":"string.quoted.single.hx"},"1":{"name":"punctuation.definition.string.end.hx"}}}]},"type":{"patterns":[{"include":"#global"},{"include":"#macro-reification"},{"include":"#type-name"},{"include":"#type-parameters"},{"name":"keyword.operator.type.function.hx","match":"-\u003e"},{"name":"keyword.operator.type.intersection.hx","match":"\u0026"},{"name":"keyword.operator.optional","match":"\\?(?=\\s*[_A-Z])"},{"name":"punctuation.definition.tag","match":"\\?(?!\\s*[_A-Z])"},{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#typedef-block"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}}},{"include":"#function-type"}]},"type-check":{"begin":"(?\u003c!macro)(?=:)","end":"(?=\\)|,)","patterns":[{"include":"#operator-type-hint"},{"include":"#type"}]},"type-name":{"patterns":[{"match":"\\b(Any|Array|ArrayAccess|Bool|Class|Date|DateTools|Dynamic|Enum|EnumValue|EReg|Float|IMap|Int|IntIterator|Iterable|Iterator|KeyValueIterator|KeyValueIterable|Lambda|List|ListIterator|ListNode|Map|Math|Null|Reflect|Single|Std|String|StringBuf|StringTools|Sys|Type|UInt|UnicodeString|ValueType|Void|Xml|XmlType)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b","captures":{"1":{"name":"support.class.builtin.hx"},"2":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"}}},{"match":"\\b(?\u003c![^.]\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b","captures":{"1":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"},"4":{"name":"support.package.hx"},"5":{"name":"entity.name.type.hx"}}}]},"type-parameter-constraint-new":{"name":"keyword.operator.type.annotation.hxt","match":":"},"type-parameter-constraint-old":{"begin":"(:)\\s*(\\()","end":"\\)","patterns":[{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.hx"},"2":{"name":"punctuation.definition.constraint.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.constraint.end.hx"}}},"type-parameters":{"name":"meta.type-parameters.hx","begin":"(\u003c)","end":"(?=$)|(\u003e)","patterns":[{"include":"#type"},{"include":"#type-parameter-constraint-old"},{"include":"#type-parameter-constraint-new"},{"include":"#global"},{"include":"#regex"},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"include":"#metadata"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"punctuation.definition.typeparameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.hx"}}},"type-path":{"patterns":[{"include":"#global"},{"include":"#punctuation-accessor"},{"include":"#type-path-type-name"}]},"type-path-package-name":{"name":"support.package.hx","match":"\\b([_A-Za-z]\\w*)\\b"},"type-path-type-name":{"name":"entity.name.type.hx","match":"\\b(_*[A-Z]\\w*)\\b"},"typedef":{"name":"meta.typedef.hx","begin":"(?=typedef)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#typedef-name"},{"include":"#typedef-name-post"},{"include":"#typedef-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"typedef-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#method"},{"include":"#variable"},{"include":"#modifiers"},{"include":"#punctuation-comma"},{"include":"#punctuation-terminator"},{"include":"#operator-optional"},{"include":"#typedef-extension"},{"include":"#typedef-simple-field-type-hint"},{"include":"#identifier-name"},{"include":"#strings"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"typedef-extension":{"begin":"\u003e","end":",|$","patterns":[{"include":"#type"}]},"typedef-name":{"begin":"\\b(typedef)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"typedef-name-post":{"begin":"(?\u003c=\\w)","end":"(\\{)|(?=;)","patterns":[{"include":"#global"},{"include":"#punctuation-brackets"},{"include":"#punctuation-separator"},{"include":"#operator-assignment"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"typedef-simple-field-type-hint":{"begin":":","end":"(?=\\}|,|;)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"using":{"begin":"using\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.other.using.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"variable":{"begin":"(?=\\b(var|final)\\b)","end":"(?=$)|(;)","patterns":[{"include":"#variable-name"},{"include":"#variable-name-next"},{"include":"#variable-assign"},{"include":"#variable-name-post"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"variable-accessors":{"name":"meta.parameters.hx","begin":"\\(","end":"\\)","patterns":[{"include":"#global"},{"include":"#keywords-accessor"},{"include":"#accessor-method"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.hx"}}},"variable-assign":{"begin":"=","end":"(?=;|,|$)","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.hx"}}},"variable-name":{"begin":"\\b(var|final)\\b","end":"(?=$)|([_a-zA-Z]\\w*)","patterns":[{"include":"#operator-optional"}],"beginCaptures":{"1":{"name":"storage.type.variable.hx"}},"endCaptures":{"1":{"name":"variable.other.hx"}}},"variable-name-next":{"begin":",","end":"([_a-zA-Z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"0":{"name":"punctuation.separator.comma.hx"}},"endCaptures":{"1":{"name":"variable.other.hx"}}},"variable-name-post":{"begin":"(?\u003c=\\w)","end":"(?=;)|(?==)","patterns":[{"include":"#variable-accessors"},{"include":"#variable-type-hint"},{"include":"#block-contents"}]},"variable-type-hint":{"begin":":","end":"(?=$|;|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}}}}
|
data/grammars/source.hxml.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"Hxml","scopeName":"source.hxml","patterns":[{"name":"comment.line.number-sign.hxml","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.hxml"}}},{"begin":"(?\u003c!\\w)(--macro)\\b","end":"\\n","patterns":[{"include":"source.hx#block-contents"}],"beginCaptures":{"1":{"name":"keyword.other.hxml"}}},{"match":"(?\u003c!\\w)(-m|-main|--main|--run)\\b\\s*\\b(?:(([a-z][a-zA-Z0-9]*\\.)*)(_*[A-Z]\\w*))?\\b","captures":{"1":{"name":"keyword.other.hxml"},"2":{"name":"support.package.hx"},"4":{"name":"entity.name.type.hx"}}},{"match":"(?\u003c!\\w)(-cppia|-cpp?|-js|-as3|-swf-(header|version|lib(-extern)?)|-swf9?|-neko|-python|-php|-cs|-java-lib|-java|-xml|-lua|-hl|-x|-lib|-D|-resource|-exclude|-version|-v|-debug|-prompt|-cmd|-dce\\s+(std|full|no)?|--flash-strict|--no-traces|--flash-use-stage|--neko-source|--gen-hx-classes|-net-lib|-net-std|-c-arg|--each|--next|--display|--no-output|--times|--no-inline|--no-opt|--php-front|--php-lib|--php-prefix|--remap|--help-defines|--help-metas|-help|--help|-java|-cs|--js-modern|--interp|--eval|--dce|--wait|--connect|--cwd|--run).*$","captures":{"1":{"name":"keyword.other.hxml"}}},{"match":"(?\u003c!\\w)(--js(on)?|--lua|--swf-(header|version|lib(-extern)?)|--swf|--as3|--neko|--php|--cppia|--cpp|--cppia|--cs|--java-lib(-extern)?|--java|--jvm|--python|--hl|-p|--class-path|-L|--library|--define|-r|--resource|--cmd|-C|--verbose|--debug|--prompt|--xml|--json|--net-lib|--net-std|--c-arg|--version|--haxelib-global|-h|--main|--server-connect|--server-listen).*$","captures":{"1":{"name":"keyword.other.hxml"}}}]}
|
|
1
|
+
{"name":"Hxml","scopeName":"source.hxml","patterns":[{"name":"comment.line.number-sign.hxml","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.hxml"}}},{"begin":"(?\u003c!\\w)(--macro)\\b","end":"\\n","patterns":[{"include":"source.hx#block-contents"}],"beginCaptures":{"1":{"name":"keyword.other.hxml"}}},{"match":"(?\u003c!\\w)(-m|-main|--main|--run)\\b\\s*\\b(?:(([a-z][a-zA-Z0-9]*\\.)*)(_*[A-Z]\\w*))?\\b","captures":{"1":{"name":"keyword.other.hxml"},"2":{"name":"support.package.hx"},"4":{"name":"entity.name.type.hx"}}},{"match":"^\\s*(([a-z][a-zA-Z0-9]*\\.)*)(_*[A-Z]\\w*)\\s*$","captures":{"1":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"}}},{"match":"(?\u003c!\\w)(-cppia|-cpp?|-js|-as3|-swf-(header|version|lib(-extern)?)|-swf9?|-neko|-python|-php|-cs|-java-lib|-java|-xml|-lua|-hl|-x|-lib|-D|-resource|-exclude|-version|-v|-debug|-prompt|-cmd|-dce\\s+(std|full|no)?|--flash-strict|--no-traces|--flash-use-stage|--neko-source|--gen-hx-classes|-net-lib|-net-std|-c-arg|--each|--next|--display|--no-output|--times|--no-inline|--no-opt|--php-front|--php-lib|--php-prefix|--remap|--help-defines|--help-metas|-help|--help|-java|-cs|--js-modern|--interp|--eval|--dce|--wait|--connect|--cwd|--run).*$","captures":{"1":{"name":"keyword.other.hxml"}}},{"match":"(?\u003c!\\w)(--js(on)?|--lua|--swf-(header|version|lib(-extern)?)|--swf|--as3|--neko|--php|--cppia|--cpp|--cppia|--cs|--java-lib(-extern)?|--java|--jvm|--python|--hl|-p|--class-path|-L|--library|--define|-r|--resource|--cmd|-C|--verbose|--debug|--prompt|--xml|--json|--net-lib|--net-std|--c-arg|--version|--haxelib-global|-h|--main|--server-connect|--server-listen).*$","captures":{"1":{"name":"keyword.other.hxml"}}}]}
|
data/grammars/source.ink.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"ink","scopeName":"source.ink","patterns":[{"include":"#comment"},{"include":"#tag"},{"include":"#todo"},{"include":"#import"},{"include":"#declaration"},{"include":"#knot"},{"include":"#stitch"},{"include":"#choice"},{"include":"#divert"},{"include":"#gather"},{"include":"#logic"},{"include":"#glue"},{"include":"#interpolevaluablock"}],"repository":{"alternativeClause":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(-(?!\u003e))","end":"(?=^)|(?=\\})|(?=\\-)","patterns":[{"include":"#comment"},{"include":"#interpolevaluablock"},{"include":"#divert"},{"include":"#logic"},{"include":"#choice"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"alternativeItem":{"patterns":[{"begin":"(?\u003c!\\\\)(\\|)","end":"(?=\\})|(?=\\|)","patterns":[{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#comment"},{"include":"#interpolevaluablock"},{"include":"#divert"},{"include":"#tag"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"assignment":{"patterns":[{"begin":"([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*(=)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#divert"},{"include":"#expressionIdentifier"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.ink"},"2":{"name":"keyword.operator.assignment.ink"}}}]},"caseClause":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(-(?!\u003e))(?:[^\\S\\n\\r])?(else|[^\\|\\{\\}\\:]+)(?:[^\\S\\n\\r])*(?\u003c!\\\\)(\\:)","end":"(?=^)|(?=\\})|(?=\\-)","patterns":[{"include":"#interpolevaluablock"},{"include":"#divert"},{"include":"#logic"},{"include":"#glue"},{"include":"#choiceInClause"},{"include":"#tag"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"},"2":{"name":"keyword.control.ink"},"3":{"name":"keyword.control.ink"}}}]},"choice":{"patterns":[{"begin":"(?x)\n (?\u003c=^|\\-)\n (?:[^\\S\\n\\r])*\n (?:\n ((?:(?:[^\\S\\n\\r])*[\\*])+)\n |\n ((?:(?:[^\\S\\n\\r])*[\\+])+)\n )","end":"(?=\\#|$)","patterns":[{"include":"#comment"},{"include":"#label"},{"include":"#inlineConditionalSubstitution"},{"include":"#textSuppression"},{"include":"#divert"},{"include":"#tag"},{"include":"#glue"},{"include":"#logic"}],"beginCaptures":{"1":{"name":"keyword.choice.ink"},"2":{"name":"keyword.choice.sticky.ink"}}}]},"choiceInClause":{"patterns":[{"begin":"(?x)\n (?\u003c=^|\\-|\\:)\n (?:[^\\S\\n\\r])*\n (?:\n ((?:(?:[^\\S\\n\\r])*[\\*])+)\n |\n ((?:(?:[^\\S\\n\\r])*[\\+])+)\n )","end":"(?=\\#|$)","patterns":[{"include":"#comment"},{"include":"#label"},{"include":"#inlineConditionalSubstitution"},{"include":"#textSuppression"},{"include":"#divert"},{"include":"#tag"},{"include":"#glue"},{"include":"#logic"}],"beginCaptures":{"2":{"name":"keyword.choice.ink"},"3":{"name":"keyword.choice.sticky.ink"}}}]},"commas":{"patterns":[{"name":"punctuation.separator.ink","match":"\\,"}]},"comment":{"patterns":[{"name":"comment.block.ink","begin":"(/\\*)","end":"(\\*/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ink"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.ink"}}},{"name":"comment.line.ink","begin":"(\\/\\/)","end":"(?=$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ink"}}}]},"conditionalSubstitution":{"patterns":[{"begin":"((?:[^\\{\\}\\|]|\\|(?=\\|))+(?:[^\\S\\n\\r])*\\:)(?:[^\\S\\n\\r])*(?!$)","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#divert"},{"include":"#glue"},{"include":"#inlineElseClause"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"constAssignment":{"patterns":[{"begin":"([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*(=)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#divert"},{"include":"#expressionIdentifier"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.constant.ink entity.name.variable.other.constant.ink"},"2":{"name":"keyword.operator.assignment.ink"}}}]},"declaration":{"patterns":[{"begin":"(?:^)(?:[^\\S\\n\\r])*((VAR)|(LIST))(?:[^\\S\\n\\r])*","end":"(?=$)","patterns":[{"include":"#assignment"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.ink"},"2":{"name":"storage.type.var.ink"},"3":{"name":"storage.type.list.ink"}}},{"begin":"(?:^)(?:[^\\S\\n\\r])*(CONST)(?:[^\\S\\n\\r])*","end":"(?=$)","patterns":[{"include":"#constAssignment"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.const.ink"}}},{"begin":"(?:^)(?:[^\\S\\n\\r])*(EXTERNAL)(?:[^\\S\\n\\r])*","end":"(?=$)","patterns":[{"include":"#externalFunctionDeclaration"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.external.ink"}}}]},"divert":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*(-\u003e|\u003c-)(?:[^\\S\\n\\r])*","end":"(?=($|\\}|\\)|\\||\\-|\\#))","patterns":[{"include":"#comment"},{"include":"#function"},{"include":"#divertIdentifier"},{"include":"#tunnel"}],"beginCaptures":{"1":{"name":"keyword.divert.ink keyword.other.ink"}}}]},"divertIdentifier":{"patterns":[{"begin":"(?x) (?:[^\\S\\n\\r])* (?:\n (END|DONE)\n |\n (?:\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n (?:\n (\\.)\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n (?:\n (\\.)\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n )?\n )?\n )\n)","end":"(?=($|\\}|\\)|\\||\\#))","patterns":[{"include":"#comment"},{"include":"#tunnel"}],"beginCaptures":{"1":{"name":"support.constant.ink constant.language.divert constant.language.ink"},"2":{"name":"variable.other.knot.ink entity.name.variable.other.knot.ink"},"3":{"name":"punctuation.accessor.ink"},"4":{"name":"variable.other.stitch.ink entity.name.variable.other.stitch.ink"},"5":{"name":"punctuation.accessor.ink"},"6":{"name":"variable.other.label.ink entity.name.variable.other.label.ink"}}}]},"expression":{"patterns":[{"include":"#comment"},{"include":"#parentheses"},{"include":"#function"},{"include":"#operator"},{"include":"#languageLiteral"},{"include":"#stringLiteral"},{"include":"#expressionIdentifier"},{"include":"#numberLiteral"},{"include":"#commas"}]},"expressionIdentifier":{"patterns":[{"match":"(?x)\n (?:(?\u003c=return) |\n (?\u003c=\u0026\u0026) | (?\u003c=\\|\\|) |\n (?\u003c=\\=) |\n (?\u003c=/) | (?\u003c=%) | (?\u003c=\\*) | (?\u003c=\\+) | (?\u003c=\\-) |\n (?\u003c=\\?) | (?\u003c=!\\?) | (?\u003c=\\^) | (?\u003c=\\~) |\n (?\u003c=,) | (?=\\)))\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)","captures":{"1":{"name":"variable.other.ink"}}},{"match":"(?x)\n (?:[^\\S\\n\\r])*\n (?:(?\u003c=not) | (?\u003c=and) | (?\u003c=or) | (?\u003c=has) | (?\u003c=hasnt) | (?\u003c=mod))\n [^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)","captures":{"1":{"name":"variable.other.ink"}}},{"match":"(?x)\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)\n (?:[^\\S\\n\\r])*\n (?:(?=\u0026\u0026) | (?=\\|\\|) |\n (?=\\=) | (?=!\\=) | (?=\\\u003e) | (?=\\\u003c) |\n (?=/) | (?=%) | (?=\\*) | (?=\\+) | (?=\\-) |\n (?=\\?) | (?=!\\?) | (?=\\^) |\n (?=,) | (?=\\)))","captures":{"1":{"name":"variable.other.ink"}}},{"match":"(?x)\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)\n [^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]\n (?:(?=not) | (?=and) | (?=or) | (?=has) | (?=hasnt) | (?=mod))","captures":{"1":{"name":"variable.other.ink"}}}]},"externalFunctionDeclaration":{"patterns":[{"begin":"([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*","end":"(?\u003c=\\))","patterns":[{"include":"#functionDeclarationParameters"}],"beginCaptures":{"1":{"name":"entity.name.function.ink"}}}]},"firstAlternativeItem":{"patterns":[{"begin":"(?\u003c=\\{)(?:[^\\S\\n\\r])*(\u0026|!|~)","end":"(?=\\|)","patterns":[{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#divert"},{"include":"#tag"},{"include":"#comment"},{"include":"#conditionalSubstitution"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink keyword.alternative.type.ink"}}}]},"function":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*((LIST_COUNT|LIST_MIN|LIST_MAX|LIST_ALL|LIST_INVERT|LIST_RANDOM|CHOICE_COUNT|TURNS_SINCE|LIST_RANGE|TURNS|POW|FLOOR|CEILING|INT|FLOAT)|([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*))(?:[^\\S\\n\\r])*(\\()(?:[^\\S\\n\\r])*","end":"(\\))","patterns":[{"include":"#comment"},{"name":"punctuation.separator.ink","match":","},{"include":"#divert"},{"include":"#expression"}],"beginCaptures":{"2":{"name":"constant.language.ink"},"3":{"name":"variable.function.ink"},"4":{"name":"punctuation.section.parens.begin.ink"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.ink"}}}]},"functionDeclaration":{"patterns":[{"begin":"(?x)(?:[^\\S\\n\\r])*(function)(?:[^\\S\\n\\r])*([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*","end":"(?\u003c=\\))|(?=$)|(?=\\=)","patterns":[{"include":"#comment"},{"include":"#functionDeclarationParameters"}],"beginCaptures":{"1":{"name":"storage.type.ink"},"2":{"name":"entity.name.function.ink"}}}]},"functionDeclarationParameters":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comment"},{"name":"storage.modifier.ref.ink","match":"ref"},{"name":"variable.parameter.function.ink","match":"[a-zA-Z0-9_]+"},{"name":"punctuation.separator.ink","match":","},{"include":"#divert"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.ink"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.ink"}}}]},"gather":{"patterns":[{"begin":"(?\u003c=^)(?:[^\\S\\n\\r])*((?:(?:[^\\S\\n\\r])*\\-(?!\u003e))+)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#choice"},{"include":"#label"},{"include":"#divert"},{"include":"#todo"},{"include":"#glue"},{"include":"#logic"},{"include":"#tag"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.gather.ink"}}}]},"glue":{"patterns":[{"name":"keyword.glue.ink keyword.other.ink","match":"\u003c\u003e"}]},"import":{"patterns":[{"match":"(?:^)(?:[^\\S\\n\\r])*(INCLUDE)(?:(?:[^\\S\\n\\r])*)(.*)$","captures":{"1":{"name":"keyword.control.import.ink"},"2":{"name":"string.quoted.other.ink"}}}]},"inlineCondition":{"patterns":[{"name":"keyword.control.ink","match":"([^\\{\\}]*)","captures":{"1":{"name":"keyword.control.ink"}}}]},"inlineConditionalSubstitution":{"patterns":[{"begin":"(?\u003c!\\\\)(\\{)","end":"(?\u003c!\\\\)(\\})","patterns":[{"include":"#conditionalSubstitution"},{"include":"#substitution"},{"include":"#firstAlternativeItem"},{"include":"#alternativeItem"},{"include":"#interpolevaluablock"},{"include":"#inlineCondition"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}},"endCaptures":{"1":{"name":"keyword.control.ink"}}}]},"inlineElseClause":{"patterns":[{"begin":"(?\u003c!\\\\)(\\|)","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#divert"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"interpolatedIdentifier":{"patterns":[{"name":"variable.other.ink","match":"(?\u003c=\\{)(?\u003c!^)(?:[^\\S\\n\\r])*[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*(\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?(?:[^\\S\\n\\r])*(?!$)(?=\\})"}]},"interpolevaluablock":{"patterns":[{"begin":"(?\u003c!\\\\)(\\{)","end":"(?\u003c!\\\\)(\\})","patterns":[{"include":"#multilineAlternative"},{"include":"#multilineBlock"},{"include":"#conditionalSubstitution"},{"include":"#divert"},{"include":"#substitution"},{"include":"#firstAlternativeItem"},{"include":"#alternativeItem"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}},"endCaptures":{"1":{"name":"keyword.control.ink"}}}]},"knot":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(={2,})","end":"(={2,})|(?=$)","patterns":[{"include":"#comment"},{"include":"#functionDeclaration"},{"include":"#knotStitchDeclaration"}],"beginCaptures":{"1":{"name":"storage.knot.ink storage.type.ink"}},"endCaptures":{"1":{"name":"storage.knot.ink storage.type.ink"}}}]},"knotStitchDeclaration":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*","end":"(?\u003c=\\))|(?=$|\\=|\\/\\/)","patterns":[{"include":"#comment"},{"include":"#functionDeclarationParameters"}],"beginCaptures":{"1":{"name":"entity.name.function.ink"}}}]},"label":{"patterns":[{"name":"string.label.ink entity.name.label.ink string.quoted.other.ink","match":"(\\()(?:[^\\S\\n\\r])*[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*(?:[^\\S\\n\\r])*(\\))","captures":{"1":{"name":"punctuation.definition.string.label.begin.ink punctuation.definition.string.begin.ink"},"2":{"name":"punctuation.definition.string.label.begin.ink punctuation.definition.string.begin.ink"}}}]},"languageLiteral":{"patterns":[{"match":"(?:[^\\S\\n\\r])*(false|true)(?:[^\\S\\n\\r])*","captures":{"1":{"name":"constant.language.boolean.ink constant.language.ink"}}}]},"logic":{"patterns":[{"begin":"(?:(?\u003c=^)|(?\u003c=\\-)|(?\u003c=\\:))(?:[^\\S\\n\\r])*(~)","end":"(?=$)","patterns":[{"include":"#returnStatement"},{"include":"#tempDeclaration"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.logic.ink"}}}]},"multilineAlternative":{"patterns":[{"begin":"(?\u003c=\\{)(?:[^\\S\\n\\r])*$","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#caseClause"},{"include":"#alternativeClause"},{"include":"#divert"},{"include":"#logic"},{"include":"#choice"},{"include":"#glue"},{"include":"#todo"},{"include":"#interpolevaluablock"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"multilineBlock":{"patterns":[{"begin":"([^\\{\\}]+(?:[^\\S\\n\\r])*\\:)(?:[^\\S\\n\\r])*(?=$|\\/\\/)","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#caseClause"},{"include":"#alternativeClause"},{"include":"#divert"},{"include":"#logic"},{"include":"#choice"},{"include":"#glue"},{"include":"#todo"},{"include":"#interpolevaluablock"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"numberLiteral":{"patterns":[{"match":"(?:[^\\S\\n\\r])*([0-9]+(\\.[0-9]+)?)(?:[^\\S\\n\\r])*","captures":{"1":{"name":"constant.numeric.ink"}}}]},"operator":{"patterns":[{"name":"keyword.operator.logical.ink","match":"(?x)\n \\~ |\n !(?!=) |\n \u0026\u0026 |\n \\|\\|"},{"name":"keyword.operator.assignment.ink","match":"(?x)\n =(?!=)"},{"name":"keyword.operator.assignment.augmented.ink","match":"(?x)\n %= |\n \u0026= |\n \\*= |\n \\+= |\n \\-= |\n /="},{"name":"keyword.operator.relational.ink","match":"(?x)\n \u003c= |\n \u003e= |\n \u003c |\n \u003e"},{"name":"keyword.operator.comparison.ink","match":"(?x)\n == |\n !="},{"name":"keyword.operator.arithmetic.ink","match":"(?x)\n \\-\\- |\n \\+\\+ |\n / |\n % |\n \\* |\n \\+ |\n (?\u003c!$)(?:[^\\S\\n\\r])*-(?:[^\\S\\n\\r])*(?!=)"},{"name":"keyword.operator.membership.ink","match":"(?x)\n \\? |\n !\\? |\n \\^"},{"name":"keyword.operator.word.ink","match":"(?x)\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])not (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])and (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])or (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])has (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])hasnt (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])mod (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])"}]},"parentheses":{"patterns":[{"name":"punctuation.section.parens.begin.ink","match":"\\("},{"name":"punctuation.section.parens.end.ink","match":"\\)"}]},"returnStatement":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*(return)(?=\\s)","end":"(?=$)","patterns":[{"include":"#function"},{"include":"#divert"},{"include":"#languageLiteral"},{"include":"#stringLiteral"},{"include":"#expressionIdentifier"},{"include":"#expression"},{"include":"#numberLiteral"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"stitch":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(=)","end":"(?=^)","patterns":[{"include":"#comment"},{"include":"#knotStitchDeclaration"}],"beginCaptures":{"1":{"name":"storage.knot.ink storage.type.ink"}}}]},"stringLiteral":{"patterns":[{"begin":"(?:[^\\S\\n\\r]*)(\\\")","end":"(\\\")(?:[^\\S\\n\\r]*)","patterns":[{"name":"constant.character.escape.ink","match":"\\\\."},{"name":"string.quoted.double.ink","match":"[^\\n\\r\\\"]+"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.ink"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ink"}}}]},"substitution":{"patterns":[{"match":"(?\u003c=\\{)([^\\{\\}\\:\\|]+)(?=\\})","captures":{"1":{"name":"keyword.control.ink"}}}]},"tag":{"patterns":[{"name":"string.quoted.other.ink entity.tag.ink","begin":"(?\u003c!\\\\)(\\#)","end":"(?=$|\\#)","patterns":[{"include":"#comment"},{"include":"#tag"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.ink comment.line.ink entity.tag.begin.ink"}}}]},"tempDeclaration":{"patterns":[{"begin":"(?x)\n (?:(?\u003c=^)|(?\u003c=\\~))\n (?:[^\\S\\n\\r])*\n (temp)\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n (?:[^\\S\\n\\r])*\n (=)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#function"},{"include":"#divert"},{"include":"#languageLiteral"},{"include":"#stringLiteral"},{"include":"#expressionIdentifier"},{"include":"#expression"},{"include":"#numberLiteral"}],"beginCaptures":{"1":{"name":"storage.modifier.ink"},"2":{"name":"variable.other.ink"},"3":{"name":"keyword.assignment.ink"}}}]},"textSuppression":{"patterns":[{"begin":"(?\u003c!\\\\)(\\[)","end":"(?\u003c!\\\\)(\\])","patterns":[{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.choice.suppression.ink keyword.control.ink"}},"endCaptures":{"1":{"name":"keyword.choice.suppression.ink keyword.control.ink"}}}]},"todo":{"patterns":[{"name":"comment.line.ink entity.todo.ink","begin":"(?\u003c=^|\\-)(?:[^\\S\\n\\r])*(TODO)","end":"(?=$)","patterns":[{"include":"#comment"}],"beginCaptures":{"1":{"name":"constant.other entity.todo.begin.ink"}}}]},"tunnel":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*(-\u003e(?:-\u003e)?|\u003c-)(?:[^\\S\\n\\r])*","end":"(?=($|\\}|\\)|\\|))","patterns":[{"include":"#comment"},{"include":"#function"},{"include":"#divertIdentifier"}],"beginCaptures":{"1":{"name":"keyword.divert.ink keyword.other.ink"}}}]}}}
|
|
1
|
+
{"name":"ink","scopeName":"source.ink","patterns":[{"include":"#comment"},{"include":"#tag"},{"include":"#todo"},{"include":"#import"},{"include":"#declaration"},{"include":"#knot"},{"include":"#stitch"},{"include":"#choice"},{"include":"#divert"},{"include":"#gather"},{"include":"#logic"},{"include":"#glue"},{"include":"#interpolevaluablock"}],"repository":{"alternativeClause":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(-(?!\u003e))","end":"(?=^)|(?=\\})|(?=\\-)","patterns":[{"include":"#comment"},{"include":"#interpolevaluablock"},{"include":"#divert"},{"include":"#logic"},{"include":"#choice"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"alternativeItem":{"patterns":[{"begin":"(?\u003c!\\\\)(\\|)","end":"(?=\\})|(?=\\|)","patterns":[{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#comment"},{"include":"#interpolevaluablock"},{"include":"#divert"},{"include":"#tag"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"assignment":{"patterns":[{"begin":"([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*(=)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#divert"},{"include":"#expressionIdentifier"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"entity.name.variable.other.ink"},"2":{"name":"keyword.operator.assignment.ink"}}}]},"caseClause":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(-(?!\u003e))(?:[^\\S\\n\\r])?(else|[^\\|\\{\\}\\:]+)(?:[^\\S\\n\\r])*(?\u003c!\\\\)(\\:)","end":"(?=^)|(?=\\})|(?=\\-)","patterns":[{"include":"#interpolevaluablock"},{"include":"#divert"},{"include":"#logic"},{"include":"#glue"},{"include":"#choiceInClause"},{"include":"#tag"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"},"2":{"name":"keyword.control.ink"},"3":{"name":"keyword.control.ink"}}}]},"choice":{"patterns":[{"begin":"(?x)\n (?\u003c=^|\\-)\n (?:[^\\S\\n\\r])*\n (?:\n ((?:(?:[^\\S\\n\\r])*[\\*])+)\n |\n ((?:(?:[^\\S\\n\\r])*[\\+])+)\n )","end":"(?=\\#|$)","patterns":[{"include":"#comment"},{"include":"#label"},{"include":"#inlineConditionalSubstitution"},{"include":"#textSuppression"},{"include":"#divert"},{"include":"#tag"},{"include":"#glue"},{"include":"#logic"}],"beginCaptures":{"1":{"name":"keyword.choice.ink"},"2":{"name":"keyword.choice.sticky.ink"}}}]},"choiceInClause":{"patterns":[{"begin":"(?x)\n (?\u003c=^|\\-|\\:)\n (?:[^\\S\\n\\r])*\n (?:\n ((?:(?:[^\\S\\n\\r])*[\\*])+)\n |\n ((?:(?:[^\\S\\n\\r])*[\\+])+)\n )","end":"(?=\\#|$)","patterns":[{"include":"#comment"},{"include":"#label"},{"include":"#inlineConditionalSubstitution"},{"include":"#textSuppression"},{"include":"#divert"},{"include":"#tag"},{"include":"#glue"},{"include":"#logic"}],"beginCaptures":{"2":{"name":"keyword.choice.ink"},"3":{"name":"keyword.choice.sticky.ink"}}}]},"commas":{"patterns":[{"name":"punctuation.separator.ink","match":"\\,"}]},"comment":{"patterns":[{"name":"comment.block.ink","begin":"(/\\*)","end":"(\\*/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ink"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.ink"}}},{"name":"comment.line.ink","begin":"(\\/\\/)","end":"(?=$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ink"}}}]},"conditionalSubstitution":{"patterns":[{"begin":"((?:[^\\{\\}\\|]|\\|(?=\\|))+(?:[^\\S\\n\\r])*\\:)(?:[^\\S\\n\\r])*(?!$)","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#divert"},{"include":"#glue"},{"include":"#inlineElseClause"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"constAssignment":{"patterns":[{"begin":"([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*(=)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#divert"},{"include":"#expressionIdentifier"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.constant.ink entity.name.variable.other.constant.ink"},"2":{"name":"keyword.operator.assignment.ink"}}}]},"declaration":{"patterns":[{"begin":"(?:^)(?:[^\\S\\n\\r])*((VAR)|(LIST))(?:[^\\S\\n\\r])*","end":"(?=$)","patterns":[{"include":"#assignment"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.ink"},"2":{"name":"storage.type.var.ink"},"3":{"name":"storage.type.list.ink"}}},{"begin":"(?:^)(?:[^\\S\\n\\r])*(CONST)(?:[^\\S\\n\\r])*","end":"(?=$)","patterns":[{"include":"#constAssignment"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.const.ink"}}},{"begin":"(?:^)(?:[^\\S\\n\\r])*(EXTERNAL)(?:[^\\S\\n\\r])*","end":"(?=$)","patterns":[{"include":"#externalFunctionDeclaration"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"storage.type.external.ink"}}}]},"divert":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*(-\u003e|\u003c-)(?:[^\\S\\n\\r])*","end":"(?=($|\\}|\\)|\\||\\-|\\#))","patterns":[{"include":"#comment"},{"include":"#function"},{"include":"#divertIdentifier"},{"include":"#tunnel"}],"beginCaptures":{"1":{"name":"keyword.divert.ink keyword.other.ink"}}}]},"divertIdentifier":{"patterns":[{"begin":"(?x) (?:[^\\S\\n\\r])* (?:\n (END|DONE)\n |\n (?:\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n (?:\n (\\.)\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n (?:\n (\\.)\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n )?\n )?\n )\n)","end":"(?=($|\\}|\\)|\\||\\#))","patterns":[{"include":"#comment"},{"include":"#tunnel"}],"beginCaptures":{"1":{"name":"support.constant.ink constant.language.divert constant.language.ink"},"2":{"name":"variable.other.knot.ink entity.name.variable.other.knot.ink"},"3":{"name":"punctuation.accessor.ink"},"4":{"name":"variable.other.stitch.ink entity.name.variable.other.stitch.ink"},"5":{"name":"punctuation.accessor.ink"},"6":{"name":"variable.other.label.ink entity.name.variable.other.label.ink"}}}]},"expression":{"patterns":[{"include":"#comment"},{"include":"#parentheses"},{"include":"#function"},{"include":"#operator"},{"include":"#languageLiteral"},{"include":"#stringLiteral"},{"include":"#expressionIdentifier"},{"include":"#numberLiteral"},{"include":"#commas"}]},"expressionIdentifier":{"patterns":[{"match":"(?x)\n (?:(?\u003c=return) |\n (?\u003c=\u0026\u0026) | (?\u003c=\\|\\|) |\n (?\u003c=\\=) |\n (?\u003c=/) | (?\u003c=%) | (?\u003c=\\*) | (?\u003c=\\+) | (?\u003c=\\-) |\n (?\u003c=\\?) | (?\u003c=!\\?) | (?\u003c=\\^) | (?\u003c=\\~) |\n (?\u003c=,) | (?=\\)))\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)","captures":{"1":{"name":"entity.name.variable.other.ink"}}},{"match":"(?x)\n (?:[^\\S\\n\\r])*\n (?:(?\u003c=not) | (?\u003c=and) | (?\u003c=or) | (?\u003c=has) | (?\u003c=hasnt) | (?\u003c=mod))\n [^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)","captures":{"1":{"name":"entity.name.variable.other.ink"}}},{"match":"(?x)\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)\n (?:[^\\S\\n\\r])*\n (?:(?=\u0026\u0026) | (?=\\|\\|) |\n (?=\\=) | (?=!\\=) | (?=\\\u003e) | (?=\\\u003c) |\n (?=/) | (?=%) | (?=\\*) | (?=\\+) | (?=\\-) |\n (?=\\?) | (?=!\\?) | (?=\\^) |\n (?=,) | (?=\\)))","captures":{"1":{"name":"entity.name.variable.other.ink"}}},{"match":"(?x)\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*\n (?:\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?)\n [^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]\n (?:(?=not) | (?=and) | (?=or) | (?=has) | (?=hasnt) | (?=mod))","captures":{"1":{"name":"entity.name.variable.other.ink"}}}]},"externalFunctionDeclaration":{"patterns":[{"begin":"([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*","end":"(?\u003c=\\))","patterns":[{"include":"#functionDeclarationParameters"}],"beginCaptures":{"1":{"name":"entity.name.function.ink"}}}]},"firstAlternativeItem":{"patterns":[{"begin":"(?\u003c=\\{)(?:[^\\S\\n\\r])*(\u0026|!|~)","end":"(?=\\|)","patterns":[{"include":"#languageLiteral"},{"include":"#numberLiteral"},{"include":"#stringLiteral"},{"include":"#divert"},{"include":"#tag"},{"include":"#comment"},{"include":"#conditionalSubstitution"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink keyword.alternative.type.ink"}}}]},"function":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*((LIST_COUNT|LIST_MIN|LIST_MAX|LIST_ALL|LIST_INVERT|LIST_RANDOM|CHOICE_COUNT|TURNS_SINCE|LIST_RANGE|TURNS|POW|FLOOR|CEILING|INT|FLOAT)|([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*))(?:[^\\S\\n\\r])*(\\()(?:[^\\S\\n\\r])*","end":"(\\))","patterns":[{"include":"#comment"},{"name":"punctuation.separator.ink","match":","},{"include":"#divert"},{"include":"#expression"}],"beginCaptures":{"2":{"name":"constant.language.ink"},"3":{"name":"entity.name.function.ink"},"4":{"name":"punctuation.section.parens.begin.ink"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.ink"}}}]},"functionDeclaration":{"patterns":[{"begin":"(?x)(?:[^\\S\\n\\r])*(function)(?:[^\\S\\n\\r])*([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*","end":"(?\u003c=\\))|(?=$)|(?=\\=)","patterns":[{"include":"#comment"},{"include":"#functionDeclarationParameters"}],"beginCaptures":{"1":{"name":"storage.type.ink"},"2":{"name":"entity.name.function.ink"}}}]},"functionDeclarationParameters":{"patterns":[{"begin":"(\\()","end":"(\\))","patterns":[{"include":"#comment"},{"name":"storage.modifier.ref.ink","match":"ref"},{"name":"variable.parameter.function.ink","match":"[a-zA-Z0-9_]+"},{"name":"punctuation.separator.ink","match":","},{"include":"#divert"}],"beginCaptures":{"1":{"name":"punctuation.section.parens.begin.ink"}},"endCaptures":{"1":{"name":"punctuation.section.parens.end.ink"}}}]},"gather":{"patterns":[{"begin":"(?\u003c=^)(?:[^\\S\\n\\r])*((?:(?:[^\\S\\n\\r])*\\-(?!\u003e))+)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#choice"},{"include":"#label"},{"include":"#divert"},{"include":"#todo"},{"include":"#glue"},{"include":"#logic"},{"include":"#tag"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.gather.ink"}}}]},"glue":{"patterns":[{"name":"keyword.glue.ink keyword.other.ink","match":"\u003c\u003e"}]},"import":{"patterns":[{"match":"(?:^)(?:[^\\S\\n\\r])*(INCLUDE)(?:(?:[^\\S\\n\\r])*)(.*)$","captures":{"1":{"name":"keyword.control.import.ink"},"2":{"name":"string.quoted.other.ink"}}}]},"inlineCondition":{"patterns":[{"name":"keyword.control.ink","match":"([^\\{\\}]*)","captures":{"1":{"name":"keyword.control.ink"}}}]},"inlineConditionalSubstitution":{"patterns":[{"begin":"(?\u003c!\\\\)(\\{)","end":"(?\u003c!\\\\)(\\})","patterns":[{"include":"#conditionalSubstitution"},{"include":"#substitution"},{"include":"#firstAlternativeItem"},{"include":"#alternativeItem"},{"include":"#interpolevaluablock"},{"include":"#inlineCondition"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}},"endCaptures":{"1":{"name":"keyword.control.ink"}}}]},"inlineElseClause":{"patterns":[{"begin":"(?\u003c!\\\\)(\\|)","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#divert"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"interpolatedIdentifier":{"patterns":[{"name":"entity.name.variable.other.ink","match":"(?\u003c=\\{)(?\u003c!^)(?:[^\\S\\n\\r])*[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*(\\.[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)?(?:[^\\S\\n\\r])*(?!$)(?=\\})"}]},"interpolevaluablock":{"patterns":[{"begin":"(?\u003c!\\\\)(\\{)","end":"(?\u003c!\\\\)(\\})","patterns":[{"include":"#multilineAlternative"},{"include":"#multilineBlock"},{"include":"#conditionalSubstitution"},{"include":"#divert"},{"include":"#substitution"},{"include":"#firstAlternativeItem"},{"include":"#alternativeItem"},{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}},"endCaptures":{"1":{"name":"keyword.control.ink"}}}]},"knot":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(={2,})","end":"(={2,})|(?=$)","patterns":[{"include":"#comment"},{"include":"#functionDeclaration"},{"include":"#knotStitchDeclaration"}],"beginCaptures":{"1":{"name":"storage.knot.ink storage.type.ink"}},"endCaptures":{"1":{"name":"storage.knot.ink storage.type.ink"}}}]},"knotStitchDeclaration":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)(?:[^\\S\\n\\r])*","end":"(?\u003c=\\))|(?=$|\\=|\\/\\/)","patterns":[{"include":"#comment"},{"include":"#functionDeclarationParameters"}],"beginCaptures":{"1":{"name":"entity.name.function.ink"}}}]},"label":{"patterns":[{"name":"string.label.ink entity.name.label.ink string.quoted.other.ink","match":"(\\()(?:[^\\S\\n\\r])*[a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*(?:[^\\S\\n\\r])*(\\))","captures":{"1":{"name":"punctuation.definition.string.label.begin.ink punctuation.definition.string.begin.ink"},"2":{"name":"punctuation.definition.string.label.begin.ink punctuation.definition.string.begin.ink"}}}]},"languageLiteral":{"patterns":[{"match":"(?:[^\\S\\n\\r])*(false|true)(?:[^\\S\\n\\r])*","captures":{"1":{"name":"constant.language.boolean.ink constant.language.ink"}}}]},"logic":{"patterns":[{"begin":"(?:(?\u003c=^)|(?\u003c=\\-)|(?\u003c=\\:))(?:[^\\S\\n\\r])*(~)","end":"(?=$)","patterns":[{"include":"#returnStatement"},{"include":"#tempDeclaration"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.logic.ink"}}}]},"multilineAlternative":{"patterns":[{"begin":"(?\u003c=\\{)(?:[^\\S\\n\\r])*$","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#caseClause"},{"include":"#alternativeClause"},{"include":"#divert"},{"include":"#logic"},{"include":"#choice"},{"include":"#glue"},{"include":"#todo"},{"include":"#interpolevaluablock"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"multilineBlock":{"patterns":[{"begin":"([^\\{\\}]+(?:[^\\S\\n\\r])*\\:)(?:[^\\S\\n\\r])*(?=$|\\/\\/)","end":"(?=\\})","patterns":[{"include":"#comment"},{"include":"#caseClause"},{"include":"#alternativeClause"},{"include":"#divert"},{"include":"#logic"},{"include":"#choice"},{"include":"#glue"},{"include":"#todo"},{"include":"#interpolevaluablock"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"numberLiteral":{"patterns":[{"match":"(?:[^\\S\\n\\r])*([0-9]+(\\.[0-9]+)?)(?:[^\\S\\n\\r])*","captures":{"1":{"name":"constant.numeric.ink"}}}]},"operator":{"patterns":[{"name":"keyword.operator.logical.ink","match":"(?x)\n \\~ |\n !(?!=) |\n \u0026\u0026 |\n \\|\\|"},{"name":"keyword.operator.assignment.ink","match":"(?x)\n =(?!=)"},{"name":"keyword.operator.assignment.augmented.ink","match":"(?x)\n %= |\n \u0026= |\n \\*= |\n \\+= |\n \\-= |\n /="},{"name":"keyword.operator.relational.ink","match":"(?x)\n \u003c= |\n \u003e= |\n \u003c |\n \u003e"},{"name":"keyword.operator.comparison.ink","match":"(?x)\n == |\n !="},{"name":"keyword.operator.arithmetic.ink","match":"(?x)\n \\-\\- |\n \\+\\+ |\n / |\n % |\n \\* |\n \\+ |\n (?\u003c!$)(?:[^\\S\\n\\r])*-(?:[^\\S\\n\\r])*(?!=)"},{"name":"keyword.operator.membership.ink","match":"(?x)\n \\? |\n !\\? |\n \\^"},{"name":"keyword.operator.word.ink","match":"(?x)\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])not (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])and (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])or (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])has (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])hasnt (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]) |\n (?\u003c=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])mod (?=[^a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}])"}]},"parentheses":{"patterns":[{"name":"punctuation.section.parens.begin.ink","match":"\\("},{"name":"punctuation.section.parens.end.ink","match":"\\)"}]},"returnStatement":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*(return)(?=\\s)","end":"(?=$)","patterns":[{"include":"#function"},{"include":"#divert"},{"include":"#languageLiteral"},{"include":"#stringLiteral"},{"include":"#expressionIdentifier"},{"include":"#expression"},{"include":"#numberLiteral"}],"beginCaptures":{"1":{"name":"keyword.control.ink"}}}]},"stitch":{"patterns":[{"begin":"^(?:[^\\S\\n\\r])*(=)","end":"(?=^)","patterns":[{"include":"#comment"},{"include":"#knotStitchDeclaration"}],"beginCaptures":{"1":{"name":"storage.knot.ink storage.type.ink"}}}]},"stringLiteral":{"patterns":[{"begin":"(?:[^\\S\\n\\r]*)(\\\")","end":"(\\\")(?:[^\\S\\n\\r]*)","patterns":[{"name":"constant.character.escape.ink","match":"\\\\."},{"name":"string.quoted.double.ink","match":"[^\\n\\r\\\"]+"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.ink"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.ink"}}}]},"substitution":{"patterns":[{"match":"(?\u003c=\\{)([^\\{\\}\\:\\|]+)(?=\\})","captures":{"1":{"name":"keyword.control.ink"}}}]},"tag":{"patterns":[{"name":"string.quoted.other.ink entity.tag.ink","begin":"(?\u003c!\\\\)(\\#)","end":"(?=$|\\#)","patterns":[{"include":"#comment"},{"include":"#tag"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.ink comment.line.ink entity.tag.begin.ink"}}}]},"tempDeclaration":{"patterns":[{"begin":"(?x)\n (?:(?\u003c=^)|(?\u003c=\\~))\n (?:[^\\S\\n\\r])*\n (temp)\n (?:[^\\S\\n\\r])*\n ([a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*[a-zA-Z_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}][a-zA-Z0-9_\\x{0100}-\\x{017F}\\x{0180}-\\x{024F}\\x{0600}-\\x{06FF}\\x{0530}-\\x{058F}\\x{0400}-\\x{04FF}\\x{0370}-\\x{03FF}\\x{0590}-\\x{05FF}]*)\n (?:[^\\S\\n\\r])*\n (=)","end":"(?=$)","patterns":[{"include":"#comment"},{"include":"#function"},{"include":"#divert"},{"include":"#languageLiteral"},{"include":"#stringLiteral"},{"include":"#expressionIdentifier"},{"include":"#expression"},{"include":"#numberLiteral"}],"beginCaptures":{"1":{"name":"storage.modifier.ink"},"2":{"name":"entity.name.variable.other.ink"},"3":{"name":"keyword.assignment.ink"}}}]},"textSuppression":{"patterns":[{"begin":"(?\u003c!\\\\)(\\[)","end":"(?\u003c!\\\\)(\\])","patterns":[{"include":"#interpolevaluablock"}],"beginCaptures":{"1":{"name":"keyword.choice.suppression.ink keyword.control.ink"}},"endCaptures":{"1":{"name":"keyword.choice.suppression.ink keyword.control.ink"}}}]},"todo":{"patterns":[{"name":"comment.line.ink entity.todo.ink","begin":"(?\u003c=^|\\-)(?:[^\\S\\n\\r])*(TODO)","end":"(?=$)","patterns":[{"include":"#comment"}],"beginCaptures":{"1":{"name":"constant.other entity.todo.begin.ink"}}}]},"tunnel":{"patterns":[{"begin":"(?:[^\\S\\n\\r])*(-\u003e(?:-\u003e)?|\u003c-)(?:[^\\S\\n\\r])*","end":"(?=($|\\}|\\)|\\|))","patterns":[{"include":"#comment"},{"include":"#function"},{"include":"#divertIdentifier"}],"beginCaptures":{"1":{"name":"keyword.divert.ink keyword.other.ink"}}}]}}}
|