diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index 4eb76cc..bad2f59 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -49,7 +49,10 @@ repository: - include: '#for-loop' - include: '#keywords' - include: '#arrow-function' - - include: '#method-call' + + - include: '#method-call-dotted' + - include: '#constructor-call' + - include: '#method-call-simple' - include: '#enum-constructor-call' - include: '#punctuation-braces' - include: '#macro-reification' @@ -58,12 +61,18 @@ repository: - include: '#punctuation-terminator' - include: '#punctuation-comma' - include: '#punctuation-accessor' + - include: '#type-member-access' - include: '#identifiers' + enum-member: + # enum pascal fix + - match: (?m)^\s*([_A-Z]\w*)(?=\s*(?:;|,|\n)) + captures: + '1': { name: variable.other.hx } identifiers: patterns: - include: '#constant-name' + - include: '#identifier-name' # prefer this first (fixes var and finals) - include: '#type-name' - - include: '#identifier-name' package: begin: package\b beginCaptures: @@ -102,13 +111,31 @@ repository: - match: \b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;))) name: variable.other.hxt - include: '#type-path-package-name' + method-call-dotted: + match: \b((?:_*[a-z]\w*\.)*)(_*[A-Z][a-z]\w*)(\.)([_A-Za-z]\w*)(?=\s*\() + captures: + '1': { name: support.package.hx } # package / earlier path segments (optional) + '2': { name: entity.name.type.hx } # Class / Type token (PascalCase) + '3': { name: punctuation.accessor.hx } # the dot between Class and Function + '4': { name: entity.name.function.hx } # the Method token + constructor-call: + # fix addChild(new FlxGame())'s FlxGame being colored as a function instead of a class + match: \b(_*[A-Z][a-zA-Z0-9]*)\s*(?=\() + captures: + '1': { name: entity.name.type.hx } + method-call-simple: + match: (? + - begin: (?) + endCaptures: + '1': { name: punctuation.definition.typeparameters.end.hx } + patterns: + - include: '#type' + # handle regular constructors n types + - match: (?fileTypeshxdumpnameHaxescopeNamesource.hxuuid67c72f9f-862c-4e48-8951-dcc22c0bb4eapatternsinclude#allrepositoryallpatternsinclude#globalinclude#packageinclude#importinclude#usingmatch\b(final)\b(?=\s+(class|interface|extern|private)\b)namestorage.modifier.hxinclude#abstractinclude#classinclude#enuminclude#interfaceinclude#typedefinclude#blockinclude#block-contentsglobalpatternsinclude#commentsinclude#conditional-compilationblockbegin\{beginCaptures0namepunctuation.definition.block.begin.hxend\}endCaptures0namepunctuation.definition.block.end.hxpatternsinclude#blockinclude#block-contentsblock-contentspatternsinclude#globalinclude#regexinclude#arrayinclude#constantsinclude#stringsinclude#metadatainclude#methodinclude#variableinclude#modifiersinclude#new-exprinclude#for-loopinclude#keywordsinclude#arrow-functioninclude#method-callinclude#enum-constructor-callinclude#punctuation-bracesinclude#macro-reificationinclude#operatorsinclude#operator-assignmentinclude#punctuation-terminatorinclude#punctuation-commainclude#punctuation-accessorinclude#identifiersidentifierspatternsinclude#constant-nameinclude#type-nameinclude#identifier-namepackagebeginpackage\bbeginCaptures0namekeyword.other.package.hxend$|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#type-pathinclude#type-path-package-nameusingbeginusing\bbeginCaptures0namekeyword.other.using.hxend$|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#type-pathinclude#type-path-package-nameimportbeginimport\bbeginCaptures0namekeyword.control.import.hxend$|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#type-pathmatch\b(as)\bnamekeyword.control.as.hxmatch\b(in)\bnamekeyword.control.in.hxmatch\*nameconstant.language.import-all.hxmatch\b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;)))namevariable.other.hxtinclude#type-path-package-nametype-pathpatternsinclude#globalinclude#punctuation-accessorinclude#type-path-type-nametype-path-type-namematch\b(_*[A-Z]\w*)\bnameentity.name.type.hxtype-path-package-namematch\b([_A-Za-z]\w*)\bnamesupport.package.hxabstractbegin(?=abstract\s+[A-Z])end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.abstract.hxpatternsinclude#abstract-nameinclude#abstract-name-postinclude#abstract-blockabstract-namebegin\b(abstract)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globalabstract-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#globalmatch\b(from|to)\bnamekeyword.other.hxinclude#typematch[\(\)]namepunctuation.definition.other.hxabstract-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#methodinclude#modifiersinclude#variableinclude#blockinclude#block-contentsclassbegin(?=class)end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.class.hxpatternsinclude#class-nameinclude#class-name-postinclude#class-blockclass-namebegin\b(class)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxnamemeta.class.identifier.hxpatternsinclude#globalclass-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#modifiers-inheritanceinclude#typeclass-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#methodinclude#modifiersinclude#variableinclude#blockinclude#block-contentsenumbegin(?=enum\s+[A-Z])end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.enum.hxpatternsinclude#enum-nameinclude#enum-name-postinclude#enum-blockenum-namebegin\b(enum)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globalenum-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#typeenum-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#globalinclude#metadatainclude#parametersinclude#identifiersinterfacebegin(?=interface)end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.interface.hxpatternsinclude#interface-nameinclude#interface-name-postinclude#interface-blockinterface-namebegin\b(interface)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globalinterface-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#globalinclude#modifiers-inheritanceinclude#typeinterface-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#methodinclude#variableinclude#blockinclude#block-contentstypedefbegin(?=typedef)end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.typedef.hxpatternsinclude#typedef-nameinclude#typedef-name-postinclude#typedef-blocktypedef-namebegin\b(typedef)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globaltypedef-name-postbegin(?<=\w)end(\{)|(?=;)endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#globalinclude#punctuation-bracketsinclude#punctuation-separatorinclude#operator-assignmentinclude#typetypedef-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#globalinclude#metadatainclude#methodinclude#variableinclude#modifiersinclude#punctuation-commainclude#operator-optionalinclude#typedef-extensioninclude#typedef-simple-field-type-hintinclude#identifier-nameinclude#stringstypedef-extensionbegin>end,|$patternsinclude#typetypedef-simple-field-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\}|,|;)patternsinclude#typeregexbegin(~/)beginCaptures1namepunctuation.definition.string.begin.hxend(/)([gimsu]*)endCaptures1namepunctuation.definition.string.end.hx2namekeyword.other.hxnamestring.regexp.hxpatternsinclude#regexpregex-character-classpatternsmatch\\[wWsSdDtrnvf]|\.nameconstant.other.character-class.regexpmatch\\([0-7]{3}|x\h\h|u\h\h\h\h)nameconstant.character.numeric.regexpmatch\\c[A-Z]nameconstant.character.control.regexpmatch\\.nameconstant.character.escape.backslash.regexpregexppatternsmatch\\[bB]|\^|\$namekeyword.control.anchor.regexpmatch\\[1-9]\d*namekeyword.other.back-reference.regexpmatch[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??namekeyword.operator.quantifier.regexpmatch\|namekeyword.operator.or.regexpbegin(\()((\?=)|(\?!))beginCaptures1namepunctuation.definition.group.regexp2namepunctuation.definition.group.assertion.regexp3namemeta.assertion.look-ahead.regexp4namemeta.assertion.negative-look-ahead.regexpend(\))endCaptures1namepunctuation.definition.group.regexpnamemeta.group.assertion.regexppatternsinclude#regexpbegin\((\?:)?beginCaptures0namepunctuation.definition.group.regexp1namepunctuation.definition.group.capture.regexpend\)endCaptures0namepunctuation.definition.group.regexpnamemeta.group.regexppatternsinclude#regexpbegin(\[)(\^)?beginCaptures1namepunctuation.definition.character-class.regexp2namekeyword.operator.negation.regexpend(\])endCaptures1namepunctuation.definition.character-class.regexpnameconstant.other.character-class.set.regexppatternsmatch(?:.|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))\-(?:[^\]\\]|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))captures1nameconstant.character.numeric.regexp2nameconstant.character.control.regexp3nameconstant.character.escape.backslash.regexp4nameconstant.character.numeric.regexp5nameconstant.character.control.regexp6nameconstant.character.escape.backslash.regexpnameconstant.other.character-class.range.regexpinclude#regex-character-classinclude#regex-character-classarraybegin\[beginCaptures0namepunctuation.definition.array.begin.hxend\]endCaptures0namepunctuation.definition.array.end.hxnamemeta.array.literal.hxpatternsinclude#blockinclude#block-contentsconstantspatternsmatch\b(true|false|null)\bnameconstant.language.hxmatch\b(?:0[xX][0-9a-fA-F][_0-9a-fA-F]*([iu][0-9][0-9_]*)?)\bcaptures0nameconstant.numeric.hex.hx1nameconstant.numeric.suffix.hxmatch\b(?:0[bB][01][_01]*([iu][0-9][0-9_]*)?)\bcaptures0nameconstant.numeric.bin.hx1nameconstant.numeric.suffix.hxmatch(?x) +fileTypeshxdumpnameHaxescopeNamesource.hxuuid67c72f9f-862c-4e48-8951-dcc22c0bb4eapatternsinclude#allrepositoryallpatternsinclude#globalinclude#packageinclude#importinclude#usingmatch\b(final)\b(?=\s+(class|interface|extern|private)\b)namestorage.modifier.hxinclude#abstractinclude#classinclude#enuminclude#interfaceinclude#typedefinclude#blockinclude#block-contentsglobalpatternsinclude#commentsinclude#conditional-compilationblockbegin\{beginCaptures0namepunctuation.definition.block.begin.hxend\}endCaptures0namepunctuation.definition.block.end.hxpatternsinclude#blockinclude#block-contentsblock-contentspatternsinclude#globalinclude#regexinclude#arrayinclude#constantsinclude#stringsinclude#metadatainclude#methodinclude#variableinclude#modifiersinclude#new-exprinclude#for-loopinclude#keywordsinclude#arrow-functioninclude#method-call-dottedinclude#constructor-callinclude#method-call-simpleinclude#enum-constructor-callinclude#punctuation-bracesinclude#macro-reificationinclude#operatorsinclude#operator-assignmentinclude#punctuation-terminatorinclude#punctuation-commainclude#punctuation-accessorinclude#type-member-accessinclude#identifiersenum-membermatch(?m)^\s*([_A-Z]\w*)(?=\s*(?:;|,|\n))captures1namevariable.other.hxidentifierspatternsinclude#constant-nameinclude#identifier-nameinclude#type-namepackagebeginpackage\bbeginCaptures0namekeyword.other.package.hxend$|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#type-pathinclude#type-path-package-nameusingbeginusing\bbeginCaptures0namekeyword.other.using.hxend$|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#type-pathinclude#type-path-package-nameimportbeginimport\bbeginCaptures0namekeyword.control.import.hxend$|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#type-pathmatch\b(as)\bnamekeyword.control.as.hxmatch\b(in)\bnamekeyword.control.in.hxmatch\*nameconstant.language.import-all.hxmatch\b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;)))namevariable.other.hxtinclude#type-path-package-namemethod-call-dottedmatch\b((?:_*[a-z]\w*\.)*)(_*[A-Z][a-z]\w*)(\.)([_A-Za-z]\w*)(?=\s*\()captures1namesupport.package.hx2nameentity.name.type.hx3namepunctuation.accessor.hx4nameentity.name.function.hxconstructor-callmatch\b(_*[A-Z][a-zA-Z0-9]*)\s*(?=\()captures1nameentity.name.type.hxmethod-call-simplematch(?<!\bnew\s)\b([_a-z]\w*)(?=\s*\()captures1nameentity.name.function.hxtype-pathpatternsinclude#globalinclude#punctuation-accessorinclude#type-path-type-nametype-path-type-namematch(?<!\bfunction\s)(?<!\bvar\s)(?<!\bfinal\s)\b(_*[A-Z][a-z]\w*)\b(?!\s*\()nameentity.name.type.hxtype-path-package-namematch\b([_A-Za-z]\w*)\bnamesupport.package.hxabstractbegin(?=abstract\s+[A-Z])end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.abstract.hxpatternsinclude#abstract-nameinclude#abstract-name-postinclude#abstract-blockabstract-namebegin\b(abstract)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globalabstract-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#globalmatch\b(from|to)\bnamekeyword.other.hxinclude#typematch[\(\)]namepunctuation.definition.other.hxabstract-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#methodinclude#modifiersinclude#variableinclude#blockinclude#block-contentsclassbegin(?=class)end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.class.hxpatternsinclude#class-nameinclude#class-name-postinclude#class-blockclass-namebegin\b(class)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxnamemeta.class.identifier.hxpatternsinclude#globalclass-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#modifiers-inheritanceinclude#typeclass-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#methodinclude#modifiersinclude#variableinclude#blockinclude#block-contentsenumbegin(?=enum\s+[A-Z])end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.enum.hxpatternsinclude#enum-nameinclude#enum-name-postinclude#enum-blockenum-namebegin\b(enum)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globalenum-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#typeenum-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#globalinclude#metadatainclude#parametersinclude#enum-memberinclude#punctuation-terminatorinclude#identifiersinterfacebegin(?=interface)end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.interface.hxpatternsinclude#interface-nameinclude#interface-name-postinclude#interface-blockinterface-namebegin\b(interface)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globalinterface-name-postbegin(?<=\w)end([\{;])endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#globalinclude#modifiers-inheritanceinclude#typeinterface-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#methodinclude#variableinclude#blockinclude#block-contentstypedefbegin(?=typedef)end(?<=\})|(;)endCaptures1namepunctuation.terminator.hxnamemeta.typedef.hxpatternsinclude#typedef-nameinclude#typedef-name-postinclude#typedef-blocktypedef-namebegin\b(typedef)\bbeginCaptures1namestorage.type.class.hxend([_A-Za-z]\w*)endCaptures1nameentity.name.type.class.hxpatternsinclude#globaltypedef-name-postbegin(?<=\w)end(\{)|(?=;)endCaptures1namepunctuation.definition.block.begin.hxpatternsinclude#globalinclude#punctuation-bracketsinclude#punctuation-separatorinclude#operator-assignmentinclude#typetypedef-blockbegin(?<=\{)end(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.block.hxpatternsinclude#globalinclude#metadatainclude#methodinclude#variableinclude#modifiersinclude#punctuation-commainclude#operator-optionalinclude#typedef-extensioninclude#typedef-simple-field-type-hintinclude#identifier-nameinclude#stringstypedef-extensionbegin>end,|$patternsinclude#typetypedef-simple-field-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\}|,|;)patternsinclude#typeregexbegin(~/)beginCaptures1namepunctuation.definition.string.begin.hxend(/)([gimsu]*)endCaptures1namepunctuation.definition.string.end.hx2namekeyword.other.hxnamestring.regexp.hxpatternsinclude#regexpregex-character-classpatternsmatch\\[wWsSdDtrnvf]|\.nameconstant.other.character-class.regexpmatch\\([0-7]{3}|x\h\h|u\h\h\h\h)nameconstant.character.numeric.regexpmatch\\c[A-Z]nameconstant.character.control.regexpmatch\\.nameconstant.character.escape.backslash.regexpregexppatternsmatch\\[bB]|\^|\$namekeyword.control.anchor.regexpmatch\\[1-9]\d*namekeyword.other.back-reference.regexpmatch[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??namekeyword.operator.quantifier.regexpmatch\|namekeyword.operator.or.regexpbegin(\()((\?=)|(\?!))beginCaptures1namepunctuation.definition.group.regexp2namepunctuation.definition.group.assertion.regexp3namemeta.assertion.look-ahead.regexp4namemeta.assertion.negative-look-ahead.regexpend(\))endCaptures1namepunctuation.definition.group.regexpnamemeta.group.assertion.regexppatternsinclude#regexpbegin\((\?:)?beginCaptures0namepunctuation.definition.group.regexp1namepunctuation.definition.group.capture.regexpend\)endCaptures0namepunctuation.definition.group.regexpnamemeta.group.regexppatternsinclude#regexpbegin(\[)(\^)?beginCaptures1namepunctuation.definition.character-class.regexp2namekeyword.operator.negation.regexpend(\])endCaptures1namepunctuation.definition.character-class.regexpnameconstant.other.character-class.set.regexppatternsmatch(?:.|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))\-(?:[^\]\\]|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))captures1nameconstant.character.numeric.regexp2nameconstant.character.control.regexp3nameconstant.character.escape.backslash.regexp4nameconstant.character.numeric.regexp5nameconstant.character.control.regexp6nameconstant.character.escape.backslash.regexpnameconstant.other.character-class.range.regexpinclude#regex-character-classinclude#regex-character-classarraybegin\[beginCaptures0namepunctuation.definition.array.begin.hxend\]endCaptures0namepunctuation.definition.array.end.hxnamemeta.array.literal.hxpatternsinclude#blockinclude#block-contentsconstantspatternsmatch\b(true|false|null)\bnameconstant.language.hxmatch\b(?:0[xX][0-9a-fA-F][_0-9a-fA-F]*([iu][0-9][0-9_]*)?)\bcaptures0nameconstant.numeric.hex.hx1nameconstant.numeric.suffix.hxmatch\b(?:0[bB][01][_01]*([iu][0-9][0-9_]*)?)\bcaptures0nameconstant.numeric.bin.hx1nameconstant.numeric.suffix.hxmatch(?x) (?<!\$)(?: (?:\b[0-9][0-9_]*(\.)[0-9_]+[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\b)| # 1.1E+3f64 (?:\b[0-9][0-9_]*(\.)[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\b)| # 1.E+3f64 @@ -8,4 +8,4 @@ (?:\b[0-9][0-9_]*(\.)(?!\.)(?:\B|([fiu][0-9][0-9_]*)\b))| # 1.f64 (?:\B(\.)[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b)| # .1f64 (?:\b[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b) # 1u64 -)(?!\$)captures0nameconstant.numeric.decimal.hx1namemeta.delimiter.decimal.period.hx2nameconstant.numeric.suffix.hx3namemeta.delimiter.decimal.period.hx4nameconstant.numeric.suffix.hx5namemeta.delimiter.decimal.period.hx6nameconstant.numeric.suffix.hx7nameconstant.numeric.suffix.hx8namemeta.delimiter.decimal.period.hx9nameconstant.numeric.suffix.hx10namemeta.delimiter.decimal.period.hx11nameconstant.numeric.suffix.hx12namemeta.delimiter.decimal.period.hx13nameconstant.numeric.suffix.hx14nameconstant.numeric.suffix.hxcommentspatternsbegin/\*\*(?!/)beginCaptures0namepunctuation.definition.comment.hxend\*/endCaptures0namepunctuation.definition.comment.hxnamecomment.block.documentation.hxpatternsinclude#javadoc-tagsbegin/\*beginCaptures0namepunctuation.definition.comment.hxend\*/endCaptures0namepunctuation.definition.comment.hxnamecomment.block.hxpatternsinclude#javadoc-tagsmatch(//).*$\n?captures1namepunctuation.definition.comment.hxnamecomment.line.double-slash.hxjavadoc-tagspatternsmatch(@(?:param|exception|throws|event))\s+([_A-Za-z]\w*)\s+captures1namestorage.type.class.javadoc2namevariable.other.javadocmatch(@since)\s+([\w\.-]+)\s+captures1namestorage.type.class.javadoc2nameconstant.numeric.javadocmatch@(param|exception|throws|deprecated|returns?|since|default|see|event)captures0namestorage.type.class.javadocstringspatternsbegin"beginCaptures0namepunctuation.definition.string.begin.hxend"endCaptures0namepunctuation.definition.string.end.hxnamestring.quoted.double.hxpatternsinclude#string-escape-sequencesbegin(')beginCaptures0namestring.quoted.single.hx1namepunctuation.definition.string.begin.hxend(')endCaptures0namestring.quoted.single.hx1namepunctuation.definition.string.end.hxpatternsbegin\$(?=\$)beginCaptures0nameconstant.character.escape.hxend\$endCaptures0nameconstant.character.escape.hxnamestring.quoted.single.hxinclude#string-escape-sequencesbegin(\${)beginCaptures0namepunctuation.definition.block.begin.hxend(})endCaptures0namepunctuation.definition.block.end.hxpatternsinclude#block-contentsmatch(\$)([_a-zA-Z]\w*)captures1namepunctuation.definition.block.begin.hx2namevariable.other.hxmatchnameconstant.character.escape.hxmatch.namestring.quoted.single.hxstring-escape-sequencespatternsmatch\\[0-3][0-9]{2}nameconstant.character.escape.hxmatch\\x[0-9A-Fa-f]{2}nameconstant.character.escape.hxmatch\\u[0-9]{4}nameconstant.character.escape.hxmatch\\u\{[0-9A-Fa-f]{1,}\}nameconstant.character.escape.hxmatch\\[nrt"'\\]nameconstant.character.escape.hxmatch\\.nameinvalid.escape.sequence.hxmetadatapatternsbegin(@)(:(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*(\()beginCaptures1namepunctuation.metadata.hx2namestorage.modifier.metadata.hx3namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsmatch((@)(:(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))captures2namepunctuation.metadata.hx3namestorage.modifier.metadata.hxbegin(@)(:?[a-zA-Z_]*)\s*(\()beginCaptures1namepunctuation.metadata.hx2namevariable.metadata.hx3namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsmatch(@)(:?)([a-zA-Z_]*(\.))*([a-zA-Z_]*)?captures1namepunctuation.metadata.hx2namevariable.metadata.hx3namevariable.metadata.hx4namepunctuation.accessor.hx5namevariable.metadata.hxmethodbegin(?=\bfunction\b)end(?<=[\};])namemeta.method.hxpatternsinclude#macro-reificationinclude#method-nameinclude#method-name-postinclude#method-blockmethod-namebegin\b(function)\b\s*\b(?:(new)|([_A-Za-z]\w*))?\bbeginCaptures1namestorage.type.function.hx2namestorage.type.hx3nameentity.name.function.hxend(?=$|\()patternsinclude#macro-reificationinclude#type-parametersmethod-name-postbegin(?<=[\w\s>])end(\{)|(;)endCaptures1namepunctuation.definition.block.begin.hx2namepunctuation.terminator.hxpatternsinclude#parametersinclude#method-return-type-hintinclude#blockinclude#block-contentsmethod-blockbegin(?<=\{)beginCaptures1namepunctuation.definition.block.begin.hxend(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.method.block.hxpatternsinclude#blockinclude#block-contentsparametersbegin\(beginCaptures0namepunctuation.definition.parameters.begin.hxend\s*(\)(?!\s*->))endCaptures1namepunctuation.definition.parameters.end.hxnamemeta.parameters.hxpatternsinclude#parameterinclude#punctuation-commaparameterbegin(?<=\(|,)end(?=\)(?!\s*->)|,)patternsinclude#parameter-nameinclude#parameter-type-hintinclude#parameter-assigninclude#globalparameter-namepatternsmatch\s*([_a-zA-Z]\w*)captures1namevariable.parameter.hxinclude#globalinclude#metadatainclude#operator-optionalinclude#operator-restoperator-restmatch\.\.\.namekeyword.operator.rest.hxparameter-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\)(?!\s*->)|,|=)patternsinclude#typeparameter-assignbegin=beginCaptures0namekeyword.operator.assignment.hxend(?=\)|,)patternsinclude#blockinclude#block-contentsarrow-functionbegin(\()(?=[^(]*?\)\s*->)beginCaptures1namepunctuation.definition.parameters.begin.hxend(\))\s*(->)endCaptures1namepunctuation.definition.parameters.end.hx2namestorage.type.function.arrow.hxnamemeta.method.arrow.hxpatternsinclude#arrow-function-parameterarrow-function-parameterbegin(?<=\(|,)end(?=\)|,)patternsinclude#parameter-nameinclude#arrow-function-parameter-type-hintinclude#parameter-assigninclude#punctuation-commainclude#globalarrow-function-parameter-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\)|,|=)patternsinclude#typemethod-return-type-hintbegin(?<=\))\s*(:)beginCaptures1namekeyword.operator.type.annotation.hxend(?=\{|;|[a-z0-9])patternsinclude#typeoperator-optionalmatch(\?)(?!\s)namekeyword.operator.optional.hxvariablebegin(?=\b(var|final)\b)end(?=$)|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#variable-nameinclude#variable-name-nextinclude#variable-assigninclude#variable-name-postvariable-namebegin\b(var|final)\bbeginCaptures1namestorage.type.variable.hxend(?=$)|([_a-zA-Z]\w*)endCaptures1namevariable.other.hxpatternsinclude#operator-optionalvariable-name-nextbegin,beginCaptures0namepunctuation.separator.comma.hxend([_a-zA-Z]\w*)endCaptures1namevariable.other.hxpatternsinclude#globalvariable-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=$|;|,|=)patternsinclude#typevariable-assignbegin=beginCaptures0namekeyword.operator.assignment.hxend(?=;|,)patternsinclude#blockinclude#block-contentsvariable-name-postbegin(?<=\w)end(?=;)|(?==)patternsinclude#variable-accessorsinclude#variable-type-hintinclude#block-contentsvariable-accessorsbegin\(beginCaptures0namepunctuation.definition.parameters.begin.hxend\)endCaptures0namepunctuation.definition.parameters.end.hxnamemeta.parameters.hxpatternsinclude#globalinclude#keywords-accessorinclude#accessor-methodinclude#punctuation-commakeywords-accessormatch\b(private|default|get|set|dynamic|never|null)\bnamestorage.type.property.hxaccessor-methodpatternsmatch\b(get|set)_[_A-Za-z]\w*\bnameentity.name.function.hxmodifierspatternsmatch\b(enum)\bnamestorage.type.classmatch\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\bnamestorage.modifier.hxmatch\b(final)\b(?=\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))namestorage.modifier.hxnew-exprnamenew.expr.hxbegin(?<!\.)\b(new)\bbeginCaptures1namekeyword.operator.new.hxend(?=$|\()patternsinclude#typefor-loopbegin\b(for)\b\s*(\()beginCaptures1namekeyword.control.flow-control.hx2namemeta.brace.round.hxend(\))endCaptures1namemeta.brace.round.hxpatternsmatch\b(in)\bnamekeyword.other.in.hxinclude#blockinclude#block-contentskeywordspatternsbegin(?<=trace|$type|if|while|for|super)\s*(\()beginCaptures1namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsbegin(?<=catch)\s*(\()beginCaptures1namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsinclude#type-checkbegin(?<=cast)\s*(\()beginCaptures1namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsbegin(?=,)end(?=\))patternsinclude#typeinclude#block-contentsmatch\b(try|catch|throw)\bnamekeyword.control.catch-exception.hxbegin\b(case|default)\bbeginCaptures1namekeyword.control.flow-control.hxend:|(?=if)|$patternsinclude#globalinclude#metadatamatch\b(var|final)\b\s*([_a-zA-Z]\w*)\bcaptures1namestorage.type.variable.hx2namevariable.other.hxinclude#arrayinclude#constantsinclude#stringsmatch\(namemeta.brace.round.hxmatch\)namemeta.brace.round.hxinclude#macro-reificationmatch=>namekeyword.operator.extractor.hxinclude#operator-assignmentinclude#punctuation-commainclude#keywordsinclude#method-callinclude#identifiersmatch\b(if|else|return|do|while|for|break|continue|switch|case|default)\bnamekeyword.control.flow-control.hxmatch\b(cast|untyped)\bnamekeyword.other.untyped.hxmatch\btrace\bnamekeyword.other.trace.hxmatch\$type\bnamekeyword.other.type.hxmatch\__(global|this)__\bnamekeyword.other.untyped-property.hxmatch\b(this|super)\bnamevariable.language.hxmatch\bnew\bnamekeyword.operator.new.hxmatch\b(abstract|class|enum|interface|typedef)\bnamestorage.type.hxmatch->namestorage.type.function.arrow.hxinclude#modifiersinclude#modifiers-inheritancepunctuation-bracesbegin\(beginCaptures0namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#keywordsinclude#blockinclude#block-contentsinclude#type-checktype-checkbegin(?<!macro)(?=:)end(?=\))patternsinclude#operator-type-hintinclude#typemodifiers-inheritancematch\b(implements|extends)\bnamestorage.modifier.hxmethod-callbegin\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*(\()beginCaptures1namekeyword.other.untyped-function.hx2nameentity.name.function.hx3namemeta.brace.round.hxend(\))endCaptures1namemeta.brace.round.hxpatternsinclude#blockinclude#block-contentsenum-constructor-callbegin\b(?<!\.)((_*[a-z]\w*\.)*)(_*[A-Z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\s*(\()beginCaptures1namesupport.package.hx3nameentity.name.type.hx4namesupport.package.hx5nameentity.name.type.hx6namemeta.brace.round.hxend(\))endCaptures1namemeta.brace.round.hxpatternsinclude#blockinclude#block-contentsmacro-reificationpatternsmatch(\$)([eabipv])\{captures1namepunctuation.definition.reification.hx2namekeyword.reification.hxmatch((\$)([a-zA-Z]*))captures2namepunctuation.definition.reification.hx3namevariable.reification.hxconditional-compilationpatternsmatch((#(if|elseif))[\s!]+([a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\s|/\*|//))captures0namepunctuation.definition.tagbegin((#(if|elseif))[\s!]*)(?=\()beginCaptures0namepunctuation.definition.tagend(?<=\)|\n)endCaptures0namepunctuation.definition.tagnamepunctuation.definition.tagpatternsinclude#conditional-compilation-parensmatch(#(end|else|error|line))namepunctuation.definition.tagmatch(#([a-zA-Z0-9_]*))\snamepunctuation.definition.tagconditional-compilation-parensbegin\(end\)patternsinclude#conditional-compilation-parensoperator-assignmentmatch(=)namekeyword.operator.assignment.hxoperator-type-hintmatch(:)namekeyword.operator.type.annotation.hxoperatorspatternsmatch(&&|\|\|)namekeyword.operator.logical.hxmatch(~|&|\||\^|>>>|<<|>>)namekeyword.operator.bitwise.hxmatch(==|!=|<=|>=|<|>)namekeyword.operator.comparison.hxmatch(!)namekeyword.operator.logical.hxmatch(\-\-|\+\+)namekeyword.operator.increment-decrement.hxmatch(\-|\+|\*|\/|%)namekeyword.operator.arithmetic.hxmatch\.\.\.namekeyword.operator.intiterator.hxmatch=>namekeyword.operator.arrow.hxmatch\?\?namekeyword.operator.nullcoalescing.hxmatch\?\.namekeyword.operator.safenavigation.hxmatch\bis\b(?!\()namekeyword.other.hxbegin\?beginCaptures0namekeyword.operator.ternary.hxend:endCaptures0namekeyword.operator.ternary.hxpatternsinclude#blockinclude#block-contentspunctuation-commamatch,namepunctuation.separator.comma.hxpunctuation-accessormatch\.namepunctuation.accessor.hxpunctuation-terminatormatch;namepunctuation.terminator.hxconstant-namematch\b([_A-Z][_A-Z0-9]*)\bnamevariable.other.hxtypepatternsinclude#globalinclude#macro-reificationinclude#type-nameinclude#type-parametersmatch->namekeyword.operator.type.function.hxmatch&namekeyword.operator.type.intersection.hxmatch\?(?=\s*[_A-Z])namekeyword.operator.optionalmatch\?(?!\s*[_A-Z])namepunctuation.definition.tagbegin(\{)beginCaptures0namepunctuation.definition.block.begin.hxend(?<=\})patternsinclude#typedef-blockinclude#function-typefunction-typebegin\(beginCaptures0namepunctuation.definition.parameters.begin.hxend\)endCaptures0namepunctuation.definition.parameters.end.hxpatternsinclude#function-type-parameterfunction-type-parameterbegin(?<=\(|,)end(?=\)|,)patternsinclude#globalinclude#metadatainclude#operator-optionalinclude#punctuation-commainclude#function-type-parameter-nameinclude#function-type-parameter-type-hintinclude#parameter-assigninclude#typeinclude#globalfunction-type-parameter-namematch([_a-zA-Z]\w*)(?=\s*:)captures1namevariable.parameter.hxfunction-type-parameter-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\)|,|=)patternsinclude#typetype-namepatternsmatch\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*))*\bcaptures1namesupport.class.builtin.hx2namesupport.package.hx3nameentity.name.type.hxmatch\b(?<![^.]\.)((_*[a-z]\w*\.)*)(_*[A-Z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\bcaptures1namesupport.package.hx3nameentity.name.type.hx4namesupport.package.hx5nameentity.name.type.hxtype-parametersbegin(<)beginCaptures1namepunctuation.definition.typeparameters.begin.hxend(?=$)|(>)endCaptures1namepunctuation.definition.typeparameters.end.hxnamemeta.type-parameters.hxpatternsinclude#typeinclude#type-parameter-constraint-oldinclude#type-parameter-constraint-newinclude#globalinclude#regexinclude#arrayinclude#constantsinclude#stringsinclude#metadatainclude#punctuation-commatype-parameter-constraint-oldbegin(:)\s*(\()beginCaptures1namekeyword.operator.type.annotation.hx2namepunctuation.definition.constraint.begin.hxend\)endCaptures0namepunctuation.definition.constraint.end.hxpatternsinclude#typeinclude#punctuation-commatype-parameter-constraint-newmatch:namekeyword.operator.type.annotation.hxtidentifier-namematch\b([_A-Za-z]\w*)\bnamevariable.other.hx \ No newline at end of file +)(?!\$)captures0nameconstant.numeric.decimal.hx1namemeta.delimiter.decimal.period.hx2nameconstant.numeric.suffix.hx3namemeta.delimiter.decimal.period.hx4nameconstant.numeric.suffix.hx5namemeta.delimiter.decimal.period.hx6nameconstant.numeric.suffix.hx7nameconstant.numeric.suffix.hx8namemeta.delimiter.decimal.period.hx9nameconstant.numeric.suffix.hx10namemeta.delimiter.decimal.period.hx11nameconstant.numeric.suffix.hx12namemeta.delimiter.decimal.period.hx13nameconstant.numeric.suffix.hx14nameconstant.numeric.suffix.hxcommentspatternsbegin/\*\*(?!/)beginCaptures0namepunctuation.definition.comment.hxend\*/endCaptures0namepunctuation.definition.comment.hxnamecomment.block.documentation.hxpatternsinclude#javadoc-tagsbegin/\*beginCaptures0namepunctuation.definition.comment.hxend\*/endCaptures0namepunctuation.definition.comment.hxnamecomment.block.hxpatternsinclude#javadoc-tagsmatch(//).*$\n?captures1namepunctuation.definition.comment.hxnamecomment.line.double-slash.hxjavadoc-tagspatternsmatch(@(?:param|exception|throws|event))\s+([_A-Za-z]\w*)\s+captures1namestorage.type.class.javadoc2namevariable.other.javadocmatch(@since)\s+([\w\.-]+)\s+captures1namestorage.type.class.javadoc2nameconstant.numeric.javadocmatch@(param|exception|throws|deprecated|returns?|since|default|see|event)captures0namestorage.type.class.javadocstringspatternsbegin"beginCaptures0namepunctuation.definition.string.begin.hxend"endCaptures0namepunctuation.definition.string.end.hxnamestring.quoted.double.hxpatternsinclude#string-escape-sequencesbegin(')beginCaptures0namestring.quoted.single.hx1namepunctuation.definition.string.begin.hxend(')endCaptures0namestring.quoted.single.hx1namepunctuation.definition.string.end.hxpatternsbegin\$(?=\$)beginCaptures0nameconstant.character.escape.hxend\$endCaptures0nameconstant.character.escape.hxnamestring.quoted.single.hxinclude#string-escape-sequencesbegin(\${)beginCaptures0namepunctuation.definition.block.begin.hxend(})endCaptures0namepunctuation.definition.block.end.hxpatternsinclude#block-contentsmatch(\$)([_a-zA-Z]\w*)captures1namepunctuation.definition.block.begin.hx2namevariable.other.hxmatchnameconstant.character.escape.hxmatch.namestring.quoted.single.hxstring-escape-sequencespatternsmatch\\[0-3][0-9]{2}nameconstant.character.escape.hxmatch\\x[0-9A-Fa-f]{2}nameconstant.character.escape.hxmatch\\u[0-9]{4}nameconstant.character.escape.hxmatch\\u\{[0-9A-Fa-f]{1,}\}nameconstant.character.escape.hxmatch\\[nrt"'\\]nameconstant.character.escape.hxmatch\\.nameinvalid.escape.sequence.hxmetadatapatternsbegin(@)(:(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*(\()beginCaptures1namepunctuation.metadata.hx2namestorage.modifier.metadata.hx3namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsmatch((@)(:(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))captures2namepunctuation.metadata.hx3namestorage.modifier.metadata.hxbegin(@)(:?[a-zA-Z_]*)\s*(\()beginCaptures1namepunctuation.metadata.hx2namevariable.metadata.hx3namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsmatch(@)(:?)([a-zA-Z_]*(\.))*([a-zA-Z_]*)?captures1namepunctuation.metadata.hx2namevariable.metadata.hx3namevariable.metadata.hx4namepunctuation.accessor.hx5namevariable.metadata.hxmethodbegin(?=\bfunction\b)end(?<=[\};])namemeta.method.hxpatternsinclude#macro-reificationinclude#method-nameinclude#method-name-postinclude#method-blockmethod-namebegin\b(function)\b\s*\b(?:(new)|([_A-Za-z]\w*))?\bbeginCaptures1namestorage.type.function.hx2namestorage.type.hx3nameentity.name.function.hxend(?=$|\()patternsinclude#macro-reificationinclude#type-parametersmethod-name-postbegin(?<=[\w\s>])end(\{)|(;)endCaptures1namepunctuation.definition.block.begin.hx2namepunctuation.terminator.hxpatternsinclude#parametersinclude#method-return-type-hintinclude#blockinclude#block-contentsmethod-blockbegin(?<=\{)beginCaptures1namepunctuation.definition.block.begin.hxend(\})endCaptures1namepunctuation.definition.block.end.hxnamemeta.method.block.hxpatternsinclude#blockinclude#block-contentsparametersbegin\(beginCaptures0namepunctuation.definition.parameters.begin.hxend\s*(\)(?!\s*->))endCaptures1namepunctuation.definition.parameters.end.hxnamemeta.parameters.hxpatternsinclude#parameterinclude#punctuation-commaparameterbegin(?<=\(|,)end(?=\)(?!\s*->)|,)patternsinclude#parameter-nameinclude#parameter-type-hintinclude#parameter-assigninclude#globalparameter-namepatternsmatch\s*([_a-zA-Z]\w*)captures1namevariable.parameter.hxinclude#globalinclude#metadatainclude#operator-optionalinclude#operator-restoperator-restmatch\.\.\.namekeyword.operator.rest.hxparameter-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\)(?!\s*->)|,|=)patternsinclude#typeparameter-assignbegin=beginCaptures0namekeyword.operator.assignment.hxend(?=\)|,)patternsinclude#blockinclude#block-contentsarrow-functionbegin(\()(?=[^(]*?\)\s*->)beginCaptures1namepunctuation.definition.parameters.begin.hxend(\))\s*(->)endCaptures1namepunctuation.definition.parameters.end.hx2namestorage.type.function.arrow.hxnamemeta.method.arrow.hxpatternsinclude#arrow-function-parameterarrow-function-parameterbegin(?<=\(|,)end(?=\)|,)patternsinclude#parameter-nameinclude#arrow-function-parameter-type-hintinclude#parameter-assigninclude#punctuation-commainclude#globalarrow-function-parameter-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\)|,|=)patternsinclude#typemethod-return-type-hintbegin(?<=\))\s*(:)beginCaptures1namekeyword.operator.type.annotation.hxend(?=\{|;|[a-z0-9])patternsinclude#typeoperator-optionalmatch(\?)(?!\s)namekeyword.operator.optional.hxvariablebegin(?=\b(var|final)\b)end(?=$)|(;)endCaptures1namepunctuation.terminator.hxpatternsinclude#variable-nameinclude#variable-name-nextinclude#variable-assigninclude#variable-name-postvariable-namebegin\b(var|final)\bbeginCaptures1namestorage.type.variable.hxend(?=$)|([_a-zA-Z]\w*)endCaptures1namevariable.other.hxpatternsinclude#operator-optionalvariable-name-nextbegin,beginCaptures0namepunctuation.separator.comma.hxend([_a-zA-Z]\w*)endCaptures1namevariable.other.hxpatternsinclude#globalvariable-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=$|;|,|=)patternsinclude#typevariable-assignbegin=beginCaptures0namekeyword.operator.assignment.hxend(?=;|,)patternsinclude#blockinclude#block-contentsvariable-name-postbegin(?<=\w)end(?=;)|(?==)patternsinclude#variable-accessorsinclude#variable-type-hintinclude#block-contentsvariable-accessorsbegin\(beginCaptures0namepunctuation.definition.parameters.begin.hxend\)endCaptures0namepunctuation.definition.parameters.end.hxnamemeta.parameters.hxpatternsinclude#globalinclude#keywords-accessorinclude#accessor-methodinclude#punctuation-commakeywords-accessormatch\b(private|default|get|set|dynamic|never|null)\bnamestorage.type.property.hxaccessor-methodpatternsmatch\b(get|set)_[_A-Za-z]\w*\bnameentity.name.function.hxmodifierspatternsmatch\b(enum)\bnamestorage.type.classmatch\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\bnamestorage.modifier.hxmatch\b(final)\b(?=\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))namestorage.modifier.hxnew-exprpatternsbegin(?<!\.)\b(new)\b\s*((?:_*[a-z]\w*\.)*(?:_*[A-Z]\w*))(?:\s*)(<)beginCaptures1namekeyword.operator.new.hx2nameentity.name.type.hx3namepunctuation.definition.typeparameters.begin.hxend(>)endCaptures1namepunctuation.definition.typeparameters.end.hxpatternsinclude#typematch(?<!\.)\b(new)\b\s*((?:_*[a-z]\w*\.)*(?:_*[A-Z]\w*))captures1namekeyword.operator.new.hx2nameentity.name.type.hxfor-loopbegin\b(for)\b\s*(\()beginCaptures1namekeyword.control.flow-control.hx2namemeta.brace.round.hxend(\))endCaptures1namemeta.brace.round.hxpatternsmatch\b(in)\bnamekeyword.other.in.hxinclude#blockinclude#block-contentskeywordspatternsbegin(?<=trace|$type|if|while|for|super)\s*(\()beginCaptures1namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsbegin(?<=catch)\s*(\()beginCaptures1namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#block-contentsinclude#type-checkbegin(?<=cast)\s*(\()beginCaptures1namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsbegin(?=,)end(?=\))patternsinclude#typeinclude#block-contentsmatch\b(try|catch|throw)\bnamekeyword.control.catch-exception.hxbegin\b(case|default)\bbeginCaptures1namekeyword.control.flow-control.hxend:|(?=if)|$patternsinclude#globalinclude#metadatamatch\b(var|final)\b\s*([_a-zA-Z]\w*)\bcaptures1namestorage.type.variable.hx2namevariable.other.hxinclude#arrayinclude#constantsinclude#stringsmatch\(namemeta.brace.round.hxmatch\)namemeta.brace.round.hxinclude#macro-reificationmatch=>namekeyword.operator.extractor.hxinclude#operator-assignmentinclude#punctuation-commainclude#keywordsinclude#enum-constructor-callinclude#method-call-dottedinclude#method-call-simpleinclude#identifiersmatch\b(if|else|return|do|while|for|break|continue|switch|case|default)\bnamekeyword.control.flow-control.hxmatch\b(cast|untyped)\bnamekeyword.other.untyped.hxmatch\btrace\bnamekeyword.other.trace.hxmatch\$type\bnamekeyword.other.type.hxmatch\__(global|this)__\bnamekeyword.other.untyped-property.hxmatch\b(this)\bnamevariable.language.this.hxmatch\b(super)\bnamevariable.language.super.hxmatch\bnew\bnamekeyword.operator.new.hxmatch\b(abstract|class|enum|interface|typedef)\bnamestorage.type.hxmatch->namestorage.type.function.arrow.hxinclude#modifiersinclude#modifiers-inheritancepunctuation-bracesbegin\(beginCaptures0namemeta.brace.round.hxend\)endCaptures0namemeta.brace.round.hxpatternsinclude#keywordsinclude#blockinclude#block-contentsinclude#type-checktype-checkbegin(?<!macro)(?=:)end(?=\))patternsinclude#operator-type-hintinclude#typemodifiers-inheritancematch\b(implements|extends)\bnamestorage.modifier.hxenum-constructor-callmatch\b((?:_*[a-z]\w*\.)*)(_*[A-Z][A-Z0-9_]*)\s*(?=\()captures1namesupport.package.hx2nameentity.name.function.hxmacro-reificationpatternsmatch(\$)([eabipv])\{captures1namepunctuation.definition.reification.hx2namekeyword.reification.hxmatch((\$)([a-zA-Z]*))captures2namepunctuation.definition.reification.hx3namevariable.reification.hxconditional-compilationpatternsmatch((#(if|elseif))[\s!]+([a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\s|/\*|//))captures0namepunctuation.definition.tagbegin((#(if|elseif))[\s!]*)(?=\()beginCaptures0namepunctuation.definition.tagend(?<=\)|\n)endCaptures0namepunctuation.definition.tagnamepunctuation.definition.tagpatternsinclude#conditional-compilation-parensmatch(#(end|else|error|line))namepunctuation.definition.tagmatch(#([a-zA-Z0-9_]*))\snamepunctuation.definition.tagconditional-compilation-parensbegin\(end\)patternsinclude#conditional-compilation-parensoperator-assignmentmatch(=)namekeyword.operator.assignment.hxoperator-type-hintmatch(:)namekeyword.operator.type.annotation.hxoperatorspatternsmatch(&&|\|\|)namekeyword.operator.logical.hxmatch(~|&|\||\^|>>>|<<|>>)namekeyword.operator.bitwise.hxmatch(==|!=|<=|>=|<|>)namekeyword.operator.comparison.hxmatch(!)namekeyword.operator.logical.hxmatch(\-\-|\+\+)namekeyword.operator.increment-decrement.hxmatch(\-|\+|\*|\/|%)namekeyword.operator.arithmetic.hxmatch\.\.\.namekeyword.operator.intiterator.hxmatch=>namekeyword.operator.arrow.hxmatch\?\?namekeyword.operator.nullcoalescing.hxmatch\?\.namekeyword.operator.safenavigation.hxmatch\bis\b(?!\()namekeyword.other.hxbegin\?beginCaptures0namekeyword.operator.ternary.hxend:endCaptures0namekeyword.operator.ternary.hxpatternsinclude#blockinclude#block-contentspunctuation-commamatch,namepunctuation.separator.comma.hxpunctuation-accessormatch\.namepunctuation.accessor.hxpunctuation-terminatormatch;namepunctuation.terminator.hxconstant-namematch\b([_A-Z][_A-Z0-9]*)\bnamevariable.other.hxtypepatternsinclude#globalinclude#macro-reificationinclude#type-nameinclude#type-parametersmatch->namekeyword.operator.type.function.hxmatch&namekeyword.operator.type.intersection.hxmatch\?(?=\s*[_A-Z])namekeyword.operator.optionalmatch\?(?!\s*[_A-Z])namepunctuation.definition.tagbegin(\{)beginCaptures0namepunctuation.definition.block.begin.hxend(?<=\})patternsinclude#typedef-blockinclude#function-typefunction-typebegin\(beginCaptures0namepunctuation.definition.parameters.begin.hxend\)endCaptures0namepunctuation.definition.parameters.end.hxpatternsinclude#function-type-parameterfunction-type-parameterbegin(?<=\(|,)end(?=\)|,)patternsinclude#globalinclude#metadatainclude#operator-optionalinclude#punctuation-commainclude#function-type-parameter-nameinclude#function-type-parameter-type-hintinclude#parameter-assigninclude#typeinclude#globalfunction-type-parameter-namematch([_a-zA-Z]\w*)(?=\s*:)captures1namevariable.parameter.hxfunction-type-parameter-type-hintbegin:beginCaptures0namekeyword.operator.type.annotation.hxend(?=\)|,|=)patternsinclude#typetype-member-accesspatternsmatch\b(_*[A-Z][a-z]+[A-Za-z0-9]*)(\.)([_A-Za-z]\w*)(?=\()captures1nameentity.name.type.hx2namepunctuation.accessor.hx3nameentity.name.function.hxmatch\b(_*[A-Z][a-z]+[A-Za-z0-9]*)(\.)([_A-Za-z]\w*)captures1nameentity.name.type.hx2namepunctuation.accessor.hx3namevariable.other.hxtype-namepatternsmatch\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*))*\bcaptures1namesupport.class.builtin.hx2namesupport.package.hx3nameentity.name.type.hxmatch\b(?<![^.]\.)((_*[a-z]\w*\.)*)(_*[A-Z][a-z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\b(?!\s*\()captures1namesupport.package.hx3nameentity.name.type.hx4namepunctuation.accessor.hx5nameentity.name.type.hxtype-parametersbegin(<)beginCaptures1namepunctuation.definition.typeparameters.begin.hxend(?=$)|(>)endCaptures1namepunctuation.definition.typeparameters.end.hxnamemeta.type-parameters.hxpatternsinclude#typeinclude#type-parameter-constraint-oldinclude#type-parameter-constraint-newinclude#globalinclude#regexinclude#arrayinclude#constantsinclude#stringsinclude#metadatainclude#punctuation-commatype-parameter-constraint-oldbegin(:)\s*(\()beginCaptures1namekeyword.operator.type.annotation.hx2namepunctuation.definition.constraint.begin.hxend\)endCaptures0namepunctuation.definition.constraint.end.hxpatternsinclude#typeinclude#punctuation-commatype-parameter-constraint-newmatch:namekeyword.operator.type.annotation.hxtidentifier-namematch\b([_A-Za-z]\w*)\bnamevariable.other.hx \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8f2e0da..eaf88f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,16 @@ "devDependencies": { "lix": "^15.10.1", "vscode-oniguruma": "^1.6.2", - "vscode-textmate": "^7.0.1" + "vscode-textmate": "^7.0.4" } }, "node_modules/lix": { - "version": "15.10.1", - "resolved": "https://registry.npmjs.org/lix/-/lix-15.10.1.tgz", - "integrity": "sha512-UZX+p4i+2ZSEyI6p2Yu1sfC0pRRFnFHDpNQ2+FqhxmBG8cCiHZkj+I8FqCK4AUuQ/VOPE/bK69JbWez+OG3zaA==", + "version": "15.12.4", + "resolved": "https://registry.npmjs.org/lix/-/lix-15.12.4.tgz", + "integrity": "sha512-xfwGQrXXNba9BM7VcP2u9WvElBYgGJW+1gviaFqJH5OUFPAhwv8TZNk5f+Yew4pyKOmMqshdUYgk9+d3U6P6kw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "haxe": "bin/haxeshim.js", "haxelib": "bin/haxelibshim.js", @@ -32,17 +33,18 @@ "dev": true }, "node_modules/vscode-textmate": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.1.tgz", - "integrity": "sha512-zQ5U/nuXAAMsh691FtV0wPz89nSkHbs+IQV8FDk+wew9BlSDhf4UmWGlWJfTR2Ti6xZv87Tj5fENzKf6Qk7aLw==", - "dev": true + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz", + "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==", + "dev": true, + "license": "MIT" } }, "dependencies": { "lix": { - "version": "15.10.1", - "resolved": "https://registry.npmjs.org/lix/-/lix-15.10.1.tgz", - "integrity": "sha512-UZX+p4i+2ZSEyI6p2Yu1sfC0pRRFnFHDpNQ2+FqhxmBG8cCiHZkj+I8FqCK4AUuQ/VOPE/bK69JbWez+OG3zaA==", + "version": "15.12.4", + "resolved": "https://registry.npmjs.org/lix/-/lix-15.12.4.tgz", + "integrity": "sha512-xfwGQrXXNba9BM7VcP2u9WvElBYgGJW+1gviaFqJH5OUFPAhwv8TZNk5f+Yew4pyKOmMqshdUYgk9+d3U6P6kw==", "dev": true }, "vscode-oniguruma": { @@ -52,9 +54,9 @@ "dev": true }, "vscode-textmate": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.1.tgz", - "integrity": "sha512-zQ5U/nuXAAMsh691FtV0wPz89nSkHbs+IQV8FDk+wew9BlSDhf4UmWGlWJfTR2Ti6xZv87Tj5fENzKf6Qk7aLw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz", + "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==", "dev": true } } diff --git a/package.json b/package.json index c1bcc2b..5bca794 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "devDependencies": { "lix": "^15.10.1", "vscode-oniguruma": "^1.6.2", - "vscode-textmate": "^7.0.1" + "vscode-textmate": "^7.0.4" }, "scripts": { "postinstall": "npx lix download"