From c73d0abfa1e22f066837500e1c3ba7dd3b6a58ac Mon Sep 17 00:00:00 2001 From: mtunixic Date: Fri, 27 Feb 2026 20:52:07 +0100 Subject: [PATCH 01/10] Fix Pascal-Case Function Mis-color --- haxe.tmLanguage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/haxe.tmLanguage b/haxe.tmLanguage index 022da1f..086fb23 100644 --- a/haxe.tmLanguage +++ b/haxe.tmLanguage @@ -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-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.function.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 From b4fceee52c1238b41b13899409cf3d4eeca5f9cc Mon Sep 17 00:00:00 2001 From: MT <167682424+mtunixic@users.noreply.github.com> Date: Fri, 27 Feb 2026 21:55:19 +0100 Subject: [PATCH 02/10] Update haxe.YAML-tmLanguage here you go, as requested --- haxe.YAML-tmLanguage | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index 4eb76cc..526b614 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -108,7 +108,9 @@ repository: - include: '#punctuation-accessor' - include: '#type-path-type-name' type-path-type-name: - match: \b(_*[A-Z]\w*)\b + # OLD: filter anything pascal-cased as Class (bad) match: \b(_*[A-Z]\w*)\b + # NEW: filters out functions (good), probably the right way to do it i think + match: (? Date: Fri, 27 Feb 2026 23:41:52 +0100 Subject: [PATCH 03/10] Update haxe.YAML-tmLanguage swapped includes in identifiers (vars and finals), and also added a match for enums before including identifiers havent tested yet so if you could try it with ```hx enum Color { Red; Green; Blue; } ``` --- haxe.YAML-tmLanguage | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index 526b614..a41f7b7 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -58,17 +58,19 @@ repository: - include: '#punctuation-terminator' - include: '#punctuation-comma' - include: '#punctuation-accessor' + - match: '\b([A-Z]\w*)\b(?=\s*(,|\}))' + name: constant.other.enum.hx - include: '#identifiers' identifiers: patterns: - include: '#constant-name' - - include: '#type-name' - include: '#identifier-name' + - include: '#type-name' package: begin: package\b beginCaptures: '0': {name: keyword.other.package.hx} - end: $|(;) + end: $|(;) endCaptures: '1': {name: punctuation.terminator.hx} patterns: From 59aedfa697c3c6438851c623aa4f6f1de295bf2d Mon Sep 17 00:00:00 2001 From: MT <167682424+mtunixic@users.noreply.github.com> Date: Sat, 28 Feb 2026 08:52:33 +0100 Subject: [PATCH 04/10] Pascal-Case Colorfix tiny fix to the YAML that makes it so that not everything pascal case is colored yellow like a class, more specifically functions, called variables and finals, and enum parameters --- haxe.YAML-tmLanguage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index a41f7b7..e3e4f8f 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -70,7 +70,7 @@ repository: begin: package\b beginCaptures: '0': {name: keyword.other.package.hx} - end: $|(;) + end: $|(;) endCaptures: '1': {name: punctuation.terminator.hx} patterns: From 68c12e6ce8a2947b77299b76acaf36ce3ae0c562 Mon Sep 17 00:00:00 2001 From: MT <167682424+mtunixic@users.noreply.github.com> Date: Sun, 1 Mar 2026 18:23:15 +0100 Subject: [PATCH 05/10] Update haxe.YAML-tmLanguage fix alot (var finals enum params, functions, called functions and var finals enums) but also missing a few things --- haxe.YAML-tmLanguage | 75 ++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index e3e4f8f..997c4c0 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -49,7 +49,9 @@ repository: - include: '#for-loop' - include: '#keywords' - include: '#arrow-function' - - include: '#method-call' + + - include: '#method-call-dotted' + - include: '#method-call-simple' - include: '#enum-constructor-call' - include: '#punctuation-braces' - include: '#macro-reification' @@ -58,13 +60,16 @@ repository: - include: '#punctuation-terminator' - include: '#punctuation-comma' - include: '#punctuation-accessor' - - match: '\b([A-Z]\w*)\b(?=\s*(,|\}))' - name: constant.other.enum.hx - 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' + - include: '#identifier-name' # prefer this first (fixes var and finals) - include: '#type-name' package: begin: package\b @@ -104,15 +109,27 @@ 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]\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 + + method-call-simple: + match: \b([_A-Za-z]\w*)(?=\s*\() + captures: + '1': { name: entity.name.function.hx } type-path: patterns: - include: '#global' - include: '#punctuation-accessor' - include: '#type-path-type-name' type-path-type-name: - # OLD: filter anything pascal-cased as Class (bad) match: \b(_*[A-Z]\w*)\b - # NEW: filters out functions (good), probably the right way to do it i think - match: (? + - begin: (?) + endCaptures: + '1': { name: punctuation.definition.typeparameters.end.hx } + patterns: + - include: '#type' + # handle regular constructors n types + - match: (? Date: Thu, 5 Mar 2026 11:21:32 +0100 Subject: [PATCH 06/10] Finished --- OG/haxe.YAML-tmLanguage | 1130 +++++ OG/haxe.tmLanguage | 3809 ++++++++++++++++ .../hxnodejs.hxml | 0 .../plist.hxml | 0 .../tink_core.hxml | 0 .../vshaxe-build.hxml | 0 {haxe_libraries => ahaxe_libraries}/yaml.hxml | 0 haxe.YAML-tmLanguage | 102 +- haxe.tmLanguage | 3972 ++++++++++++++++- package-lock.json | 111 +- package.json | 30 +- 11 files changed, 9062 insertions(+), 92 deletions(-) create mode 100644 OG/haxe.YAML-tmLanguage create mode 100644 OG/haxe.tmLanguage rename {haxe_libraries => ahaxe_libraries}/hxnodejs.hxml (100%) rename {haxe_libraries => ahaxe_libraries}/plist.hxml (100%) rename {haxe_libraries => ahaxe_libraries}/tink_core.hxml (100%) rename {haxe_libraries => ahaxe_libraries}/vshaxe-build.hxml (100%) rename {haxe_libraries => ahaxe_libraries}/yaml.hxml (100%) diff --git a/OG/haxe.YAML-tmLanguage b/OG/haxe.YAML-tmLanguage new file mode 100644 index 0000000..4eb76cc --- /dev/null +++ b/OG/haxe.YAML-tmLanguage @@ -0,0 +1,1130 @@ +fileTypes: [hx, dump] +name: Haxe +scopeName: source.hx +uuid: 67c72f9f-862c-4e48-8951-dcc22c0bb4ea +patterns: +- include: '#all' +repository: + all: + patterns: + - include: '#global' + - include: '#package' + - include: '#import' + - include: '#using' + - match: \b(final)\b(?=\s+(class|interface|extern|private)\b) + name: storage.modifier.hx + - include: '#abstract' + - include: '#class' + - include: '#enum' + - include: '#interface' + - include: '#typedef' + - include: '#block' + - include: '#block-contents' + global: + patterns: + - include: '#comments' + - include: '#conditional-compilation' + block: + begin: \{ + beginCaptures: + '0': {name: punctuation.definition.block.begin.hx} + end: \} + endCaptures: + '0': {name: punctuation.definition.block.end.hx} + patterns: + - include: '#block' + - include: '#block-contents' + 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' + identifiers: + patterns: + - include: '#constant-name' + - include: '#type-name' + - include: '#identifier-name' + package: + begin: package\b + beginCaptures: + '0': {name: keyword.other.package.hx} + end: $|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + patterns: + - include: '#type-path' + - include: '#type-path-package-name' + using: + begin: using\b + beginCaptures: + '0': {name: keyword.other.using.hx} + end: $|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + patterns: + - include: '#type-path' + - include: '#type-path-package-name' + import: + begin: import\b + beginCaptures: + '0': {name: keyword.control.import.hx} + end: $|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + patterns: + - include: '#type-path' + - match: \b(as)\b + name: keyword.control.as.hx + - match: \b(in)\b + name: keyword.control.in.hx + - match: \* + name: constant.language.import-all.hx + - match: \b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;))) + name: variable.other.hxt + - include: '#type-path-package-name' + type-path: + patterns: + - include: '#global' + - include: '#punctuation-accessor' + - include: '#type-path-type-name' + type-path-type-name: + match: \b(_*[A-Z]\w*)\b + name: entity.name.type.hx + type-path-package-name: + match: \b([_A-Za-z]\w*)\b + name: support.package.hx + abstract: + begin: (?=abstract\s+[A-Z]) + end: (?<=\})|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + name: meta.abstract.hx + patterns: + - include: '#abstract-name' + - include: '#abstract-name-post' + - include: '#abstract-block' + abstract-name: + begin: \b(abstract)\b + beginCaptures: + '1': {name: storage.type.class.hx} + end: ([_A-Za-z]\w*) + endCaptures: + '1': {name: entity.name.type.class.hx} + patterns: + - include: '#global' + abstract-name-post: + begin: (?<=\w) + end: ([\{;]) + endCaptures: + '1': {name: punctuation.definition.block.begin.hx} + patterns: + - include: '#global' + - match: \b(from|to)\b + name: keyword.other.hx + - include: '#type' + - match: '[\(\)]' + name: punctuation.definition.other.hx + abstract-block: + begin: (?<=\{) + end: (\}) + endCaptures: + '1': {name: punctuation.definition.block.end.hx} + name: meta.block.hx + patterns: + - include: '#method' + - include: '#modifiers' + - include: '#variable' + - include: '#block' + - include: '#block-contents' + class: + begin: (?=class) + end: (?<=\})|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + name: meta.class.hx + patterns: + - include: '#class-name' + - include: '#class-name-post' + - include: '#class-block' + class-name: + begin: \b(class)\b + beginCaptures: + '1': {name: storage.type.class.hx} + end: ([_A-Za-z]\w*) + endCaptures: + '1': {name: entity.name.type.class.hx} + name: meta.class.identifier.hx + patterns: + - include: '#global' + class-name-post: + begin: (?<=\w) + end: ([\{;]) + endCaptures: + '1': {name: punctuation.definition.block.begin.hx} + patterns: + - include: '#modifiers-inheritance' + - include: '#type' + class-block: + begin: (?<=\{) + end: (\}) + endCaptures: + '1': {name: punctuation.definition.block.end.hx} + name: meta.block.hx + patterns: + - include: '#method' + - include: '#modifiers' + - include: '#variable' + - include: '#block' + - include: '#block-contents' + enum: + begin: (?=enum\s+[A-Z]) + end: (?<=\})|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + name: meta.enum.hx + patterns: + - include: '#enum-name' + - include: '#enum-name-post' + - include: '#enum-block' + enum-name: + begin: \b(enum)\b + beginCaptures: + '1': {name: storage.type.class.hx} + end: ([_A-Za-z]\w*) + endCaptures: + '1': {name: entity.name.type.class.hx} + patterns: + - include: '#global' + enum-name-post: + begin: (?<=\w) + end: ([\{;]) + endCaptures: + '1': {name: punctuation.definition.block.begin.hx} + patterns: + - include: '#type' + enum-block: + begin: (?<=\{) + end: (\}) + endCaptures: + '1': {name: punctuation.definition.block.end.hx} + name: meta.block.hx + patterns: + - include: '#global' + - include: '#metadata' + - include: '#parameters' + - include: '#identifiers' + interface: + begin: (?=interface) + end: (?<=\})|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + name: meta.interface.hx + patterns: + - include: '#interface-name' + - include: '#interface-name-post' + - include: '#interface-block' + interface-name: + begin: \b(interface)\b + beginCaptures: + '1': {name: storage.type.class.hx} + end: ([_A-Za-z]\w*) + endCaptures: + '1': {name: entity.name.type.class.hx} + patterns: + - include: '#global' + interface-name-post: + begin: (?<=\w) + end: ([\{;]) + endCaptures: + '1': {name: punctuation.definition.block.begin.hx} + patterns: + - include: '#global' + - include: '#modifiers-inheritance' + - include: '#type' + interface-block: + begin: (?<=\{) + end: (\}) + endCaptures: + '1': {name: punctuation.definition.block.end.hx} + name: meta.block.hx + patterns: + - include: '#method' + - include: '#variable' + - include: '#block' + - include: '#block-contents' + typedef: + begin: (?=typedef) + end: (?<=\})|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + name: meta.typedef.hx + patterns: + - include: '#typedef-name' + - include: '#typedef-name-post' + - include: '#typedef-block' + typedef-name: + begin: \b(typedef)\b + beginCaptures: + '1': {name: storage.type.class.hx} + end: ([_A-Za-z]\w*) + endCaptures: + '1': {name: entity.name.type.class.hx} + patterns: + - include: '#global' + typedef-name-post: + begin: (?<=\w) + end: (\{)|(?=;) + endCaptures: + '1': {name: punctuation.definition.block.begin.hx} + patterns: + - include: '#global' + - include: '#punctuation-brackets' + - include: '#punctuation-separator' + - include: '#operator-assignment' + - include: '#type' + typedef-block: + begin: (?<=\{) + end: (\}) + endCaptures: + '1': {name: punctuation.definition.block.end.hx} + name: meta.block.hx + 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' + typedef-extension: + begin: '>' + end: ',|$' + patterns: + - include: '#type' + typedef-simple-field-type-hint: + begin: ':' + beginCaptures: + '0': {name: keyword.operator.type.annotation.hx} + end: (?=\}|,|;) + patterns: + - include: '#type' + regex: + begin: (~/) + beginCaptures: + '1': {name: punctuation.definition.string.begin.hx} + end: (/)([gimsu]*) + endCaptures: + '1': {name: punctuation.definition.string.end.hx} + '2': {name: keyword.other.hx} + name: string.regexp.hx + patterns: + - include: '#regexp' + regex-character-class: + patterns: + - match: '\\[wWsSdDtrnvf]|\.' + name: constant.other.character-class.regexp + - match: '\\([0-7]{3}|x\h\h|u\h\h\h\h)' + name: constant.character.numeric.regexp + - match: '\\c[A-Z]' + name: constant.character.control.regexp + - match: \\. + name: constant.character.escape.backslash.regexp + regexp: + patterns: + - match: '\\[bB]|\^|\$' + name: keyword.control.anchor.regexp + - match: '\\[1-9]\d*' + name: keyword.other.back-reference.regexp + - match: '[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??' + name: keyword.operator.quantifier.regexp + - match: \| + name: keyword.operator.or.regexp + - begin: (\()((\?=)|(\?!)) + 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} + end: (\)) + endCaptures: + '1': {name: punctuation.definition.group.regexp} + name: meta.group.assertion.regexp + patterns: + - include: '#regexp' + - begin: \((\?:)? + beginCaptures: + '0': {name: punctuation.definition.group.regexp} + '1': {name: punctuation.definition.group.capture.regexp} + end: \) + endCaptures: + '0': {name: punctuation.definition.group.regexp} + name: meta.group.regexp + patterns: + - include: '#regexp' + - begin: (\[)(\^)? + beginCaptures: + '1': {name: punctuation.definition.character-class.regexp} + '2': {name: keyword.operator.negation.regexp} + end: (\]) + endCaptures: + '1': {name: punctuation.definition.character-class.regexp} + name: constant.other.character-class.set.regexp + patterns: + - match: (?:.|(\\(?:[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])|(\\.)) + 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} + name: constant.other.character-class.range.regexp + - include: '#regex-character-class' + - include: '#regex-character-class' + array: + begin: \[ + beginCaptures: + '0': {name: punctuation.definition.array.begin.hx} + end: \] + endCaptures: + '0': {name: punctuation.definition.array.end.hx} + name: meta.array.literal.hx + patterns: + - include: '#block' + - include: '#block-contents' + constants: + patterns: + - match: \b(true|false|null)\b + name: constant.language.hx + - 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) + (?]) + end: (\{)|(;) + endCaptures: + '1': {name: punctuation.definition.block.begin.hx} + '2': {name: punctuation.terminator.hx} + patterns: + - include: '#parameters' + - include: '#method-return-type-hint' + - include: '#block' + - include: '#block-contents' + method-block: + begin: (?<=\{) + beginCaptures: + '1': {name: punctuation.definition.block.begin.hx} + end: (\}) + endCaptures: + '1': {name: punctuation.definition.block.end.hx} + name: meta.method.block.hx + patterns: + - include: '#block' + - include: '#block-contents' + parameters: + begin: \( + beginCaptures: + '0': {name: punctuation.definition.parameters.begin.hx} + end: \s*(\)(?!\s*->)) + endCaptures: + '1': {name: punctuation.definition.parameters.end.hx} + name: meta.parameters.hx + patterns: + - include: '#parameter' + - include: '#punctuation-comma' + parameter: + begin: (?<=\(|,) + end: (?=\)(?!\s*->)|,) + patterns: + - include: '#parameter-name' + - include: '#parameter-type-hint' + - include: '#parameter-assign' + - include: '#global' + 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' + operator-rest: + match: '\.\.\.' + name: keyword.operator.rest.hx + parameter-type-hint: + begin: ':' + beginCaptures: + '0': {name: keyword.operator.type.annotation.hx} + end: (?=\)(?!\s*->)|,|=) + patterns: + - include: '#type' + parameter-assign: + begin: '=' + beginCaptures: + '0': {name: keyword.operator.assignment.hx} + end: (?=\)|,) + patterns: + - include: '#block' + - include: '#block-contents' + arrow-function: + begin: '(\()(?=[^(]*?\)\s*->)' + beginCaptures: + '1': {name: punctuation.definition.parameters.begin.hx} + end: '(\))\s*(->)' + endCaptures: + '1': {name: punctuation.definition.parameters.end.hx} + '2': {name: storage.type.function.arrow.hx} + name: meta.method.arrow.hx + patterns: + - include: '#arrow-function-parameter' + arrow-function-parameter: + begin: (?<=\(|,) + 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: ':' + beginCaptures: + '0': {name: keyword.operator.type.annotation.hx} + end: (?=\)|,|=) + patterns: + - include: '#type' + method-return-type-hint: + begin: (?<=\))\s*(:) + beginCaptures: + '1': {name: keyword.operator.type.annotation.hx} + end: (?=\{|;|[a-z0-9]) + patterns: + - include: '#type' + operator-optional: + match: '(\?)(?!\s)' + name: keyword.operator.optional.hx + variable: + begin: (?=\b(var|final)\b) + end: (?=$)|(;) + endCaptures: + '1': {name: punctuation.terminator.hx} + patterns: + - include: '#variable-name' + - include: '#variable-name-next' + - include: '#variable-assign' + - include: '#variable-name-post' + variable-name: + begin: \b(var|final)\b + beginCaptures: + '1': {name: storage.type.variable.hx} + end: (?=$)|([_a-zA-Z]\w*) + endCaptures: + '1': {name: variable.other.hx} + patterns: + - include: '#operator-optional' + variable-name-next: + begin: ',' + beginCaptures: + '0': {name: punctuation.separator.comma.hx} + end: ([_a-zA-Z]\w*) + endCaptures: + '1': {name: variable.other.hx} + patterns: + - include: '#global' + variable-type-hint: + begin: ':' + beginCaptures: + '0': {name: keyword.operator.type.annotation.hx} + end: (?=$|;|,|=) + patterns: + - include: '#type' + variable-assign: + begin: '=' + beginCaptures: + '0': {name: keyword.operator.assignment.hx} + end: (?=;|,) + patterns: + - include: '#block' + - include: '#block-contents' + variable-name-post: + begin: (?<=\w) + end: (?=;)|(?==) + patterns: + - include: '#variable-accessors' + - include: '#variable-type-hint' + - include: '#block-contents' + variable-accessors: + begin: \( + beginCaptures: + '0': {name: punctuation.definition.parameters.begin.hx} + end: \) + endCaptures: + '0': {name: punctuation.definition.parameters.end.hx} + name: meta.parameters.hx + patterns: + - include: '#global' + - include: '#keywords-accessor' + - include: '#accessor-method' + - include: '#punctuation-comma' + keywords-accessor: + match: \b(private|default|get|set|dynamic|never|null)\b + name: storage.type.property.hx + accessor-method: + patterns: + - match: '\b(get|set)_[_A-Za-z]\w*\b' + name: entity.name.function.hx + modifiers: + patterns: + - match: \b(enum)\b + name: storage.type.class + - 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)) + name: storage.modifier.hx + new-expr: + name: new.expr.hx + begin: (? + name: keyword.operator.extractor.hx + - include: '#operator-assignment' + - include: '#punctuation-comma' + - include: '#keywords' + - include: '#method-call' + - include: '#identifiers' + - match: \b(if|else|return|do|while|for|break|continue|switch|case|default)\b + name: keyword.control.flow-control.hx + - match: \b(cast|untyped)\b + name: keyword.other.untyped.hx + - match: \btrace\b + name: keyword.other.trace.hx + - match: \$type\b + name: keyword.other.type.hx + - match: \__(global|this)__\b + name: keyword.other.untyped-property.hx + - match: \b(this|super)\b + name: variable.language.hx + - match: \bnew\b + name: keyword.operator.new.hx + - match: \b(abstract|class|enum|interface|typedef)\b + name: storage.type.hx + - match: '->' + name: storage.type.function.arrow.hx + - include: '#modifiers' + - include: '#modifiers-inheritance' + punctuation-braces: + begin: \( + beginCaptures: + '0': {name: meta.brace.round.hx} + end: \) + endCaptures: + '0': {name: meta.brace.round.hx} + patterns: + - include: '#keywords' + - include: '#block' + - include: '#block-contents' + - include: '#type-check' + type-check: + begin: (?>>|<<|>>) + name: keyword.operator.bitwise.hx + - match: (==|!=|<=|>=|<|>) + name: keyword.operator.comparison.hx + - match: (!) + 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: \?\? + name: keyword.operator.nullcoalescing.hx + - match: \?\. + name: keyword.operator.safenavigation.hx + - match: \bis\b(?!\() + name: keyword.other.hx + - begin: '\?' + beginCaptures: + '0': {name: keyword.operator.ternary.hx} + end: ':' + endCaptures: + '0': {name: keyword.operator.ternary.hx} + patterns: + - include: '#block' + - include: '#block-contents' + punctuation-comma: + match: ',' + name: punctuation.separator.comma.hx + punctuation-accessor: + match: '\.' + name: punctuation.accessor.hx + punctuation-terminator: + match: ; + name: punctuation.terminator.hx + constant-name: + match: '\b([_A-Z][_A-Z0-9]*)\b' + name: variable.other.hx + type: + patterns: + - include: '#global' + - include: '#macro-reification' + - include: '#type-name' + - include: '#type-parameters' + - match: '->' + name: keyword.operator.type.function.hx + - match: '&' + name: keyword.operator.type.intersection.hx + - match: '\?(?=\s*[_A-Z])' + name: keyword.operator.optional + - match: '\?(?!\s*[_A-Z])' + name: punctuation.definition.tag + - begin: (\{) + beginCaptures: + '0': {name: punctuation.definition.block.begin.hx} + end: (?<=\}) + patterns: + - include: '#typedef-block' + - include: '#function-type' + function-type: + begin: \( + beginCaptures: + '0': {name: punctuation.definition.parameters.begin.hx} + end: \) + endCaptures: + '0': {name: punctuation.definition.parameters.end.hx} + patterns: + - include: '#function-type-parameter' + function-type-parameter: + begin: (?<=\(|,) + 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: ':' + beginCaptures: + '0': {name: keyword.operator.type.annotation.hx} + end: (?=\)|,|=) + patterns: + - 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(?) + endCaptures: + '1': {name: punctuation.definition.typeparameters.end.hx} + name: meta.type-parameters.hx + 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' + type-parameter-constraint-old: + begin: '(:)\s*(\()' + beginCaptures: + '1': {name: keyword.operator.type.annotation.hx} + '2': {name: punctuation.definition.constraint.begin.hx} + end: '\)' + endCaptures: + '0': {name: punctuation.definition.constraint.end.hx} + patterns: + - include: '#type' + - include: '#punctuation-comma' + type-parameter-constraint-new: + match: ':' + name: keyword.operator.type.annotation.hxt + identifier-name: + match: '\b([_A-Za-z]\w*)\b' + name: variable.other.hx diff --git a/OG/haxe.tmLanguage b/OG/haxe.tmLanguage new file mode 100644 index 0000000..05ab2b5 --- /dev/null +++ b/OG/haxe.tmLanguage @@ -0,0 +1,3809 @@ + + + + + fileTypes + + hx + dump + + name + Haxe + scopeName + source.hx + uuid + 67c72f9f-862c-4e48-8951-dcc22c0bb4ea + patterns + + + include + #all + + + repository + + all + + patterns + + + include + #global + + + include + #package + + + include + #import + + + include + #using + + + match + \b(final)\b(?=\s+(class|interface|extern|private)\b) + name + storage.modifier.hx + + + include + #abstract + + + include + #class + + + include + #enum + + + include + #interface + + + include + #typedef + + + include + #block + + + include + #block-contents + + + + global + + patterns + + + include + #comments + + + include + #conditional-compilation + + + + block + + begin + \{ + beginCaptures + + 0 + + name + punctuation.definition.block.begin.hx + + + end + \} + endCaptures + + 0 + + name + punctuation.definition.block.end.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + 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 + + + + identifiers + + patterns + + + include + #constant-name + + + include + #type-name + + + include + #identifier-name + + + + package + + begin + package\b + beginCaptures + + 0 + + name + keyword.other.package.hx + + + end + $|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #type-path + + + include + #type-path-package-name + + + + using + + begin + using\b + beginCaptures + + 0 + + name + keyword.other.using.hx + + + end + $|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #type-path + + + include + #type-path-package-name + + + + import + + begin + import\b + beginCaptures + + 0 + + name + keyword.control.import.hx + + + end + $|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #type-path + + + match + \b(as)\b + name + keyword.control.as.hx + + + match + \b(in)\b + name + keyword.control.in.hx + + + match + \* + name + constant.language.import-all.hx + + + match + \b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;))) + name + variable.other.hxt + + + include + #type-path-package-name + + + + type-path + + patterns + + + include + #global + + + include + #punctuation-accessor + + + include + #type-path-type-name + + + + type-path-type-name + + match + \b(_*[A-Z]\w*)\b + name + entity.name.type.hx + + type-path-package-name + + match + \b([_A-Za-z]\w*)\b + name + support.package.hx + + abstract + + begin + (?=abstract\s+[A-Z]) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.abstract.hx + patterns + + + include + #abstract-name + + + include + #abstract-name-post + + + include + #abstract-block + + + + abstract-name + + begin + \b(abstract)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + abstract-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #global + + + match + \b(from|to)\b + name + keyword.other.hx + + + include + #type + + + match + [\(\)] + name + punctuation.definition.other.hx + + + + abstract-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #method + + + include + #modifiers + + + include + #variable + + + include + #block + + + include + #block-contents + + + + class + + begin + (?=class) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.class.hx + patterns + + + include + #class-name + + + include + #class-name-post + + + include + #class-block + + + + class-name + + begin + \b(class)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + name + meta.class.identifier.hx + patterns + + + include + #global + + + + class-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #modifiers-inheritance + + + include + #type + + + + class-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #method + + + include + #modifiers + + + include + #variable + + + include + #block + + + include + #block-contents + + + + enum + + begin + (?=enum\s+[A-Z]) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.enum.hx + patterns + + + include + #enum-name + + + include + #enum-name-post + + + include + #enum-block + + + + enum-name + + begin + \b(enum)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + enum-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #type + + + + enum-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #global + + + include + #metadata + + + include + #parameters + + + include + #identifiers + + + + interface + + begin + (?=interface) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.interface.hx + patterns + + + include + #interface-name + + + include + #interface-name-post + + + include + #interface-block + + + + interface-name + + begin + \b(interface)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + interface-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #global + + + include + #modifiers-inheritance + + + include + #type + + + + interface-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #method + + + include + #variable + + + include + #block + + + include + #block-contents + + + + typedef + + begin + (?=typedef) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.typedef.hx + patterns + + + include + #typedef-name + + + include + #typedef-name-post + + + include + #typedef-block + + + + typedef-name + + begin + \b(typedef)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + typedef-name-post + + begin + (?<=\w) + end + (\{)|(?=;) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #global + + + include + #punctuation-brackets + + + include + #punctuation-separator + + + include + #operator-assignment + + + include + #type + + + + typedef-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + 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 + + + + typedef-extension + + begin + > + end + ,|$ + patterns + + + include + #type + + + + typedef-simple-field-type-hint + + begin + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\}|,|;) + patterns + + + include + #type + + + + regex + + begin + (~/) + beginCaptures + + 1 + + name + punctuation.definition.string.begin.hx + + + end + (/)([gimsu]*) + endCaptures + + 1 + + name + punctuation.definition.string.end.hx + + 2 + + name + keyword.other.hx + + + name + string.regexp.hx + patterns + + + include + #regexp + + + + regex-character-class + + patterns + + + match + \\[wWsSdDtrnvf]|\. + name + constant.other.character-class.regexp + + + match + \\([0-7]{3}|x\h\h|u\h\h\h\h) + name + constant.character.numeric.regexp + + + match + \\c[A-Z] + name + constant.character.control.regexp + + + match + \\. + name + constant.character.escape.backslash.regexp + + + + regexp + + patterns + + + match + \\[bB]|\^|\$ + name + keyword.control.anchor.regexp + + + match + \\[1-9]\d* + name + keyword.other.back-reference.regexp + + + match + [?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\?? + name + keyword.operator.quantifier.regexp + + + match + \| + name + keyword.operator.or.regexp + + + begin + (\()((\?=)|(\?!)) + 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 + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.group.regexp + + + name + meta.group.assertion.regexp + patterns + + + include + #regexp + + + + + begin + \((\?:)? + beginCaptures + + 0 + + name + punctuation.definition.group.regexp + + 1 + + name + punctuation.definition.group.capture.regexp + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.group.regexp + + + name + meta.group.regexp + patterns + + + include + #regexp + + + + + begin + (\[)(\^)? + beginCaptures + + 1 + + name + punctuation.definition.character-class.regexp + + 2 + + name + keyword.operator.negation.regexp + + + end + (\]) + endCaptures + + 1 + + name + punctuation.definition.character-class.regexp + + + name + constant.other.character-class.set.regexp + patterns + + + match + (?:.|(\\(?:[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])|(\\.)) + 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 + + + name + constant.other.character-class.range.regexp + + + include + #regex-character-class + + + + + include + #regex-character-class + + + + array + + begin + \[ + beginCaptures + + 0 + + name + punctuation.definition.array.begin.hx + + + end + \] + endCaptures + + 0 + + name + punctuation.definition.array.end.hx + + + name + meta.array.literal.hx + patterns + + + include + #block + + + include + #block-contents + + + + constants + + patterns + + + match + \b(true|false|null)\b + name + constant.language.hx + + + 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) +(?<!\$)(?: + (?:\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 + (?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\b)| # .1E+3f64 + (?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b)| # 1E+3f64 + (?:\b[0-9][0-9_]*(\.)[0-9_]+([fiu][0-9][0-9_]*)?\b)| # 1.1f64 + (?:\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 +)(?!\$) + captures + + 0 + + name + constant.numeric.decimal.hx + + 1 + + name + meta.delimiter.decimal.period.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 + + 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 + + + + + + comments + + patterns + + + begin + /\*\*(?!/) + beginCaptures + + 0 + + name + punctuation.definition.comment.hx + + + end + \*/ + endCaptures + + 0 + + name + punctuation.definition.comment.hx + + + name + comment.block.documentation.hx + patterns + + + include + #javadoc-tags + + + + + begin + /\* + beginCaptures + + 0 + + name + punctuation.definition.comment.hx + + + end + \*/ + endCaptures + + 0 + + name + punctuation.definition.comment.hx + + + name + comment.block.hx + patterns + + + include + #javadoc-tags + + + + + match + (//).*$\n? + captures + + 1 + + name + punctuation.definition.comment.hx + + + name + comment.line.double-slash.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 + + + + + + strings + + patterns + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.hx + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.hx + + + name + string.quoted.double.hx + patterns + + + include + #string-escape-sequences + + + + + begin + (') + beginCaptures + + 0 + + name + string.quoted.single.hx + + 1 + + name + punctuation.definition.string.begin.hx + + + end + (') + endCaptures + + 0 + + name + string.quoted.single.hx + + 1 + + name + punctuation.definition.string.end.hx + + + patterns + + + begin + \$(?=\$) + beginCaptures + + 0 + + name + constant.character.escape.hx + + + end + \$ + endCaptures + + 0 + + name + constant.character.escape.hx + + + name + string.quoted.single.hx + + + include + #string-escape-sequences + + + begin + (\${) + beginCaptures + + 0 + + name + punctuation.definition.block.begin.hx + + + end + (}) + endCaptures + + 0 + + name + punctuation.definition.block.end.hx + + + patterns + + + include + #block-contents + + + + + match + (\$)([_a-zA-Z]\w*) + captures + + 1 + + name + punctuation.definition.block.begin.hx + + 2 + + name + variable.other.hx + + + + + match + + name + constant.character.escape.hx + + + match + . + name + string.quoted.single.hx + + + + + + string-escape-sequences + + patterns + + + 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 + constant.character.escape.hx + + + match + \\. + name + invalid.escape.sequence.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*(\() + beginCaptures + + 1 + + name + punctuation.metadata.hx + + 2 + + name + storage.modifier.metadata.hx + + 3 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + + + 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*(\() + beginCaptures + + 1 + + name + punctuation.metadata.hx + + 2 + + name + variable.metadata.hx + + 3 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + + + 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 + + begin + (?=\bfunction\b) + end + (?<=[\};]) + name + meta.method.hx + patterns + + + include + #macro-reification + + + include + #method-name + + + include + #method-name-post + + + include + #method-block + + + + method-name + + begin + \b(function)\b\s*\b(?:(new)|([_A-Za-z]\w*))?\b + beginCaptures + + 1 + + name + storage.type.function.hx + + 2 + + name + storage.type.hx + + 3 + + name + entity.name.function.hx + + + end + (?=$|\() + patterns + + + include + #macro-reification + + + include + #type-parameters + + + + method-name-post + + begin + (?<=[\w\s>]) + end + (\{)|(;) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + 2 + + name + punctuation.terminator.hx + + + patterns + + + include + #parameters + + + include + #method-return-type-hint + + + include + #block + + + include + #block-contents + + + + method-block + + begin + (?<=\{) + beginCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.method.block.hx + patterns + + + include + #block + + + include + #block-contents + + + + parameters + + begin + \( + beginCaptures + + 0 + + name + punctuation.definition.parameters.begin.hx + + + end + \s*(\)(?!\s*->)) + endCaptures + + 1 + + name + punctuation.definition.parameters.end.hx + + + name + meta.parameters.hx + patterns + + + include + #parameter + + + include + #punctuation-comma + + + + parameter + + begin + (?<=\(|,) + end + (?=\)(?!\s*->)|,) + patterns + + + include + #parameter-name + + + include + #parameter-type-hint + + + include + #parameter-assign + + + include + #global + + + + 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 + + + + operator-rest + + match + \.\.\. + name + keyword.operator.rest.hx + + parameter-type-hint + + begin + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\)(?!\s*->)|,|=) + patterns + + + include + #type + + + + parameter-assign + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.hx + + + end + (?=\)|,) + patterns + + + include + #block + + + include + #block-contents + + + + arrow-function + + begin + (\()(?=[^(]*?\)\s*->) + beginCaptures + + 1 + + name + punctuation.definition.parameters.begin.hx + + + end + (\))\s*(->) + endCaptures + + 1 + + name + punctuation.definition.parameters.end.hx + + 2 + + name + storage.type.function.arrow.hx + + + name + meta.method.arrow.hx + patterns + + + include + #arrow-function-parameter + + + + arrow-function-parameter + + begin + (?<=\(|,) + 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 + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\)|,|=) + patterns + + + include + #type + + + + method-return-type-hint + + begin + (?<=\))\s*(:) + beginCaptures + + 1 + + name + keyword.operator.type.annotation.hx + + + end + (?=\{|;|[a-z0-9]) + patterns + + + include + #type + + + + operator-optional + + match + (\?)(?!\s) + name + keyword.operator.optional.hx + + variable + + begin + (?=\b(var|final)\b) + end + (?=$)|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #variable-name + + + include + #variable-name-next + + + include + #variable-assign + + + include + #variable-name-post + + + + variable-name + + begin + \b(var|final)\b + beginCaptures + + 1 + + name + storage.type.variable.hx + + + end + (?=$)|([_a-zA-Z]\w*) + endCaptures + + 1 + + name + variable.other.hx + + + patterns + + + include + #operator-optional + + + + variable-name-next + + begin + , + beginCaptures + + 0 + + name + punctuation.separator.comma.hx + + + end + ([_a-zA-Z]\w*) + endCaptures + + 1 + + name + variable.other.hx + + + patterns + + + include + #global + + + + variable-type-hint + + begin + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=$|;|,|=) + patterns + + + include + #type + + + + variable-assign + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.hx + + + end + (?=;|,) + patterns + + + include + #block + + + include + #block-contents + + + + variable-name-post + + begin + (?<=\w) + end + (?=;)|(?==) + patterns + + + include + #variable-accessors + + + include + #variable-type-hint + + + include + #block-contents + + + + variable-accessors + + begin + \( + beginCaptures + + 0 + + name + punctuation.definition.parameters.begin.hx + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.parameters.end.hx + + + name + meta.parameters.hx + patterns + + + include + #global + + + include + #keywords-accessor + + + include + #accessor-method + + + include + #punctuation-comma + + + + keywords-accessor + + match + \b(private|default|get|set|dynamic|never|null)\b + name + storage.type.property.hx + + accessor-method + + patterns + + + match + \b(get|set)_[_A-Za-z]\w*\b + name + entity.name.function.hx + + + + modifiers + + patterns + + + match + \b(enum)\b + name + storage.type.class + + + 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)) + name + storage.modifier.hx + + + + new-expr + + name + new.expr.hx + begin + (?<!\.)\b(new)\b + beginCaptures + + 1 + + name + keyword.operator.new.hx + + + end + (?=$|\() + patterns + + + include + #type + + + + for-loop + + begin + \b(for)\b\s*(\() + beginCaptures + + 1 + + name + keyword.control.flow-control.hx + + 2 + + name + meta.brace.round.hx + + + end + (\)) + endCaptures + + 1 + + name + meta.brace.round.hx + + + patterns + + + match + \b(in)\b + name + keyword.other.in.hx + + + include + #block + + + include + #block-contents + + + + keywords + + patterns + + + begin + (?<=trace|$type|if|while|for|super)\s*(\() + beginCaptures + + 1 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + + + begin + (?<=catch)\s*(\() + beginCaptures + + 1 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + include + #type-check + + + + + begin + (?<=cast)\s*(\() + beginCaptures + + 1 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + begin + (?=,) + end + (?=\)) + patterns + + + include + #type + + + + + include + #block-contents + + + + + match + \b(try|catch|throw)\b + name + keyword.control.catch-exception.hx + + + begin + \b(case|default)\b + beginCaptures + + 1 + + name + keyword.control.flow-control.hx + + + 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 + + + match + \( + name + meta.brace.round.hx + + + match + \) + name + meta.brace.round.hx + + + include + #macro-reification + + + match + => + name + keyword.operator.extractor.hx + + + include + #operator-assignment + + + include + #punctuation-comma + + + include + #keywords + + + include + #method-call + + + include + #identifiers + + + + + match + \b(if|else|return|do|while|for|break|continue|switch|case|default)\b + name + keyword.control.flow-control.hx + + + match + \b(cast|untyped)\b + name + keyword.other.untyped.hx + + + match + \btrace\b + name + keyword.other.trace.hx + + + match + \$type\b + name + keyword.other.type.hx + + + match + \__(global|this)__\b + name + keyword.other.untyped-property.hx + + + match + \b(this|super)\b + name + variable.language.hx + + + match + \bnew\b + name + keyword.operator.new.hx + + + match + \b(abstract|class|enum|interface|typedef)\b + name + storage.type.hx + + + match + -> + name + storage.type.function.arrow.hx + + + include + #modifiers + + + include + #modifiers-inheritance + + + + punctuation-braces + + begin + \( + beginCaptures + + 0 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #keywords + + + include + #block + + + include + #block-contents + + + include + #type-check + + + + type-check + + begin + (?<!macro)(?=:) + end + (?=\)) + patterns + + + include + #operator-type-hint + + + include + #type + + + + modifiers-inheritance + + match + \b(implements|extends)\b + name + storage.modifier.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*(\() + beginCaptures + + 1 + + name + keyword.other.untyped-function.hx + + 2 + + name + entity.name.function.hx + + 3 + + name + meta.brace.round.hx + + + end + (\)) + endCaptures + + 1 + + name + meta.brace.round.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + enum-constructor-call + + begin + \b(?<!\.)((_*[a-z]\w*\.)*)(_*[A-Z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\s*(\() + 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 + + + end + (\)) + endCaptures + + 1 + + name + meta.brace.round.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + 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 + + + + + + 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 + + + + + begin + ((#(if|elseif))[\s!]*)(?=\() + beginCaptures + + 0 + + name + punctuation.definition.tag + + + end + (?<=\)|\n) + endCaptures + + 0 + + name + punctuation.definition.tag + + + name + punctuation.definition.tag + patterns + + + include + #conditional-compilation-parens + + + + + match + (#(end|else|error|line)) + name + punctuation.definition.tag + + + match + (#([a-zA-Z0-9_]*))\s + name + punctuation.definition.tag + + + + conditional-compilation-parens + + begin + \( + end + \) + patterns + + + include + #conditional-compilation-parens + + + + operator-assignment + + match + (=) + name + keyword.operator.assignment.hx + + operator-type-hint + + match + (:) + name + keyword.operator.type.annotation.hx + + operators + + patterns + + + match + (&&|\|\|) + name + keyword.operator.logical.hx + + + match + (~|&|\||\^|>>>|<<|>>) + name + keyword.operator.bitwise.hx + + + match + (==|!=|<=|>=|<|>) + name + keyword.operator.comparison.hx + + + match + (!) + 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 + \?\? + name + keyword.operator.nullcoalescing.hx + + + match + \?\. + name + keyword.operator.safenavigation.hx + + + match + \bis\b(?!\() + name + keyword.other.hx + + + begin + \? + beginCaptures + + 0 + + name + keyword.operator.ternary.hx + + + end + : + endCaptures + + 0 + + name + keyword.operator.ternary.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + + + punctuation-comma + + match + , + name + punctuation.separator.comma.hx + + punctuation-accessor + + match + \. + name + punctuation.accessor.hx + + punctuation-terminator + + match + ; + name + punctuation.terminator.hx + + constant-name + + match + \b([_A-Z][_A-Z0-9]*)\b + name + variable.other.hx + + type + + patterns + + + include + #global + + + include + #macro-reification + + + include + #type-name + + + include + #type-parameters + + + match + -> + name + keyword.operator.type.function.hx + + + match + & + name + keyword.operator.type.intersection.hx + + + match + \?(?=\s*[_A-Z]) + name + keyword.operator.optional + + + match + \?(?!\s*[_A-Z]) + name + punctuation.definition.tag + + + begin + (\{) + beginCaptures + + 0 + + name + punctuation.definition.block.begin.hx + + + end + (?<=\}) + patterns + + + include + #typedef-block + + + + + include + #function-type + + + + function-type + + begin + \( + beginCaptures + + 0 + + name + punctuation.definition.parameters.begin.hx + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.parameters.end.hx + + + patterns + + + include + #function-type-parameter + + + + function-type-parameter + + begin + (?<=\(|,) + 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 + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\)|,|=) + patterns + + + 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(?<![^.]\.)((_*[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-parameters + + begin + (<) + beginCaptures + + 1 + + name + punctuation.definition.typeparameters.begin.hx + + + end + (?=$)|(>) + endCaptures + + 1 + + name + punctuation.definition.typeparameters.end.hx + + + name + meta.type-parameters.hx + 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 + + + + type-parameter-constraint-old + + begin + (:)\s*(\() + beginCaptures + + 1 + + name + keyword.operator.type.annotation.hx + + 2 + + name + punctuation.definition.constraint.begin.hx + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.constraint.end.hx + + + patterns + + + include + #type + + + include + #punctuation-comma + + + + type-parameter-constraint-new + + match + : + name + keyword.operator.type.annotation.hxt + + identifier-name + + match + \b([_A-Za-z]\w*)\b + name + variable.other.hx + + + + diff --git a/haxe_libraries/hxnodejs.hxml b/ahaxe_libraries/hxnodejs.hxml similarity index 100% rename from haxe_libraries/hxnodejs.hxml rename to ahaxe_libraries/hxnodejs.hxml diff --git a/haxe_libraries/plist.hxml b/ahaxe_libraries/plist.hxml similarity index 100% rename from haxe_libraries/plist.hxml rename to ahaxe_libraries/plist.hxml diff --git a/haxe_libraries/tink_core.hxml b/ahaxe_libraries/tink_core.hxml similarity index 100% rename from haxe_libraries/tink_core.hxml rename to ahaxe_libraries/tink_core.hxml diff --git a/haxe_libraries/vshaxe-build.hxml b/ahaxe_libraries/vshaxe-build.hxml similarity index 100% rename from haxe_libraries/vshaxe-build.hxml rename to ahaxe_libraries/vshaxe-build.hxml diff --git a/haxe_libraries/yaml.hxml b/ahaxe_libraries/yaml.hxml similarity index 100% rename from haxe_libraries/yaml.hxml rename to ahaxe_libraries/yaml.hxml diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index 4eb76cc..b7a6ba1 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -49,7 +49,10 @@ repository: - include: '#for-loop' - include: '#keywords' - include: '#arrow-function' + - include: '#type-member-access' + - include: '#method-call-dotted' - include: '#method-call' + - include: '#method-call-simple' - include: '#enum-constructor-call' - include: '#punctuation-braces' - include: '#macro-reification' @@ -62,8 +65,8 @@ repository: 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: @@ -232,7 +235,17 @@ repository: - include: '#global' - include: '#metadata' - include: '#parameters' + - include: '#enum-member' - include: '#identifiers' + enum-member: + # enum pascal fix + match: (?m)^\s*([_A-Z]\w*)(?=\s*(?:;|,|\n)) + captures: + '1': { name: variable.other.hx } + # color blue if it ends with ( + match: \b([_A-Za-z]\w*)(?=\s*\() + captures: + '1': { name: entity.name.function.hx } interface: begin: (?=interface) end: (?<=\})|(;) @@ -789,13 +802,23 @@ repository: - match: \b(final)\b(?=\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function)) name: storage.modifier.hx new-expr: - name: new.expr.hx - begin: (? + - 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) + + + + + fileTypes + + hx + dump + + name + Haxe + scopeName + source.hx + uuid + 67c72f9f-862c-4e48-8951-dcc22c0bb4ea + patterns + + + include + #all + + + repository + + all + + patterns + + + include + #global + + + include + #package + + + include + #import + + + include + #using + + + match + \b(final)\b(?=\s+(class|interface|extern|private)\b) + name + storage.modifier.hx + + + include + #abstract + + + include + #class + + + include + #enum + + + include + #interface + + + include + #typedef + + + include + #block + + + include + #block-contents + + + + global + + patterns + + + include + #comments + + + include + #conditional-compilation + + + + block + + begin + \{ + beginCaptures + + 0 + + name + punctuation.definition.block.begin.hx + + + end + \} + endCaptures + + 0 + + name + punctuation.definition.block.end.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + 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 + #type-member-access + + + include + #method-call-dotted + + + include + #method-call + + + include + #method-call-simple + + + 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 + + + + identifiers + + patterns + + + include + #constant-name + + + include + #identifier-name + + + include + #type-name + + + + package + + begin + package\b + beginCaptures + + 0 + + name + keyword.other.package.hx + + + end + $|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #type-path + + + include + #type-path-package-name + + + + using + + begin + using\b + beginCaptures + + 0 + + name + keyword.other.using.hx + + + end + $|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #type-path + + + include + #type-path-package-name + + + + import + + begin + import\b + beginCaptures + + 0 + + name + keyword.control.import.hx + + + end + $|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #type-path + + + match + \b(as)\b + name + keyword.control.as.hx + + + match + \b(in)\b + name + keyword.control.in.hx + + + match + \* + name + constant.language.import-all.hx + + + match + \b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;))) + name + variable.other.hxt + + + include + #type-path-package-name + + + + type-path + + patterns + + + include + #global + + + include + #punctuation-accessor + + + include + #type-path-type-name + + + + type-path-type-name + + match + \b(_*[A-Z]\w*)\b + name + entity.name.type.hx + + type-path-package-name + + match + \b([_A-Za-z]\w*)\b + name + support.package.hx + + abstract + + begin + (?=abstract\s+[A-Z]) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.abstract.hx + patterns + + + include + #abstract-name + + + include + #abstract-name-post + + + include + #abstract-block + + + + abstract-name + + begin + \b(abstract)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + abstract-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #global + + + match + \b(from|to)\b + name + keyword.other.hx + + + include + #type + + + match + [\(\)] + name + punctuation.definition.other.hx + + + + abstract-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #method + + + include + #modifiers + + + include + #variable + + + include + #block + + + include + #block-contents + + + + class + + begin + (?=class) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.class.hx + patterns + + + include + #class-name + + + include + #class-name-post + + + include + #class-block + + + + class-name + + begin + \b(class)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + name + meta.class.identifier.hx + patterns + + + include + #global + + + + class-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #modifiers-inheritance + + + include + #type + + + + class-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #method + + + include + #modifiers + + + include + #variable + + + include + #block + + + include + #block-contents + + + + enum + + begin + (?=enum\s+[A-Z]) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.enum.hx + patterns + + + include + #enum-name + + + include + #enum-name-post + + + include + #enum-block + + + + enum-name + + begin + \b(enum)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + enum-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #type + + + + enum-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #global + + + include + #metadata + + + include + #parameters + + + include + #enum-member + + + include + #identifiers + + + + enum-member + + match + \b([_A-Za-z]\w*)(?=\s*\() + captures + + 1 + + name + entity.name.function.hx + + + + interface + + begin + (?=interface) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.interface.hx + patterns + + + include + #interface-name + + + include + #interface-name-post + + + include + #interface-block + + + + interface-name + + begin + \b(interface)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + interface-name-post + + begin + (?<=\w) + end + ([\{;]) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #global + + + include + #modifiers-inheritance + + + include + #type + + + + interface-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + patterns + + + include + #method + + + include + #variable + + + include + #block + + + include + #block-contents + + + + typedef + + begin + (?=typedef) + end + (?<=\})|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + name + meta.typedef.hx + patterns + + + include + #typedef-name + + + include + #typedef-name-post + + + include + #typedef-block + + + + typedef-name + + begin + \b(typedef)\b + beginCaptures + + 1 + + name + storage.type.class.hx + + + end + ([_A-Za-z]\w*) + endCaptures + + 1 + + name + entity.name.type.class.hx + + + patterns + + + include + #global + + + + typedef-name-post + + begin + (?<=\w) + end + (\{)|(?=;) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + patterns + + + include + #global + + + include + #punctuation-brackets + + + include + #punctuation-separator + + + include + #operator-assignment + + + include + #type + + + + typedef-block + + begin + (?<=\{) + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.block.hx + 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 + + + + typedef-extension + + begin + > + end + ,|$ + patterns + + + include + #type + + + + typedef-simple-field-type-hint + + begin + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\}|,|;) + patterns + + + include + #type + + + + regex + + begin + (~/) + beginCaptures + + 1 + + name + punctuation.definition.string.begin.hx + + + end + (/)([gimsu]*) + endCaptures + + 1 + + name + punctuation.definition.string.end.hx + + 2 + + name + keyword.other.hx + + + name + string.regexp.hx + patterns + + + include + #regexp + + + + regex-character-class + + patterns + + + match + \\[wWsSdDtrnvf]|\. + name + constant.other.character-class.regexp + + + match + \\([0-7]{3}|x\h\h|u\h\h\h\h) + name + constant.character.numeric.regexp + + + match + \\c[A-Z] + name + constant.character.control.regexp + + + match + \\. + name + constant.character.escape.backslash.regexp + + + + regexp + + patterns + + + match + \\[bB]|\^|\$ + name + keyword.control.anchor.regexp + + + match + \\[1-9]\d* + name + keyword.other.back-reference.regexp + + + match + [?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\?? + name + keyword.operator.quantifier.regexp + + + match + \| + name + keyword.operator.or.regexp + + + begin + (\()((\?=)|(\?!)) + 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 + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.group.regexp + + + name + meta.group.assertion.regexp + patterns + + + include + #regexp + + + + + begin + \((\?:)? + beginCaptures + + 0 + + name + punctuation.definition.group.regexp + + 1 + + name + punctuation.definition.group.capture.regexp + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.group.regexp + + + name + meta.group.regexp + patterns + + + include + #regexp + + + + + begin + (\[)(\^)? + beginCaptures + + 1 + + name + punctuation.definition.character-class.regexp + + 2 + + name + keyword.operator.negation.regexp + + + end + (\]) + endCaptures + + 1 + + name + punctuation.definition.character-class.regexp + + + name + constant.other.character-class.set.regexp + patterns + + + match + (?:.|(\\(?:[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])|(\\.)) + 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 + + + name + constant.other.character-class.range.regexp + + + include + #regex-character-class + + + + + include + #regex-character-class + + + + array + + begin + \[ + beginCaptures + + 0 + + name + punctuation.definition.array.begin.hx + + + end + \] + endCaptures + + 0 + + name + punctuation.definition.array.end.hx + + + name + meta.array.literal.hx + patterns + + + include + #block + + + include + #block-contents + + + + constants + + patterns + + + match + \b(true|false|null)\b + name + constant.language.hx + + + 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) (?<!\$)(?: (?:\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 +1497,2483 @@ (?:\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.function.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 +)(?!\$) + captures + + 0 + + name + constant.numeric.decimal.hx + + 1 + + name + meta.delimiter.decimal.period.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 + + 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 + + + + + + comments + + patterns + + + begin + /\*\*(?!/) + beginCaptures + + 0 + + name + punctuation.definition.comment.hx + + + end + \*/ + endCaptures + + 0 + + name + punctuation.definition.comment.hx + + + name + comment.block.documentation.hx + patterns + + + include + #javadoc-tags + + + + + begin + /\* + beginCaptures + + 0 + + name + punctuation.definition.comment.hx + + + end + \*/ + endCaptures + + 0 + + name + punctuation.definition.comment.hx + + + name + comment.block.hx + patterns + + + include + #javadoc-tags + + + + + match + (//).*$\n? + captures + + 1 + + name + punctuation.definition.comment.hx + + + name + comment.line.double-slash.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 + + + + + + strings + + patterns + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.hx + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.hx + + + name + string.quoted.double.hx + patterns + + + include + #string-escape-sequences + + + + + begin + (') + beginCaptures + + 0 + + name + string.quoted.single.hx + + 1 + + name + punctuation.definition.string.begin.hx + + + end + (') + endCaptures + + 0 + + name + string.quoted.single.hx + + 1 + + name + punctuation.definition.string.end.hx + + + patterns + + + begin + \$(?=\$) + beginCaptures + + 0 + + name + constant.character.escape.hx + + + end + \$ + endCaptures + + 0 + + name + constant.character.escape.hx + + + name + string.quoted.single.hx + + + include + #string-escape-sequences + + + begin + (\${) + beginCaptures + + 0 + + name + punctuation.definition.block.begin.hx + + + end + (}) + endCaptures + + 0 + + name + punctuation.definition.block.end.hx + + + patterns + + + include + #block-contents + + + + + match + (\$)([_a-zA-Z]\w*) + captures + + 1 + + name + punctuation.definition.block.begin.hx + + 2 + + name + variable.other.hx + + + + + match + + name + constant.character.escape.hx + + + match + . + name + string.quoted.single.hx + + + + + + string-escape-sequences + + patterns + + + 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 + constant.character.escape.hx + + + match + \\. + name + invalid.escape.sequence.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*(\() + beginCaptures + + 1 + + name + punctuation.metadata.hx + + 2 + + name + storage.modifier.metadata.hx + + 3 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + + + 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*(\() + beginCaptures + + 1 + + name + punctuation.metadata.hx + + 2 + + name + variable.metadata.hx + + 3 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + + + 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 + + begin + (?=\bfunction\b) + end + (?<=[\};]) + name + meta.method.hx + patterns + + + include + #macro-reification + + + include + #method-name + + + include + #method-name-post + + + include + #method-block + + + + method-name + + begin + \b(function)\b\s*\b(?:(new)|([_A-Za-z]\w*))?\b + beginCaptures + + 1 + + name + storage.type.function.hx + + 2 + + name + storage.type.hx + + 3 + + name + entity.name.function.hx + + + end + (?=$|\() + patterns + + + include + #macro-reification + + + include + #type-parameters + + + + method-name-post + + begin + (?<=[\w\s>]) + end + (\{)|(;) + endCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + 2 + + name + punctuation.terminator.hx + + + patterns + + + include + #parameters + + + include + #method-return-type-hint + + + include + #block + + + include + #block-contents + + + + method-block + + begin + (?<=\{) + beginCaptures + + 1 + + name + punctuation.definition.block.begin.hx + + + end + (\}) + endCaptures + + 1 + + name + punctuation.definition.block.end.hx + + + name + meta.method.block.hx + patterns + + + include + #block + + + include + #block-contents + + + + parameters + + begin + \( + beginCaptures + + 0 + + name + punctuation.definition.parameters.begin.hx + + + end + \s*(\)(?!\s*->)) + endCaptures + + 1 + + name + punctuation.definition.parameters.end.hx + + + name + meta.parameters.hx + patterns + + + include + #parameter + + + include + #punctuation-comma + + + + parameter + + begin + (?<=\(|,) + end + (?=\)(?!\s*->)|,) + patterns + + + include + #parameter-name + + + include + #parameter-type-hint + + + include + #parameter-assign + + + include + #global + + + + 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 + + + + operator-rest + + match + \.\.\. + name + keyword.operator.rest.hx + + parameter-type-hint + + begin + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\)(?!\s*->)|,|=) + patterns + + + include + #type + + + + parameter-assign + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.hx + + + end + (?=\)|,) + patterns + + + include + #block + + + include + #block-contents + + + + arrow-function + + begin + (\()(?=[^(]*?\)\s*->) + beginCaptures + + 1 + + name + punctuation.definition.parameters.begin.hx + + + end + (\))\s*(->) + endCaptures + + 1 + + name + punctuation.definition.parameters.end.hx + + 2 + + name + storage.type.function.arrow.hx + + + name + meta.method.arrow.hx + patterns + + + include + #arrow-function-parameter + + + + arrow-function-parameter + + begin + (?<=\(|,) + 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 + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\)|,|=) + patterns + + + include + #type + + + + method-return-type-hint + + begin + (?<=\))\s*(:) + beginCaptures + + 1 + + name + keyword.operator.type.annotation.hx + + + end + (?=\{|;|[a-z0-9]) + patterns + + + include + #type + + + + operator-optional + + match + (\?)(?!\s) + name + keyword.operator.optional.hx + + variable + + begin + (?=\b(var|final)\b) + end + (?=$)|(;) + endCaptures + + 1 + + name + punctuation.terminator.hx + + + patterns + + + include + #variable-name + + + include + #variable-name-next + + + include + #variable-assign + + + include + #variable-name-post + + + + variable-name + + begin + \b(var|final)\b + beginCaptures + + 1 + + name + storage.type.variable.hx + + + end + (?=$)|([_a-zA-Z]\w*) + endCaptures + + 1 + + name + variable.other.hx + + + patterns + + + include + #operator-optional + + + + variable-name-next + + begin + , + beginCaptures + + 0 + + name + punctuation.separator.comma.hx + + + end + ([_a-zA-Z]\w*) + endCaptures + + 1 + + name + variable.other.hx + + + patterns + + + include + #global + + + + variable-type-hint + + begin + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=$|;|,|=) + patterns + + + include + #type + + + + variable-assign + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.hx + + + end + (?=;|,) + patterns + + + include + #block + + + include + #block-contents + + + + variable-name-post + + begin + (?<=\w) + end + (?=;)|(?==) + patterns + + + include + #variable-accessors + + + include + #variable-type-hint + + + include + #block-contents + + + + variable-accessors + + begin + \( + beginCaptures + + 0 + + name + punctuation.definition.parameters.begin.hx + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.parameters.end.hx + + + name + meta.parameters.hx + patterns + + + include + #global + + + include + #keywords-accessor + + + include + #accessor-method + + + include + #punctuation-comma + + + + keywords-accessor + + match + \b(private|default|get|set|dynamic|never|null)\b + name + storage.type.property.hx + + accessor-method + + patterns + + + match + \b(get|set)_[_A-Za-z]\w*\b + name + entity.name.function.hx + + + + modifiers + + patterns + + + match + \b(enum)\b + name + storage.type.class + + + 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)) + name + storage.modifier.hx + + + + new-expr + + patterns + + + begin + (?<!\.)\b(new)\b\s*((?:_*[a-z]\w*\.)*(?:_*[A-Z]\w*))(?:\s*)(<) + beginCaptures + + 1 + + name + keyword.operator.new.hx + + 2 + + name + entity.name.type.hx + + 3 + + name + punctuation.definition.typeparameters.begin.hx + + + end + (>) + endCaptures + + 1 + + name + punctuation.definition.typeparameters.end.hx + + + patterns + + + include + #type + + + + + match + (?<!\.)\b(new)\b\s*((?:_*[a-z]\w*\.)*(?:_*[A-Z]\w*)) + captures + + 1 + + name + keyword.operator.new.hx + + 2 + + name + entity.name.type.hx + + + + + + for-loop + + begin + \b(for)\b\s*(\() + beginCaptures + + 1 + + name + keyword.control.flow-control.hx + + 2 + + name + meta.brace.round.hx + + + end + (\)) + endCaptures + + 1 + + name + meta.brace.round.hx + + + patterns + + + match + \b(in)\b + name + keyword.other.in.hx + + + include + #block + + + include + #block-contents + + + + keywords + + patterns + + + begin + (?<=trace|$type|if|while|for|super)\s*(\() + beginCaptures + + 1 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + + + begin + (?<=catch)\s*(\() + beginCaptures + + 1 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #block-contents + + + include + #type-check + + + + + begin + (?<=cast)\s*(\() + beginCaptures + + 1 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + begin + (?=,) + end + (?=\)) + patterns + + + include + #type + + + + + include + #block-contents + + + + + match + \b(try|catch|throw)\b + name + keyword.control.catch-exception.hx + + + begin + \b(case|default)\b + beginCaptures + + 1 + + name + keyword.control.flow-control.hx + + + 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 + + + match + \( + name + meta.brace.round.hx + + + match + \) + name + meta.brace.round.hx + + + include + #macro-reification + + + match + => + name + keyword.operator.extractor.hx + + + include + #operator-assignment + + + include + #punctuation-comma + + + include + #keywords + + + include + #enum-constructor-call + + + include + #method-call + + + include + #identifiers + + + + + match + \b(if|else|return|do|while|for|break|continue|switch|case|default)\b + name + keyword.control.flow-control.hx + + + match + \b(cast|untyped)\b + name + keyword.other.untyped.hx + + + match + \btrace\b + name + keyword.other.trace.hx + + + match + \$type\b + name + keyword.other.type.hx + + + match + \__(global|this)__\b + name + keyword.other.untyped-property.hx + + + match + \b(this)\b + name + variable.language.this.hx + + + match + \b(super)\b + name + variable.language.super.hx + + + match + \bnew\b + name + keyword.operator.new.hx + + + match + \b(abstract|class|enum|interface|typedef)\b + name + storage.type.hx + + + match + -> + name + storage.type.function.arrow.hx + + + include + #modifiers + + + include + #modifiers-inheritance + + + + punctuation-braces + + begin + \( + beginCaptures + + 0 + + name + meta.brace.round.hx + + + end + \) + endCaptures + + 0 + + name + meta.brace.round.hx + + + patterns + + + include + #keywords + + + include + #block + + + include + #block-contents + + + include + #type-check + + + + type-check + + begin + (?<!macro)(?=:) + end + (?=\)) + patterns + + + include + #operator-type-hint + + + include + #type + + + + modifiers-inheritance + + match + \b(implements|extends)\b + name + storage.modifier.hx + + method-call-dotted + + match + \b(_*[A-Z][a-z]\w*)(\.)([_A-Za-z]\w*)(?=\s*\() + captures + + 1 + + name + entity.name.type.hx + + 2 + + name + punctuation.accessor.hx + + 3 + + name + entity.name.function.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*(\() + beginCaptures + + 1 + + name + keyword.other.untyped-function.hx + + 2 + + name + entity.name.function.hx + + 3 + + name + meta.brace.round.hx + + + end + (\)) + endCaptures + + 1 + + name + meta.brace.round.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + method-call-simple + + match + \b([_A-Za-z]\w*)(?=\s*\() + captures + + 1 + + name + entity.name.function.hx + + + + enum-constructor-call + + begin + \b(?<!\.)((_*[a-z]\w*\.)*)(_*[A-Z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\s*(\() + beginCaptures + + 1 + + name + support.package.hx + + 3 + + name + entity.name.function.hx + + 4 + + name + support.package.hx + + 5 + + name + variable.other.hx + + 6 + + name + meta.brace.round.hx + + + end + (\)) + endCaptures + + 1 + + name + meta.brace.round.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + 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 + + + + + + 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 + + + + + begin + ((#(if|elseif))[\s!]*)(?=\() + beginCaptures + + 0 + + name + punctuation.definition.tag + + + end + (?<=\)|\n) + endCaptures + + 0 + + name + punctuation.definition.tag + + + name + punctuation.definition.tag + patterns + + + include + #conditional-compilation-parens + + + + + match + (#(end|else|error|line)) + name + punctuation.definition.tag + + + match + (#([a-zA-Z0-9_]*))\s + name + punctuation.definition.tag + + + + conditional-compilation-parens + + begin + \( + end + \) + patterns + + + include + #conditional-compilation-parens + + + + operator-assignment + + match + (=) + name + keyword.operator.assignment.hx + + operator-type-hint + + match + (:) + name + keyword.operator.type.annotation.hx + + operators + + patterns + + + match + (&&|\|\|) + name + keyword.operator.logical.hx + + + match + (~|&|\||\^|>>>|<<|>>) + name + keyword.operator.bitwise.hx + + + match + (==|!=|<=|>=|<|>) + name + keyword.operator.comparison.hx + + + match + (!) + 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 + \?\? + name + keyword.operator.nullcoalescing.hx + + + match + \?\. + name + keyword.operator.safenavigation.hx + + + match + \bis\b(?!\() + name + keyword.other.hx + + + begin + \? + beginCaptures + + 0 + + name + keyword.operator.ternary.hx + + + end + : + endCaptures + + 0 + + name + keyword.operator.ternary.hx + + + patterns + + + include + #block + + + include + #block-contents + + + + + + punctuation-comma + + match + , + name + punctuation.separator.comma.hx + + punctuation-accessor + + match + \. + name + punctuation.accessor.hx + + punctuation-terminator + + match + ; + name + punctuation.terminator.hx + + constant-name + + match + \b([_A-Z][_A-Z0-9]*)\b + name + variable.other.hx + + type + + patterns + + + include + #global + + + include + #macro-reification + + + include + #type-name + + + include + #type-parameters + + + match + -> + name + keyword.operator.type.function.hx + + + match + & + name + keyword.operator.type.intersection.hx + + + match + \?(?=\s*[_A-Z]) + name + keyword.operator.optional + + + match + \?(?!\s*[_A-Z]) + name + punctuation.definition.tag + + + begin + (\{) + beginCaptures + + 0 + + name + punctuation.definition.block.begin.hx + + + end + (?<=\}) + patterns + + + include + #typedef-block + + + + + include + #function-type + + + + function-type + + begin + \( + beginCaptures + + 0 + + name + punctuation.definition.parameters.begin.hx + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.parameters.end.hx + + + patterns + + + include + #function-type-parameter + + + + function-type-parameter + + begin + (?<=\(|,) + 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 + : + beginCaptures + + 0 + + name + keyword.operator.type.annotation.hx + + + end + (?=\)|,|=) + patterns + + + include + #type + + + + type-member-access + + patterns + + + match + \b(_*[A-Z]\w*)(\.)([_A-Za-z]\w*)(?=\() + captures + + 1 + + name + entity.name.type.hx + + 2 + + name + punctuation.accessor.hx + + 3 + + name + entity.name.function.hx + + + + + match + \b(_*[A-Z][A-Za-z0-9]*[a-z]\w*)(\.)([_A-Za-z]\w*)2 + captures + + 1 + + name + entity.name.type.hx + + 2 + + name + punctuation.accessor.hx + + 3 + + name + variable.other.hx + + + + + + 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 + + + + + begin + \b(?<![^.]\.)((?:_*[a-z]\w*\.)*)(_*[A-Z]\w*) + beginCaptures + + 1 + + name + support.package.hx + + 2 + + name + entity.name.type.hx + + + end + (?=\b|(?=\s*\(|\s*<)) + patterns + + + match + (\.) + name + punctuation.accessor.hx + + + match + (_*[A-Z]\w*) + name + entity.name.type.hx + + + + + + type-parameters + + begin + (<) + beginCaptures + + 1 + + name + punctuation.definition.typeparameters.begin.hx + + + end + (?=$)|(>) + endCaptures + + 1 + + name + punctuation.definition.typeparameters.end.hx + + + name + meta.type-parameters.hx + 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 + + + + type-parameter-constraint-old + + begin + (:)\s*(\() + beginCaptures + + 1 + + name + keyword.operator.type.annotation.hx + + 2 + + name + punctuation.definition.constraint.begin.hx + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.constraint.end.hx + + + patterns + + + include + #type + + + include + #punctuation-comma + + + + type-parameter-constraint-new + + match + : + name + keyword.operator.type.annotation.hxt + + identifier-name + + match + \b([_A-Za-z]\w*)\b + name + variable.other.hx + + + + diff --git a/package-lock.json b/package-lock.json index 8f2e0da..52911e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,61 +1,54 @@ { - "name": "haxe-tm-language", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "haxe-tm-language", - "hasInstallScript": true, - "devDependencies": { - "lix": "^15.10.1", - "vscode-oniguruma": "^1.6.2", - "vscode-textmate": "^7.0.1" - } - }, - "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==", - "dev": true, - "hasInstallScript": true, - "bin": { - "haxe": "bin/haxeshim.js", - "haxelib": "bin/haxelibshim.js", - "lix": "bin/lix.js", - "neko": "bin/nekoshim.js" - } - }, - "node_modules/vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", - "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 - } - }, - "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==", - "dev": true - }, - "vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", - "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==", - "dev": true - } - } + "name": "haxe-tm-language", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "haxe-tm-language", + "version": "0.0.1", + "devDependencies": { + "@types/vscode": "^1.76.0", + "typescript": "^4.9.5" + }, + "engines": { + "vscode": "^1.50.0" + } + }, + "node_modules/@types/vscode": { + "version": "1.109.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.109.0.tgz", + "integrity": "sha512-0Pf95rnwEIwDbmXGC08r0B4TQhAbsHQ5UyTIgVgoieDe4cOnf92usuR5dEczb6bTKEp7ziZH4TV1TRGPPCExtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + } + }, + "dependencies": { + "@types/vscode": { + "version": "1.109.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.109.0.tgz", + "integrity": "sha512-0Pf95rnwEIwDbmXGC08r0B4TQhAbsHQ5UyTIgVgoieDe4cOnf92usuR5dEczb6bTKEp7ziZH4TV1TRGPPCExtw==", + "dev": true + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + } + } } diff --git a/package.json b/package.json index c1bcc2b..c9649ad 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,23 @@ { - "name": "haxe-tm-language", - "devDependencies": { - "lix": "^15.10.1", - "vscode-oniguruma": "^1.6.2", - "vscode-textmate": "^7.0.1" - }, - "scripts": { - "postinstall": "npx lix download" - } + "name": "haxe-tm-language", + "displayName": "Haxe", + "publisher": "publisher-name", + "version": "0.0.1", + "engines": { + "vscode": "^1.50.0" + }, + "main": "./out/extension.js", + "activationEvents": [ + "onLanguage:haxe" + ], + "scripts": { + "vscode:prepublish": "npm run build", + "build": "tsc -p .", + "watch": "tsc -watch -p ." + }, + "devDependencies": { + "typescript": "^4.9.5", + "@types/vscode": "^1.76.0" + }, + "dependencies": {} } From 2b45ca7480453b095bb5a20777c3ea9b3c18dd9e Mon Sep 17 00:00:00 2001 From: mtunixic Date: Thu, 5 Mar 2026 18:19:08 +0100 Subject: [PATCH 07/10] Tiny patch to resolve Class.variable and UPPER.method --- haxe.YAML-tmLanguage | 12 +-- haxe.tmLanguage | 190 ++++++++++++++++--------------------------- 2 files changed, 76 insertions(+), 126 deletions(-) diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index 653e9d5..8e99e39 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -60,6 +60,7 @@ repository: - include: '#punctuation-terminator' - include: '#punctuation-comma' - include: '#punctuation-accessor' + - include: '#type-member-access' - include: '#identifiers' enum-member: # enum pascal fix @@ -110,13 +111,12 @@ repository: name: variable.other.hxt - include: '#type-path-package-name' method-call-dotted: - match: \b((?:_*[a-z]\w*\.)*)(_*[A-Z]\w*)(\.)([_A-Za-z]\w*)(?=\s*\() + 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 - method-call-simple: match: \b([_A-Za-z]\w*)(?=\s*\() captures: @@ -129,7 +129,7 @@ repository: type-path-type-name: # OLD: match anything uppercase as class (BAD): match: \b(_*[A-Z]\w*)\b # NEW: filter functions, vars, finals, and things that start with "(" - match: (?include #arrow-function - - include - #type-member-access - include #method-call-dotted - - include - #method-call - include #method-call-simple @@ -230,12 +222,29 @@ include #punctuation-accessor + + include + #type-member-access + include #identifiers + enum-member + + match + \b([_A-Za-z]\w*)(?=\s*\() + captures + + 1 + + name + entity.name.function.hx + + + identifiers patterns @@ -380,6 +389,47 @@ + method-call-dotted + + match + \b((?:_*[a-z]\w*\.)*)(_*[A-Z][a-z]\w*)(\.)([_A-Za-z]\w*)(?=\s*\() + captures + + 1 + + name + support.package.hx + + 2 + + name + entity.name.type.hx + + 3 + + name + punctuation.accessor.hx + + 4 + + name + entity.name.function.hx + + + + method-call-simple + + match + \b([_A-Za-z]\w*)(?=\s*\() + captures + + 1 + + name + entity.name.function.hx + + + type-path patterns @@ -401,7 +451,7 @@ type-path-type-name match - \b(_*[A-Z]\w*)\b + (?<!\bfunction\s)(?<!\bvar\s)(?<!\bfinal\s)\b(_*[A-Z][a-z]\w*)\b(?!\s*\() name entity.name.type.hx @@ -806,19 +856,6 @@ - enum-member - - match - \b([_A-Za-z]\w*)(?=\s*\() - captures - - 1 - - name - entity.name.function.hx - - - interface begin @@ -3014,11 +3051,11 @@ include - #enum-constructor-call + #method-call-dotted include - #method-call + #method-call-simple include @@ -3163,86 +3200,6 @@ name storage.modifier.hx - method-call-dotted - - match - \b(_*[A-Z][a-z]\w*)(\.)([_A-Za-z]\w*)(?=\s*\() - captures - - 1 - - name - entity.name.type.hx - - 2 - - name - punctuation.accessor.hx - - 3 - - name - entity.name.function.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*(\() - beginCaptures - - 1 - - name - keyword.other.untyped-function.hx - - 2 - - name - entity.name.function.hx - - 3 - - name - meta.brace.round.hx - - - end - (\)) - endCaptures - - 1 - - name - meta.brace.round.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - method-call-simple - - match - \b([_A-Za-z]\w*)(?=\s*\() - captures - - 1 - - name - entity.name.function.hx - - - enum-constructor-call begin @@ -3747,7 +3704,7 @@ match - \b(_*[A-Z]\w*)(\.)([_A-Za-z]\w*)(?=\() + \b(_*[A-Z][a-z]+[A-Za-z0-9]*)(\.)([_A-Za-z]\w*)(?=\() captures 1 @@ -3769,7 +3726,7 @@ match - \b(_*[A-Z][A-Za-z0-9]*[a-z]\w*)(\.)([_A-Za-z]\w*)2 + \b(_*[A-Z][a-z]+[A-Za-z0-9]*)(\.)([_A-Za-z]\w*) captures 1 @@ -3818,38 +3775,31 @@ - begin - \b(?<![^.]\.)((?:_*[a-z]\w*\.)*)(_*[A-Z]\w*) - beginCaptures + match + \b(?<![^.]\.)((_*[a-z]\w*\.)*)(_*[A-Z][a-z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\b(?!\s*\() + captures 1 name support.package.hx - 2 + 3 name entity.name.type.hx - - end - (?=\b|(?=\s*\(|\s*<)) - patterns - + 4 - match - (\.) name punctuation.accessor.hx + 5 - match - (_*[A-Z]\w*) name entity.name.type.hx - + From bd3846ca65842a8ca8058bcbf319fe294e1b9c49 Mon Sep 17 00:00:00 2001 From: mtunixic Date: Fri, 6 Mar 2026 12:10:09 +0100 Subject: [PATCH 08/10] patch enum-member duplication and added proper '-' tags before any match captures --- haxe.YAML-tmLanguage | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index 8e99e39..57ea775 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -64,9 +64,13 @@ repository: - include: '#identifiers' enum-member: # enum pascal fix - match: (?m)^\s*([_A-Z]\w*)(?=\s*(?:;|,|\n)) - captures: - '1': { name: variable.other.hx } + - match: (?m)^\s*([_A-Z]\w*)(?=\s*(?:;|,|\n)) + captures: + '1': { name: variable.other.hx } + # color blue if it ends with ( + - match: \b([_A-Za-z]\w*)(?=\s*\() + captures: + '1': { name: entity.name.function.hx } identifiers: patterns: - include: '#constant-name' @@ -255,15 +259,6 @@ repository: - include: '#parameters' - include: '#enum-member' - include: '#identifiers' - enum-member: - # enum pascal fix - match: (?m)^\s*([_A-Z]\w*)(?=\s*(?:;|,|\n)) - captures: - '1': { name: variable.other.hx } - # color blue if it ends with ( - match: \b([_A-Za-z]\w*)(?=\s*\() - captures: - '1': { name: entity.name.function.hx } interface: begin: (?=interface) end: (?<=\})|(;) From 2add150e78ba9cc14ad8807945ba8a0854c705f2 Mon Sep 17 00:00:00 2001 From: mtunixic Date: Fri, 6 Mar 2026 17:44:48 +0100 Subject: [PATCH 09/10] FINALIZATION - 3/6 --- OG/haxe.YAML-tmLanguage | 1130 ----- OG/haxe.tmLanguage | 3809 ----------------- haxe.tmLanguage => haxe.tmLanguage.bak | 0 .../hxnodejs.hxml | 0 .../plist.hxml | 0 .../tink_core.hxml | 0 .../vshaxe-build.hxml | 0 {ahaxe_libraries => haxe_libraries}/yaml.hxml | 0 package-lock.json | 111 +- package.json | 30 +- 10 files changed, 68 insertions(+), 5012 deletions(-) delete mode 100644 OG/haxe.YAML-tmLanguage delete mode 100644 OG/haxe.tmLanguage rename haxe.tmLanguage => haxe.tmLanguage.bak (100%) rename {ahaxe_libraries => haxe_libraries}/hxnodejs.hxml (100%) rename {ahaxe_libraries => haxe_libraries}/plist.hxml (100%) rename {ahaxe_libraries => haxe_libraries}/tink_core.hxml (100%) rename {ahaxe_libraries => haxe_libraries}/vshaxe-build.hxml (100%) rename {ahaxe_libraries => haxe_libraries}/yaml.hxml (100%) diff --git a/OG/haxe.YAML-tmLanguage b/OG/haxe.YAML-tmLanguage deleted file mode 100644 index 4eb76cc..0000000 --- a/OG/haxe.YAML-tmLanguage +++ /dev/null @@ -1,1130 +0,0 @@ -fileTypes: [hx, dump] -name: Haxe -scopeName: source.hx -uuid: 67c72f9f-862c-4e48-8951-dcc22c0bb4ea -patterns: -- include: '#all' -repository: - all: - patterns: - - include: '#global' - - include: '#package' - - include: '#import' - - include: '#using' - - match: \b(final)\b(?=\s+(class|interface|extern|private)\b) - name: storage.modifier.hx - - include: '#abstract' - - include: '#class' - - include: '#enum' - - include: '#interface' - - include: '#typedef' - - include: '#block' - - include: '#block-contents' - global: - patterns: - - include: '#comments' - - include: '#conditional-compilation' - block: - begin: \{ - beginCaptures: - '0': {name: punctuation.definition.block.begin.hx} - end: \} - endCaptures: - '0': {name: punctuation.definition.block.end.hx} - patterns: - - include: '#block' - - include: '#block-contents' - 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' - identifiers: - patterns: - - include: '#constant-name' - - include: '#type-name' - - include: '#identifier-name' - package: - begin: package\b - beginCaptures: - '0': {name: keyword.other.package.hx} - end: $|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - patterns: - - include: '#type-path' - - include: '#type-path-package-name' - using: - begin: using\b - beginCaptures: - '0': {name: keyword.other.using.hx} - end: $|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - patterns: - - include: '#type-path' - - include: '#type-path-package-name' - import: - begin: import\b - beginCaptures: - '0': {name: keyword.control.import.hx} - end: $|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - patterns: - - include: '#type-path' - - match: \b(as)\b - name: keyword.control.as.hx - - match: \b(in)\b - name: keyword.control.in.hx - - match: \* - name: constant.language.import-all.hx - - match: \b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;))) - name: variable.other.hxt - - include: '#type-path-package-name' - type-path: - patterns: - - include: '#global' - - include: '#punctuation-accessor' - - include: '#type-path-type-name' - type-path-type-name: - match: \b(_*[A-Z]\w*)\b - name: entity.name.type.hx - type-path-package-name: - match: \b([_A-Za-z]\w*)\b - name: support.package.hx - abstract: - begin: (?=abstract\s+[A-Z]) - end: (?<=\})|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - name: meta.abstract.hx - patterns: - - include: '#abstract-name' - - include: '#abstract-name-post' - - include: '#abstract-block' - abstract-name: - begin: \b(abstract)\b - beginCaptures: - '1': {name: storage.type.class.hx} - end: ([_A-Za-z]\w*) - endCaptures: - '1': {name: entity.name.type.class.hx} - patterns: - - include: '#global' - abstract-name-post: - begin: (?<=\w) - end: ([\{;]) - endCaptures: - '1': {name: punctuation.definition.block.begin.hx} - patterns: - - include: '#global' - - match: \b(from|to)\b - name: keyword.other.hx - - include: '#type' - - match: '[\(\)]' - name: punctuation.definition.other.hx - abstract-block: - begin: (?<=\{) - end: (\}) - endCaptures: - '1': {name: punctuation.definition.block.end.hx} - name: meta.block.hx - patterns: - - include: '#method' - - include: '#modifiers' - - include: '#variable' - - include: '#block' - - include: '#block-contents' - class: - begin: (?=class) - end: (?<=\})|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - name: meta.class.hx - patterns: - - include: '#class-name' - - include: '#class-name-post' - - include: '#class-block' - class-name: - begin: \b(class)\b - beginCaptures: - '1': {name: storage.type.class.hx} - end: ([_A-Za-z]\w*) - endCaptures: - '1': {name: entity.name.type.class.hx} - name: meta.class.identifier.hx - patterns: - - include: '#global' - class-name-post: - begin: (?<=\w) - end: ([\{;]) - endCaptures: - '1': {name: punctuation.definition.block.begin.hx} - patterns: - - include: '#modifiers-inheritance' - - include: '#type' - class-block: - begin: (?<=\{) - end: (\}) - endCaptures: - '1': {name: punctuation.definition.block.end.hx} - name: meta.block.hx - patterns: - - include: '#method' - - include: '#modifiers' - - include: '#variable' - - include: '#block' - - include: '#block-contents' - enum: - begin: (?=enum\s+[A-Z]) - end: (?<=\})|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - name: meta.enum.hx - patterns: - - include: '#enum-name' - - include: '#enum-name-post' - - include: '#enum-block' - enum-name: - begin: \b(enum)\b - beginCaptures: - '1': {name: storage.type.class.hx} - end: ([_A-Za-z]\w*) - endCaptures: - '1': {name: entity.name.type.class.hx} - patterns: - - include: '#global' - enum-name-post: - begin: (?<=\w) - end: ([\{;]) - endCaptures: - '1': {name: punctuation.definition.block.begin.hx} - patterns: - - include: '#type' - enum-block: - begin: (?<=\{) - end: (\}) - endCaptures: - '1': {name: punctuation.definition.block.end.hx} - name: meta.block.hx - patterns: - - include: '#global' - - include: '#metadata' - - include: '#parameters' - - include: '#identifiers' - interface: - begin: (?=interface) - end: (?<=\})|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - name: meta.interface.hx - patterns: - - include: '#interface-name' - - include: '#interface-name-post' - - include: '#interface-block' - interface-name: - begin: \b(interface)\b - beginCaptures: - '1': {name: storage.type.class.hx} - end: ([_A-Za-z]\w*) - endCaptures: - '1': {name: entity.name.type.class.hx} - patterns: - - include: '#global' - interface-name-post: - begin: (?<=\w) - end: ([\{;]) - endCaptures: - '1': {name: punctuation.definition.block.begin.hx} - patterns: - - include: '#global' - - include: '#modifiers-inheritance' - - include: '#type' - interface-block: - begin: (?<=\{) - end: (\}) - endCaptures: - '1': {name: punctuation.definition.block.end.hx} - name: meta.block.hx - patterns: - - include: '#method' - - include: '#variable' - - include: '#block' - - include: '#block-contents' - typedef: - begin: (?=typedef) - end: (?<=\})|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - name: meta.typedef.hx - patterns: - - include: '#typedef-name' - - include: '#typedef-name-post' - - include: '#typedef-block' - typedef-name: - begin: \b(typedef)\b - beginCaptures: - '1': {name: storage.type.class.hx} - end: ([_A-Za-z]\w*) - endCaptures: - '1': {name: entity.name.type.class.hx} - patterns: - - include: '#global' - typedef-name-post: - begin: (?<=\w) - end: (\{)|(?=;) - endCaptures: - '1': {name: punctuation.definition.block.begin.hx} - patterns: - - include: '#global' - - include: '#punctuation-brackets' - - include: '#punctuation-separator' - - include: '#operator-assignment' - - include: '#type' - typedef-block: - begin: (?<=\{) - end: (\}) - endCaptures: - '1': {name: punctuation.definition.block.end.hx} - name: meta.block.hx - 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' - typedef-extension: - begin: '>' - end: ',|$' - patterns: - - include: '#type' - typedef-simple-field-type-hint: - begin: ':' - beginCaptures: - '0': {name: keyword.operator.type.annotation.hx} - end: (?=\}|,|;) - patterns: - - include: '#type' - regex: - begin: (~/) - beginCaptures: - '1': {name: punctuation.definition.string.begin.hx} - end: (/)([gimsu]*) - endCaptures: - '1': {name: punctuation.definition.string.end.hx} - '2': {name: keyword.other.hx} - name: string.regexp.hx - patterns: - - include: '#regexp' - regex-character-class: - patterns: - - match: '\\[wWsSdDtrnvf]|\.' - name: constant.other.character-class.regexp - - match: '\\([0-7]{3}|x\h\h|u\h\h\h\h)' - name: constant.character.numeric.regexp - - match: '\\c[A-Z]' - name: constant.character.control.regexp - - match: \\. - name: constant.character.escape.backslash.regexp - regexp: - patterns: - - match: '\\[bB]|\^|\$' - name: keyword.control.anchor.regexp - - match: '\\[1-9]\d*' - name: keyword.other.back-reference.regexp - - match: '[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??' - name: keyword.operator.quantifier.regexp - - match: \| - name: keyword.operator.or.regexp - - begin: (\()((\?=)|(\?!)) - 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} - end: (\)) - endCaptures: - '1': {name: punctuation.definition.group.regexp} - name: meta.group.assertion.regexp - patterns: - - include: '#regexp' - - begin: \((\?:)? - beginCaptures: - '0': {name: punctuation.definition.group.regexp} - '1': {name: punctuation.definition.group.capture.regexp} - end: \) - endCaptures: - '0': {name: punctuation.definition.group.regexp} - name: meta.group.regexp - patterns: - - include: '#regexp' - - begin: (\[)(\^)? - beginCaptures: - '1': {name: punctuation.definition.character-class.regexp} - '2': {name: keyword.operator.negation.regexp} - end: (\]) - endCaptures: - '1': {name: punctuation.definition.character-class.regexp} - name: constant.other.character-class.set.regexp - patterns: - - match: (?:.|(\\(?:[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])|(\\.)) - 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} - name: constant.other.character-class.range.regexp - - include: '#regex-character-class' - - include: '#regex-character-class' - array: - begin: \[ - beginCaptures: - '0': {name: punctuation.definition.array.begin.hx} - end: \] - endCaptures: - '0': {name: punctuation.definition.array.end.hx} - name: meta.array.literal.hx - patterns: - - include: '#block' - - include: '#block-contents' - constants: - patterns: - - match: \b(true|false|null)\b - name: constant.language.hx - - 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) - (?]) - end: (\{)|(;) - endCaptures: - '1': {name: punctuation.definition.block.begin.hx} - '2': {name: punctuation.terminator.hx} - patterns: - - include: '#parameters' - - include: '#method-return-type-hint' - - include: '#block' - - include: '#block-contents' - method-block: - begin: (?<=\{) - beginCaptures: - '1': {name: punctuation.definition.block.begin.hx} - end: (\}) - endCaptures: - '1': {name: punctuation.definition.block.end.hx} - name: meta.method.block.hx - patterns: - - include: '#block' - - include: '#block-contents' - parameters: - begin: \( - beginCaptures: - '0': {name: punctuation.definition.parameters.begin.hx} - end: \s*(\)(?!\s*->)) - endCaptures: - '1': {name: punctuation.definition.parameters.end.hx} - name: meta.parameters.hx - patterns: - - include: '#parameter' - - include: '#punctuation-comma' - parameter: - begin: (?<=\(|,) - end: (?=\)(?!\s*->)|,) - patterns: - - include: '#parameter-name' - - include: '#parameter-type-hint' - - include: '#parameter-assign' - - include: '#global' - 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' - operator-rest: - match: '\.\.\.' - name: keyword.operator.rest.hx - parameter-type-hint: - begin: ':' - beginCaptures: - '0': {name: keyword.operator.type.annotation.hx} - end: (?=\)(?!\s*->)|,|=) - patterns: - - include: '#type' - parameter-assign: - begin: '=' - beginCaptures: - '0': {name: keyword.operator.assignment.hx} - end: (?=\)|,) - patterns: - - include: '#block' - - include: '#block-contents' - arrow-function: - begin: '(\()(?=[^(]*?\)\s*->)' - beginCaptures: - '1': {name: punctuation.definition.parameters.begin.hx} - end: '(\))\s*(->)' - endCaptures: - '1': {name: punctuation.definition.parameters.end.hx} - '2': {name: storage.type.function.arrow.hx} - name: meta.method.arrow.hx - patterns: - - include: '#arrow-function-parameter' - arrow-function-parameter: - begin: (?<=\(|,) - 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: ':' - beginCaptures: - '0': {name: keyword.operator.type.annotation.hx} - end: (?=\)|,|=) - patterns: - - include: '#type' - method-return-type-hint: - begin: (?<=\))\s*(:) - beginCaptures: - '1': {name: keyword.operator.type.annotation.hx} - end: (?=\{|;|[a-z0-9]) - patterns: - - include: '#type' - operator-optional: - match: '(\?)(?!\s)' - name: keyword.operator.optional.hx - variable: - begin: (?=\b(var|final)\b) - end: (?=$)|(;) - endCaptures: - '1': {name: punctuation.terminator.hx} - patterns: - - include: '#variable-name' - - include: '#variable-name-next' - - include: '#variable-assign' - - include: '#variable-name-post' - variable-name: - begin: \b(var|final)\b - beginCaptures: - '1': {name: storage.type.variable.hx} - end: (?=$)|([_a-zA-Z]\w*) - endCaptures: - '1': {name: variable.other.hx} - patterns: - - include: '#operator-optional' - variable-name-next: - begin: ',' - beginCaptures: - '0': {name: punctuation.separator.comma.hx} - end: ([_a-zA-Z]\w*) - endCaptures: - '1': {name: variable.other.hx} - patterns: - - include: '#global' - variable-type-hint: - begin: ':' - beginCaptures: - '0': {name: keyword.operator.type.annotation.hx} - end: (?=$|;|,|=) - patterns: - - include: '#type' - variable-assign: - begin: '=' - beginCaptures: - '0': {name: keyword.operator.assignment.hx} - end: (?=;|,) - patterns: - - include: '#block' - - include: '#block-contents' - variable-name-post: - begin: (?<=\w) - end: (?=;)|(?==) - patterns: - - include: '#variable-accessors' - - include: '#variable-type-hint' - - include: '#block-contents' - variable-accessors: - begin: \( - beginCaptures: - '0': {name: punctuation.definition.parameters.begin.hx} - end: \) - endCaptures: - '0': {name: punctuation.definition.parameters.end.hx} - name: meta.parameters.hx - patterns: - - include: '#global' - - include: '#keywords-accessor' - - include: '#accessor-method' - - include: '#punctuation-comma' - keywords-accessor: - match: \b(private|default|get|set|dynamic|never|null)\b - name: storage.type.property.hx - accessor-method: - patterns: - - match: '\b(get|set)_[_A-Za-z]\w*\b' - name: entity.name.function.hx - modifiers: - patterns: - - match: \b(enum)\b - name: storage.type.class - - 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)) - name: storage.modifier.hx - new-expr: - name: new.expr.hx - begin: (? - name: keyword.operator.extractor.hx - - include: '#operator-assignment' - - include: '#punctuation-comma' - - include: '#keywords' - - include: '#method-call' - - include: '#identifiers' - - match: \b(if|else|return|do|while|for|break|continue|switch|case|default)\b - name: keyword.control.flow-control.hx - - match: \b(cast|untyped)\b - name: keyword.other.untyped.hx - - match: \btrace\b - name: keyword.other.trace.hx - - match: \$type\b - name: keyword.other.type.hx - - match: \__(global|this)__\b - name: keyword.other.untyped-property.hx - - match: \b(this|super)\b - name: variable.language.hx - - match: \bnew\b - name: keyword.operator.new.hx - - match: \b(abstract|class|enum|interface|typedef)\b - name: storage.type.hx - - match: '->' - name: storage.type.function.arrow.hx - - include: '#modifiers' - - include: '#modifiers-inheritance' - punctuation-braces: - begin: \( - beginCaptures: - '0': {name: meta.brace.round.hx} - end: \) - endCaptures: - '0': {name: meta.brace.round.hx} - patterns: - - include: '#keywords' - - include: '#block' - - include: '#block-contents' - - include: '#type-check' - type-check: - begin: (?>>|<<|>>) - name: keyword.operator.bitwise.hx - - match: (==|!=|<=|>=|<|>) - name: keyword.operator.comparison.hx - - match: (!) - 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: \?\? - name: keyword.operator.nullcoalescing.hx - - match: \?\. - name: keyword.operator.safenavigation.hx - - match: \bis\b(?!\() - name: keyword.other.hx - - begin: '\?' - beginCaptures: - '0': {name: keyword.operator.ternary.hx} - end: ':' - endCaptures: - '0': {name: keyword.operator.ternary.hx} - patterns: - - include: '#block' - - include: '#block-contents' - punctuation-comma: - match: ',' - name: punctuation.separator.comma.hx - punctuation-accessor: - match: '\.' - name: punctuation.accessor.hx - punctuation-terminator: - match: ; - name: punctuation.terminator.hx - constant-name: - match: '\b([_A-Z][_A-Z0-9]*)\b' - name: variable.other.hx - type: - patterns: - - include: '#global' - - include: '#macro-reification' - - include: '#type-name' - - include: '#type-parameters' - - match: '->' - name: keyword.operator.type.function.hx - - match: '&' - name: keyword.operator.type.intersection.hx - - match: '\?(?=\s*[_A-Z])' - name: keyword.operator.optional - - match: '\?(?!\s*[_A-Z])' - name: punctuation.definition.tag - - begin: (\{) - beginCaptures: - '0': {name: punctuation.definition.block.begin.hx} - end: (?<=\}) - patterns: - - include: '#typedef-block' - - include: '#function-type' - function-type: - begin: \( - beginCaptures: - '0': {name: punctuation.definition.parameters.begin.hx} - end: \) - endCaptures: - '0': {name: punctuation.definition.parameters.end.hx} - patterns: - - include: '#function-type-parameter' - function-type-parameter: - begin: (?<=\(|,) - 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: ':' - beginCaptures: - '0': {name: keyword.operator.type.annotation.hx} - end: (?=\)|,|=) - patterns: - - 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(?) - endCaptures: - '1': {name: punctuation.definition.typeparameters.end.hx} - name: meta.type-parameters.hx - 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' - type-parameter-constraint-old: - begin: '(:)\s*(\()' - beginCaptures: - '1': {name: keyword.operator.type.annotation.hx} - '2': {name: punctuation.definition.constraint.begin.hx} - end: '\)' - endCaptures: - '0': {name: punctuation.definition.constraint.end.hx} - patterns: - - include: '#type' - - include: '#punctuation-comma' - type-parameter-constraint-new: - match: ':' - name: keyword.operator.type.annotation.hxt - identifier-name: - match: '\b([_A-Za-z]\w*)\b' - name: variable.other.hx diff --git a/OG/haxe.tmLanguage b/OG/haxe.tmLanguage deleted file mode 100644 index 05ab2b5..0000000 --- a/OG/haxe.tmLanguage +++ /dev/null @@ -1,3809 +0,0 @@ - - - - - fileTypes - - hx - dump - - name - Haxe - scopeName - source.hx - uuid - 67c72f9f-862c-4e48-8951-dcc22c0bb4ea - patterns - - - include - #all - - - repository - - all - - patterns - - - include - #global - - - include - #package - - - include - #import - - - include - #using - - - match - \b(final)\b(?=\s+(class|interface|extern|private)\b) - name - storage.modifier.hx - - - include - #abstract - - - include - #class - - - include - #enum - - - include - #interface - - - include - #typedef - - - include - #block - - - include - #block-contents - - - - global - - patterns - - - include - #comments - - - include - #conditional-compilation - - - - block - - begin - \{ - beginCaptures - - 0 - - name - punctuation.definition.block.begin.hx - - - end - \} - endCaptures - - 0 - - name - punctuation.definition.block.end.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - 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 - - - - identifiers - - patterns - - - include - #constant-name - - - include - #type-name - - - include - #identifier-name - - - - package - - begin - package\b - beginCaptures - - 0 - - name - keyword.other.package.hx - - - end - $|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #type-path - - - include - #type-path-package-name - - - - using - - begin - using\b - beginCaptures - - 0 - - name - keyword.other.using.hx - - - end - $|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #type-path - - - include - #type-path-package-name - - - - import - - begin - import\b - beginCaptures - - 0 - - name - keyword.control.import.hx - - - end - $|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #type-path - - - match - \b(as)\b - name - keyword.control.as.hx - - - match - \b(in)\b - name - keyword.control.in.hx - - - match - \* - name - constant.language.import-all.hx - - - match - \b([_A-Za-z]\w*)\b(?=\s*(as|in|$|(;))) - name - variable.other.hxt - - - include - #type-path-package-name - - - - type-path - - patterns - - - include - #global - - - include - #punctuation-accessor - - - include - #type-path-type-name - - - - type-path-type-name - - match - \b(_*[A-Z]\w*)\b - name - entity.name.type.hx - - type-path-package-name - - match - \b([_A-Za-z]\w*)\b - name - support.package.hx - - abstract - - begin - (?=abstract\s+[A-Z]) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.abstract.hx - patterns - - - include - #abstract-name - - - include - #abstract-name-post - - - include - #abstract-block - - - - abstract-name - - begin - \b(abstract)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - abstract-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #global - - - match - \b(from|to)\b - name - keyword.other.hx - - - include - #type - - - match - [\(\)] - name - punctuation.definition.other.hx - - - - abstract-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #method - - - include - #modifiers - - - include - #variable - - - include - #block - - - include - #block-contents - - - - class - - begin - (?=class) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.class.hx - patterns - - - include - #class-name - - - include - #class-name-post - - - include - #class-block - - - - class-name - - begin - \b(class)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - name - meta.class.identifier.hx - patterns - - - include - #global - - - - class-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #modifiers-inheritance - - - include - #type - - - - class-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #method - - - include - #modifiers - - - include - #variable - - - include - #block - - - include - #block-contents - - - - enum - - begin - (?=enum\s+[A-Z]) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.enum.hx - patterns - - - include - #enum-name - - - include - #enum-name-post - - - include - #enum-block - - - - enum-name - - begin - \b(enum)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - enum-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #type - - - - enum-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #global - - - include - #metadata - - - include - #parameters - - - include - #identifiers - - - - interface - - begin - (?=interface) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.interface.hx - patterns - - - include - #interface-name - - - include - #interface-name-post - - - include - #interface-block - - - - interface-name - - begin - \b(interface)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - interface-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #global - - - include - #modifiers-inheritance - - - include - #type - - - - interface-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #method - - - include - #variable - - - include - #block - - - include - #block-contents - - - - typedef - - begin - (?=typedef) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.typedef.hx - patterns - - - include - #typedef-name - - - include - #typedef-name-post - - - include - #typedef-block - - - - typedef-name - - begin - \b(typedef)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - typedef-name-post - - begin - (?<=\w) - end - (\{)|(?=;) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #global - - - include - #punctuation-brackets - - - include - #punctuation-separator - - - include - #operator-assignment - - - include - #type - - - - typedef-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - 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 - - - - typedef-extension - - begin - > - end - ,|$ - patterns - - - include - #type - - - - typedef-simple-field-type-hint - - begin - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\}|,|;) - patterns - - - include - #type - - - - regex - - begin - (~/) - beginCaptures - - 1 - - name - punctuation.definition.string.begin.hx - - - end - (/)([gimsu]*) - endCaptures - - 1 - - name - punctuation.definition.string.end.hx - - 2 - - name - keyword.other.hx - - - name - string.regexp.hx - patterns - - - include - #regexp - - - - regex-character-class - - patterns - - - match - \\[wWsSdDtrnvf]|\. - name - constant.other.character-class.regexp - - - match - \\([0-7]{3}|x\h\h|u\h\h\h\h) - name - constant.character.numeric.regexp - - - match - \\c[A-Z] - name - constant.character.control.regexp - - - match - \\. - name - constant.character.escape.backslash.regexp - - - - regexp - - patterns - - - match - \\[bB]|\^|\$ - name - keyword.control.anchor.regexp - - - match - \\[1-9]\d* - name - keyword.other.back-reference.regexp - - - match - [?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\?? - name - keyword.operator.quantifier.regexp - - - match - \| - name - keyword.operator.or.regexp - - - begin - (\()((\?=)|(\?!)) - 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 - - - end - (\)) - endCaptures - - 1 - - name - punctuation.definition.group.regexp - - - name - meta.group.assertion.regexp - patterns - - - include - #regexp - - - - - begin - \((\?:)? - beginCaptures - - 0 - - name - punctuation.definition.group.regexp - - 1 - - name - punctuation.definition.group.capture.regexp - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.group.regexp - - - name - meta.group.regexp - patterns - - - include - #regexp - - - - - begin - (\[)(\^)? - beginCaptures - - 1 - - name - punctuation.definition.character-class.regexp - - 2 - - name - keyword.operator.negation.regexp - - - end - (\]) - endCaptures - - 1 - - name - punctuation.definition.character-class.regexp - - - name - constant.other.character-class.set.regexp - patterns - - - match - (?:.|(\\(?:[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])|(\\.)) - 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 - - - name - constant.other.character-class.range.regexp - - - include - #regex-character-class - - - - - include - #regex-character-class - - - - array - - begin - \[ - beginCaptures - - 0 - - name - punctuation.definition.array.begin.hx - - - end - \] - endCaptures - - 0 - - name - punctuation.definition.array.end.hx - - - name - meta.array.literal.hx - patterns - - - include - #block - - - include - #block-contents - - - - constants - - patterns - - - match - \b(true|false|null)\b - name - constant.language.hx - - - 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) -(?<!\$)(?: - (?:\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 - (?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\b)| # .1E+3f64 - (?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b)| # 1E+3f64 - (?:\b[0-9][0-9_]*(\.)[0-9_]+([fiu][0-9][0-9_]*)?\b)| # 1.1f64 - (?:\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 -)(?!\$) - captures - - 0 - - name - constant.numeric.decimal.hx - - 1 - - name - meta.delimiter.decimal.period.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 - - 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 - - - - - - comments - - patterns - - - begin - /\*\*(?!/) - beginCaptures - - 0 - - name - punctuation.definition.comment.hx - - - end - \*/ - endCaptures - - 0 - - name - punctuation.definition.comment.hx - - - name - comment.block.documentation.hx - patterns - - - include - #javadoc-tags - - - - - begin - /\* - beginCaptures - - 0 - - name - punctuation.definition.comment.hx - - - end - \*/ - endCaptures - - 0 - - name - punctuation.definition.comment.hx - - - name - comment.block.hx - patterns - - - include - #javadoc-tags - - - - - match - (//).*$\n? - captures - - 1 - - name - punctuation.definition.comment.hx - - - name - comment.line.double-slash.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 - - - - - - strings - - patterns - - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.hx - - - end - " - endCaptures - - 0 - - name - punctuation.definition.string.end.hx - - - name - string.quoted.double.hx - patterns - - - include - #string-escape-sequences - - - - - begin - (') - beginCaptures - - 0 - - name - string.quoted.single.hx - - 1 - - name - punctuation.definition.string.begin.hx - - - end - (') - endCaptures - - 0 - - name - string.quoted.single.hx - - 1 - - name - punctuation.definition.string.end.hx - - - patterns - - - begin - \$(?=\$) - beginCaptures - - 0 - - name - constant.character.escape.hx - - - end - \$ - endCaptures - - 0 - - name - constant.character.escape.hx - - - name - string.quoted.single.hx - - - include - #string-escape-sequences - - - begin - (\${) - beginCaptures - - 0 - - name - punctuation.definition.block.begin.hx - - - end - (}) - endCaptures - - 0 - - name - punctuation.definition.block.end.hx - - - patterns - - - include - #block-contents - - - - - match - (\$)([_a-zA-Z]\w*) - captures - - 1 - - name - punctuation.definition.block.begin.hx - - 2 - - name - variable.other.hx - - - - - match - - name - constant.character.escape.hx - - - match - . - name - string.quoted.single.hx - - - - - - string-escape-sequences - - patterns - - - 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 - constant.character.escape.hx - - - match - \\. - name - invalid.escape.sequence.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*(\() - beginCaptures - - 1 - - name - punctuation.metadata.hx - - 2 - - name - storage.modifier.metadata.hx - - 3 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - - - 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*(\() - beginCaptures - - 1 - - name - punctuation.metadata.hx - - 2 - - name - variable.metadata.hx - - 3 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - - - 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 - - begin - (?=\bfunction\b) - end - (?<=[\};]) - name - meta.method.hx - patterns - - - include - #macro-reification - - - include - #method-name - - - include - #method-name-post - - - include - #method-block - - - - method-name - - begin - \b(function)\b\s*\b(?:(new)|([_A-Za-z]\w*))?\b - beginCaptures - - 1 - - name - storage.type.function.hx - - 2 - - name - storage.type.hx - - 3 - - name - entity.name.function.hx - - - end - (?=$|\() - patterns - - - include - #macro-reification - - - include - #type-parameters - - - - method-name-post - - begin - (?<=[\w\s>]) - end - (\{)|(;) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - 2 - - name - punctuation.terminator.hx - - - patterns - - - include - #parameters - - - include - #method-return-type-hint - - - include - #block - - - include - #block-contents - - - - method-block - - begin - (?<=\{) - beginCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.method.block.hx - patterns - - - include - #block - - - include - #block-contents - - - - parameters - - begin - \( - beginCaptures - - 0 - - name - punctuation.definition.parameters.begin.hx - - - end - \s*(\)(?!\s*->)) - endCaptures - - 1 - - name - punctuation.definition.parameters.end.hx - - - name - meta.parameters.hx - patterns - - - include - #parameter - - - include - #punctuation-comma - - - - parameter - - begin - (?<=\(|,) - end - (?=\)(?!\s*->)|,) - patterns - - - include - #parameter-name - - - include - #parameter-type-hint - - - include - #parameter-assign - - - include - #global - - - - 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 - - - - operator-rest - - match - \.\.\. - name - keyword.operator.rest.hx - - parameter-type-hint - - begin - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\)(?!\s*->)|,|=) - patterns - - - include - #type - - - - parameter-assign - - begin - = - beginCaptures - - 0 - - name - keyword.operator.assignment.hx - - - end - (?=\)|,) - patterns - - - include - #block - - - include - #block-contents - - - - arrow-function - - begin - (\()(?=[^(]*?\)\s*->) - beginCaptures - - 1 - - name - punctuation.definition.parameters.begin.hx - - - end - (\))\s*(->) - endCaptures - - 1 - - name - punctuation.definition.parameters.end.hx - - 2 - - name - storage.type.function.arrow.hx - - - name - meta.method.arrow.hx - patterns - - - include - #arrow-function-parameter - - - - arrow-function-parameter - - begin - (?<=\(|,) - 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 - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\)|,|=) - patterns - - - include - #type - - - - method-return-type-hint - - begin - (?<=\))\s*(:) - beginCaptures - - 1 - - name - keyword.operator.type.annotation.hx - - - end - (?=\{|;|[a-z0-9]) - patterns - - - include - #type - - - - operator-optional - - match - (\?)(?!\s) - name - keyword.operator.optional.hx - - variable - - begin - (?=\b(var|final)\b) - end - (?=$)|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #variable-name - - - include - #variable-name-next - - - include - #variable-assign - - - include - #variable-name-post - - - - variable-name - - begin - \b(var|final)\b - beginCaptures - - 1 - - name - storage.type.variable.hx - - - end - (?=$)|([_a-zA-Z]\w*) - endCaptures - - 1 - - name - variable.other.hx - - - patterns - - - include - #operator-optional - - - - variable-name-next - - begin - , - beginCaptures - - 0 - - name - punctuation.separator.comma.hx - - - end - ([_a-zA-Z]\w*) - endCaptures - - 1 - - name - variable.other.hx - - - patterns - - - include - #global - - - - variable-type-hint - - begin - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=$|;|,|=) - patterns - - - include - #type - - - - variable-assign - - begin - = - beginCaptures - - 0 - - name - keyword.operator.assignment.hx - - - end - (?=;|,) - patterns - - - include - #block - - - include - #block-contents - - - - variable-name-post - - begin - (?<=\w) - end - (?=;)|(?==) - patterns - - - include - #variable-accessors - - - include - #variable-type-hint - - - include - #block-contents - - - - variable-accessors - - begin - \( - beginCaptures - - 0 - - name - punctuation.definition.parameters.begin.hx - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.parameters.end.hx - - - name - meta.parameters.hx - patterns - - - include - #global - - - include - #keywords-accessor - - - include - #accessor-method - - - include - #punctuation-comma - - - - keywords-accessor - - match - \b(private|default|get|set|dynamic|never|null)\b - name - storage.type.property.hx - - accessor-method - - patterns - - - match - \b(get|set)_[_A-Za-z]\w*\b - name - entity.name.function.hx - - - - modifiers - - patterns - - - match - \b(enum)\b - name - storage.type.class - - - 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)) - name - storage.modifier.hx - - - - new-expr - - name - new.expr.hx - begin - (?<!\.)\b(new)\b - beginCaptures - - 1 - - name - keyword.operator.new.hx - - - end - (?=$|\() - patterns - - - include - #type - - - - for-loop - - begin - \b(for)\b\s*(\() - beginCaptures - - 1 - - name - keyword.control.flow-control.hx - - 2 - - name - meta.brace.round.hx - - - end - (\)) - endCaptures - - 1 - - name - meta.brace.round.hx - - - patterns - - - match - \b(in)\b - name - keyword.other.in.hx - - - include - #block - - - include - #block-contents - - - - keywords - - patterns - - - begin - (?<=trace|$type|if|while|for|super)\s*(\() - beginCaptures - - 1 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - - - begin - (?<=catch)\s*(\() - beginCaptures - - 1 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - include - #type-check - - - - - begin - (?<=cast)\s*(\() - beginCaptures - - 1 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - begin - (?=,) - end - (?=\)) - patterns - - - include - #type - - - - - include - #block-contents - - - - - match - \b(try|catch|throw)\b - name - keyword.control.catch-exception.hx - - - begin - \b(case|default)\b - beginCaptures - - 1 - - name - keyword.control.flow-control.hx - - - 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 - - - match - \( - name - meta.brace.round.hx - - - match - \) - name - meta.brace.round.hx - - - include - #macro-reification - - - match - => - name - keyword.operator.extractor.hx - - - include - #operator-assignment - - - include - #punctuation-comma - - - include - #keywords - - - include - #method-call - - - include - #identifiers - - - - - match - \b(if|else|return|do|while|for|break|continue|switch|case|default)\b - name - keyword.control.flow-control.hx - - - match - \b(cast|untyped)\b - name - keyword.other.untyped.hx - - - match - \btrace\b - name - keyword.other.trace.hx - - - match - \$type\b - name - keyword.other.type.hx - - - match - \__(global|this)__\b - name - keyword.other.untyped-property.hx - - - match - \b(this|super)\b - name - variable.language.hx - - - match - \bnew\b - name - keyword.operator.new.hx - - - match - \b(abstract|class|enum|interface|typedef)\b - name - storage.type.hx - - - match - -> - name - storage.type.function.arrow.hx - - - include - #modifiers - - - include - #modifiers-inheritance - - - - punctuation-braces - - begin - \( - beginCaptures - - 0 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #keywords - - - include - #block - - - include - #block-contents - - - include - #type-check - - - - type-check - - begin - (?<!macro)(?=:) - end - (?=\)) - patterns - - - include - #operator-type-hint - - - include - #type - - - - modifiers-inheritance - - match - \b(implements|extends)\b - name - storage.modifier.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*(\() - beginCaptures - - 1 - - name - keyword.other.untyped-function.hx - - 2 - - name - entity.name.function.hx - - 3 - - name - meta.brace.round.hx - - - end - (\)) - endCaptures - - 1 - - name - meta.brace.round.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - enum-constructor-call - - begin - \b(?<!\.)((_*[a-z]\w*\.)*)(_*[A-Z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\s*(\() - 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 - - - end - (\)) - endCaptures - - 1 - - name - meta.brace.round.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - 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 - - - - - - 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 - - - - - begin - ((#(if|elseif))[\s!]*)(?=\() - beginCaptures - - 0 - - name - punctuation.definition.tag - - - end - (?<=\)|\n) - endCaptures - - 0 - - name - punctuation.definition.tag - - - name - punctuation.definition.tag - patterns - - - include - #conditional-compilation-parens - - - - - match - (#(end|else|error|line)) - name - punctuation.definition.tag - - - match - (#([a-zA-Z0-9_]*))\s - name - punctuation.definition.tag - - - - conditional-compilation-parens - - begin - \( - end - \) - patterns - - - include - #conditional-compilation-parens - - - - operator-assignment - - match - (=) - name - keyword.operator.assignment.hx - - operator-type-hint - - match - (:) - name - keyword.operator.type.annotation.hx - - operators - - patterns - - - match - (&&|\|\|) - name - keyword.operator.logical.hx - - - match - (~|&|\||\^|>>>|<<|>>) - name - keyword.operator.bitwise.hx - - - match - (==|!=|<=|>=|<|>) - name - keyword.operator.comparison.hx - - - match - (!) - 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 - \?\? - name - keyword.operator.nullcoalescing.hx - - - match - \?\. - name - keyword.operator.safenavigation.hx - - - match - \bis\b(?!\() - name - keyword.other.hx - - - begin - \? - beginCaptures - - 0 - - name - keyword.operator.ternary.hx - - - end - : - endCaptures - - 0 - - name - keyword.operator.ternary.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - - - punctuation-comma - - match - , - name - punctuation.separator.comma.hx - - punctuation-accessor - - match - \. - name - punctuation.accessor.hx - - punctuation-terminator - - match - ; - name - punctuation.terminator.hx - - constant-name - - match - \b([_A-Z][_A-Z0-9]*)\b - name - variable.other.hx - - type - - patterns - - - include - #global - - - include - #macro-reification - - - include - #type-name - - - include - #type-parameters - - - match - -> - name - keyword.operator.type.function.hx - - - match - & - name - keyword.operator.type.intersection.hx - - - match - \?(?=\s*[_A-Z]) - name - keyword.operator.optional - - - match - \?(?!\s*[_A-Z]) - name - punctuation.definition.tag - - - begin - (\{) - beginCaptures - - 0 - - name - punctuation.definition.block.begin.hx - - - end - (?<=\}) - patterns - - - include - #typedef-block - - - - - include - #function-type - - - - function-type - - begin - \( - beginCaptures - - 0 - - name - punctuation.definition.parameters.begin.hx - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.parameters.end.hx - - - patterns - - - include - #function-type-parameter - - - - function-type-parameter - - begin - (?<=\(|,) - 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 - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\)|,|=) - patterns - - - 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(?<![^.]\.)((_*[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-parameters - - begin - (<) - beginCaptures - - 1 - - name - punctuation.definition.typeparameters.begin.hx - - - end - (?=$)|(>) - endCaptures - - 1 - - name - punctuation.definition.typeparameters.end.hx - - - name - meta.type-parameters.hx - 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 - - - - type-parameter-constraint-old - - begin - (:)\s*(\() - beginCaptures - - 1 - - name - keyword.operator.type.annotation.hx - - 2 - - name - punctuation.definition.constraint.begin.hx - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.constraint.end.hx - - - patterns - - - include - #type - - - include - #punctuation-comma - - - - type-parameter-constraint-new - - match - : - name - keyword.operator.type.annotation.hxt - - identifier-name - - match - \b([_A-Za-z]\w*)\b - name - variable.other.hx - - - - diff --git a/haxe.tmLanguage b/haxe.tmLanguage.bak similarity index 100% rename from haxe.tmLanguage rename to haxe.tmLanguage.bak diff --git a/ahaxe_libraries/hxnodejs.hxml b/haxe_libraries/hxnodejs.hxml similarity index 100% rename from ahaxe_libraries/hxnodejs.hxml rename to haxe_libraries/hxnodejs.hxml diff --git a/ahaxe_libraries/plist.hxml b/haxe_libraries/plist.hxml similarity index 100% rename from ahaxe_libraries/plist.hxml rename to haxe_libraries/plist.hxml diff --git a/ahaxe_libraries/tink_core.hxml b/haxe_libraries/tink_core.hxml similarity index 100% rename from ahaxe_libraries/tink_core.hxml rename to haxe_libraries/tink_core.hxml diff --git a/ahaxe_libraries/vshaxe-build.hxml b/haxe_libraries/vshaxe-build.hxml similarity index 100% rename from ahaxe_libraries/vshaxe-build.hxml rename to haxe_libraries/vshaxe-build.hxml diff --git a/ahaxe_libraries/yaml.hxml b/haxe_libraries/yaml.hxml similarity index 100% rename from ahaxe_libraries/yaml.hxml rename to haxe_libraries/yaml.hxml diff --git a/package-lock.json b/package-lock.json index 52911e6..8f2e0da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,54 +1,61 @@ { - "name": "haxe-tm-language", - "version": "0.0.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "haxe-tm-language", - "version": "0.0.1", - "devDependencies": { - "@types/vscode": "^1.76.0", - "typescript": "^4.9.5" - }, - "engines": { - "vscode": "^1.50.0" - } - }, - "node_modules/@types/vscode": { - "version": "1.109.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.109.0.tgz", - "integrity": "sha512-0Pf95rnwEIwDbmXGC08r0B4TQhAbsHQ5UyTIgVgoieDe4cOnf92usuR5dEczb6bTKEp7ziZH4TV1TRGPPCExtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - } - }, - "dependencies": { - "@types/vscode": { - "version": "1.109.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.109.0.tgz", - "integrity": "sha512-0Pf95rnwEIwDbmXGC08r0B4TQhAbsHQ5UyTIgVgoieDe4cOnf92usuR5dEczb6bTKEp7ziZH4TV1TRGPPCExtw==", - "dev": true - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - } - } + "name": "haxe-tm-language", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "haxe-tm-language", + "hasInstallScript": true, + "devDependencies": { + "lix": "^15.10.1", + "vscode-oniguruma": "^1.6.2", + "vscode-textmate": "^7.0.1" + } + }, + "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==", + "dev": true, + "hasInstallScript": true, + "bin": { + "haxe": "bin/haxeshim.js", + "haxelib": "bin/haxelibshim.js", + "lix": "bin/lix.js", + "neko": "bin/nekoshim.js" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", + "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "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 + } + }, + "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==", + "dev": true + }, + "vscode-oniguruma": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", + "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "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==", + "dev": true + } + } } diff --git a/package.json b/package.json index c9649ad..c1bcc2b 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,11 @@ { - "name": "haxe-tm-language", - "displayName": "Haxe", - "publisher": "publisher-name", - "version": "0.0.1", - "engines": { - "vscode": "^1.50.0" - }, - "main": "./out/extension.js", - "activationEvents": [ - "onLanguage:haxe" - ], - "scripts": { - "vscode:prepublish": "npm run build", - "build": "tsc -p .", - "watch": "tsc -watch -p ." - }, - "devDependencies": { - "typescript": "^4.9.5", - "@types/vscode": "^1.76.0" - }, - "dependencies": {} + "name": "haxe-tm-language", + "devDependencies": { + "lix": "^15.10.1", + "vscode-oniguruma": "^1.6.2", + "vscode-textmate": "^7.0.1" + }, + "scripts": { + "postinstall": "npx lix download" + } } From 156e2781450a2545adaac59f7254d148c7b41899 Mon Sep 17 00:00:00 2001 From: mtunixic Date: Sun, 29 Mar 2026 19:10:38 +0100 Subject: [PATCH 10/10] fix haxe syntax highlighting cases --- haxe.YAML-tmLanguage | 31 +- haxe.tmLanguage | 11 + haxe.tmLanguage.bak | 3929 ------------------------------------------ package-lock.json | 30 +- package.json | 2 +- 5 files changed, 41 insertions(+), 3962 deletions(-) create mode 100644 haxe.tmLanguage delete mode 100644 haxe.tmLanguage.bak diff --git a/haxe.YAML-tmLanguage b/haxe.YAML-tmLanguage index 57ea775..bad2f59 100644 --- a/haxe.YAML-tmLanguage +++ b/haxe.YAML-tmLanguage @@ -51,6 +51,7 @@ repository: - include: '#arrow-function' - include: '#method-call-dotted' + - include: '#constructor-call' - include: '#method-call-simple' - include: '#enum-constructor-call' - include: '#punctuation-braces' @@ -67,10 +68,6 @@ repository: - match: (?m)^\s*([_A-Z]\w*)(?=\s*(?:;|,|\n)) captures: '1': { name: variable.other.hx } - # color blue if it ends with ( - - match: \b([_A-Za-z]\w*)(?=\s*\() - captures: - '1': { name: entity.name.function.hx } identifiers: patterns: - include: '#constant-name' @@ -121,8 +118,13 @@ repository: '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: \b([_A-Za-z]\w*)(?=\s*\() + 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-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 + (?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\b)| # .1E+3f64 + (?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b)| # 1E+3f64 + (?:\b[0-9][0-9_]*(\.)[0-9_]+([fiu][0-9][0-9_]*)?\b)| # 1.1f64 + (?:\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-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/haxe.tmLanguage.bak b/haxe.tmLanguage.bak deleted file mode 100644 index b339e8f..0000000 --- a/haxe.tmLanguage.bak +++ /dev/null @@ -1,3929 +0,0 @@ - - - - - fileTypes - - hx - dump - - name - Haxe - scopeName - source.hx - uuid - 67c72f9f-862c-4e48-8951-dcc22c0bb4ea - patterns - - - include - #all - - - repository - - all - - patterns - - - include - #global - - - include - #package - - - include - #import - - - include - #using - - - match - \b(final)\b(?=\s+(class|interface|extern|private)\b) - name - storage.modifier.hx - - - include - #abstract - - - include - #class - - - include - #enum - - - include - #interface - - - include - #typedef - - - include - #block - - - include - #block-contents - - - - global - - patterns - - - include - #comments - - - include - #conditional-compilation - - - - block - - begin - \{ - beginCaptures - - 0 - - name - punctuation.definition.block.begin.hx - - - end - \} - endCaptures - - 0 - - name - punctuation.definition.block.end.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - 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-dotted - - - include - #method-call-simple - - - 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 - #type-member-access - - - include - #identifiers - - - - enum-member - - match - \b([_A-Za-z]\w*)(?=\s*\() - captures - - 1 - - name - entity.name.function.hx - - - - identifiers - - patterns - - - include - #constant-name - - - include - #identifier-name - - - include - #type-name - - - - package - - begin - package\b - beginCaptures - - 0 - - name - keyword.other.package.hx - - - end - $|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #type-path - - - include - #type-path-package-name - - - - using - - begin - using\b - beginCaptures - - 0 - - name - keyword.other.using.hx - - - end - $|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #type-path - - - include - #type-path-package-name - - - - import - - begin - import\b - beginCaptures - - 0 - - name - keyword.control.import.hx - - - end - $|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #type-path - - - match - \b(as)\b - name - keyword.control.as.hx - - - match - \b(in)\b - name - keyword.control.in.hx - - - match - \* - name - constant.language.import-all.hx - - - 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 - - 2 - - name - entity.name.type.hx - - 3 - - name - punctuation.accessor.hx - - 4 - - name - entity.name.function.hx - - - - method-call-simple - - match - \b([_A-Za-z]\w*)(?=\s*\() - captures - - 1 - - name - entity.name.function.hx - - - - type-path - - patterns - - - include - #global - - - include - #punctuation-accessor - - - include - #type-path-type-name - - - - type-path-type-name - - match - (?<!\bfunction\s)(?<!\bvar\s)(?<!\bfinal\s)\b(_*[A-Z][a-z]\w*)\b(?!\s*\() - name - entity.name.type.hx - - type-path-package-name - - match - \b([_A-Za-z]\w*)\b - name - support.package.hx - - abstract - - begin - (?=abstract\s+[A-Z]) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.abstract.hx - patterns - - - include - #abstract-name - - - include - #abstract-name-post - - - include - #abstract-block - - - - abstract-name - - begin - \b(abstract)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - abstract-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #global - - - match - \b(from|to)\b - name - keyword.other.hx - - - include - #type - - - match - [\(\)] - name - punctuation.definition.other.hx - - - - abstract-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #method - - - include - #modifiers - - - include - #variable - - - include - #block - - - include - #block-contents - - - - class - - begin - (?=class) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.class.hx - patterns - - - include - #class-name - - - include - #class-name-post - - - include - #class-block - - - - class-name - - begin - \b(class)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - name - meta.class.identifier.hx - patterns - - - include - #global - - - - class-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #modifiers-inheritance - - - include - #type - - - - class-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #method - - - include - #modifiers - - - include - #variable - - - include - #block - - - include - #block-contents - - - - enum - - begin - (?=enum\s+[A-Z]) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.enum.hx - patterns - - - include - #enum-name - - - include - #enum-name-post - - - include - #enum-block - - - - enum-name - - begin - \b(enum)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - enum-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #type - - - - enum-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #global - - - include - #metadata - - - include - #parameters - - - include - #enum-member - - - include - #identifiers - - - - interface - - begin - (?=interface) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.interface.hx - patterns - - - include - #interface-name - - - include - #interface-name-post - - - include - #interface-block - - - - interface-name - - begin - \b(interface)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - interface-name-post - - begin - (?<=\w) - end - ([\{;]) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #global - - - include - #modifiers-inheritance - - - include - #type - - - - interface-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - patterns - - - include - #method - - - include - #variable - - - include - #block - - - include - #block-contents - - - - typedef - - begin - (?=typedef) - end - (?<=\})|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - name - meta.typedef.hx - patterns - - - include - #typedef-name - - - include - #typedef-name-post - - - include - #typedef-block - - - - typedef-name - - begin - \b(typedef)\b - beginCaptures - - 1 - - name - storage.type.class.hx - - - end - ([_A-Za-z]\w*) - endCaptures - - 1 - - name - entity.name.type.class.hx - - - patterns - - - include - #global - - - - typedef-name-post - - begin - (?<=\w) - end - (\{)|(?=;) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - patterns - - - include - #global - - - include - #punctuation-brackets - - - include - #punctuation-separator - - - include - #operator-assignment - - - include - #type - - - - typedef-block - - begin - (?<=\{) - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.block.hx - 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 - - - - typedef-extension - - begin - > - end - ,|$ - patterns - - - include - #type - - - - typedef-simple-field-type-hint - - begin - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\}|,|;) - patterns - - - include - #type - - - - regex - - begin - (~/) - beginCaptures - - 1 - - name - punctuation.definition.string.begin.hx - - - end - (/)([gimsu]*) - endCaptures - - 1 - - name - punctuation.definition.string.end.hx - - 2 - - name - keyword.other.hx - - - name - string.regexp.hx - patterns - - - include - #regexp - - - - regex-character-class - - patterns - - - match - \\[wWsSdDtrnvf]|\. - name - constant.other.character-class.regexp - - - match - \\([0-7]{3}|x\h\h|u\h\h\h\h) - name - constant.character.numeric.regexp - - - match - \\c[A-Z] - name - constant.character.control.regexp - - - match - \\. - name - constant.character.escape.backslash.regexp - - - - regexp - - patterns - - - match - \\[bB]|\^|\$ - name - keyword.control.anchor.regexp - - - match - \\[1-9]\d* - name - keyword.other.back-reference.regexp - - - match - [?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\?? - name - keyword.operator.quantifier.regexp - - - match - \| - name - keyword.operator.or.regexp - - - begin - (\()((\?=)|(\?!)) - 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 - - - end - (\)) - endCaptures - - 1 - - name - punctuation.definition.group.regexp - - - name - meta.group.assertion.regexp - patterns - - - include - #regexp - - - - - begin - \((\?:)? - beginCaptures - - 0 - - name - punctuation.definition.group.regexp - - 1 - - name - punctuation.definition.group.capture.regexp - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.group.regexp - - - name - meta.group.regexp - patterns - - - include - #regexp - - - - - begin - (\[)(\^)? - beginCaptures - - 1 - - name - punctuation.definition.character-class.regexp - - 2 - - name - keyword.operator.negation.regexp - - - end - (\]) - endCaptures - - 1 - - name - punctuation.definition.character-class.regexp - - - name - constant.other.character-class.set.regexp - patterns - - - match - (?:.|(\\(?:[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])|(\\.)) - 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 - - - name - constant.other.character-class.range.regexp - - - include - #regex-character-class - - - - - include - #regex-character-class - - - - array - - begin - \[ - beginCaptures - - 0 - - name - punctuation.definition.array.begin.hx - - - end - \] - endCaptures - - 0 - - name - punctuation.definition.array.end.hx - - - name - meta.array.literal.hx - patterns - - - include - #block - - - include - #block-contents - - - - constants - - patterns - - - match - \b(true|false|null)\b - name - constant.language.hx - - - 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) -(?<!\$)(?: - (?:\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 - (?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\b)| # .1E+3f64 - (?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\b)| # 1E+3f64 - (?:\b[0-9][0-9_]*(\.)[0-9_]+([fiu][0-9][0-9_]*)?\b)| # 1.1f64 - (?:\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 -)(?!\$) - captures - - 0 - - name - constant.numeric.decimal.hx - - 1 - - name - meta.delimiter.decimal.period.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 - - 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 - - - - - - comments - - patterns - - - begin - /\*\*(?!/) - beginCaptures - - 0 - - name - punctuation.definition.comment.hx - - - end - \*/ - endCaptures - - 0 - - name - punctuation.definition.comment.hx - - - name - comment.block.documentation.hx - patterns - - - include - #javadoc-tags - - - - - begin - /\* - beginCaptures - - 0 - - name - punctuation.definition.comment.hx - - - end - \*/ - endCaptures - - 0 - - name - punctuation.definition.comment.hx - - - name - comment.block.hx - patterns - - - include - #javadoc-tags - - - - - match - (//).*$\n? - captures - - 1 - - name - punctuation.definition.comment.hx - - - name - comment.line.double-slash.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 - - - - - - strings - - patterns - - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.hx - - - end - " - endCaptures - - 0 - - name - punctuation.definition.string.end.hx - - - name - string.quoted.double.hx - patterns - - - include - #string-escape-sequences - - - - - begin - (') - beginCaptures - - 0 - - name - string.quoted.single.hx - - 1 - - name - punctuation.definition.string.begin.hx - - - end - (') - endCaptures - - 0 - - name - string.quoted.single.hx - - 1 - - name - punctuation.definition.string.end.hx - - - patterns - - - begin - \$(?=\$) - beginCaptures - - 0 - - name - constant.character.escape.hx - - - end - \$ - endCaptures - - 0 - - name - constant.character.escape.hx - - - name - string.quoted.single.hx - - - include - #string-escape-sequences - - - begin - (\${) - beginCaptures - - 0 - - name - punctuation.definition.block.begin.hx - - - end - (}) - endCaptures - - 0 - - name - punctuation.definition.block.end.hx - - - patterns - - - include - #block-contents - - - - - match - (\$)([_a-zA-Z]\w*) - captures - - 1 - - name - punctuation.definition.block.begin.hx - - 2 - - name - variable.other.hx - - - - - match - - name - constant.character.escape.hx - - - match - . - name - string.quoted.single.hx - - - - - - string-escape-sequences - - patterns - - - 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 - constant.character.escape.hx - - - match - \\. - name - invalid.escape.sequence.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*(\() - beginCaptures - - 1 - - name - punctuation.metadata.hx - - 2 - - name - storage.modifier.metadata.hx - - 3 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - - - 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*(\() - beginCaptures - - 1 - - name - punctuation.metadata.hx - - 2 - - name - variable.metadata.hx - - 3 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - - - 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 - - begin - (?=\bfunction\b) - end - (?<=[\};]) - name - meta.method.hx - patterns - - - include - #macro-reification - - - include - #method-name - - - include - #method-name-post - - - include - #method-block - - - - method-name - - begin - \b(function)\b\s*\b(?:(new)|([_A-Za-z]\w*))?\b - beginCaptures - - 1 - - name - storage.type.function.hx - - 2 - - name - storage.type.hx - - 3 - - name - entity.name.function.hx - - - end - (?=$|\() - patterns - - - include - #macro-reification - - - include - #type-parameters - - - - method-name-post - - begin - (?<=[\w\s>]) - end - (\{)|(;) - endCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - 2 - - name - punctuation.terminator.hx - - - patterns - - - include - #parameters - - - include - #method-return-type-hint - - - include - #block - - - include - #block-contents - - - - method-block - - begin - (?<=\{) - beginCaptures - - 1 - - name - punctuation.definition.block.begin.hx - - - end - (\}) - endCaptures - - 1 - - name - punctuation.definition.block.end.hx - - - name - meta.method.block.hx - patterns - - - include - #block - - - include - #block-contents - - - - parameters - - begin - \( - beginCaptures - - 0 - - name - punctuation.definition.parameters.begin.hx - - - end - \s*(\)(?!\s*->)) - endCaptures - - 1 - - name - punctuation.definition.parameters.end.hx - - - name - meta.parameters.hx - patterns - - - include - #parameter - - - include - #punctuation-comma - - - - parameter - - begin - (?<=\(|,) - end - (?=\)(?!\s*->)|,) - patterns - - - include - #parameter-name - - - include - #parameter-type-hint - - - include - #parameter-assign - - - include - #global - - - - 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 - - - - operator-rest - - match - \.\.\. - name - keyword.operator.rest.hx - - parameter-type-hint - - begin - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\)(?!\s*->)|,|=) - patterns - - - include - #type - - - - parameter-assign - - begin - = - beginCaptures - - 0 - - name - keyword.operator.assignment.hx - - - end - (?=\)|,) - patterns - - - include - #block - - - include - #block-contents - - - - arrow-function - - begin - (\()(?=[^(]*?\)\s*->) - beginCaptures - - 1 - - name - punctuation.definition.parameters.begin.hx - - - end - (\))\s*(->) - endCaptures - - 1 - - name - punctuation.definition.parameters.end.hx - - 2 - - name - storage.type.function.arrow.hx - - - name - meta.method.arrow.hx - patterns - - - include - #arrow-function-parameter - - - - arrow-function-parameter - - begin - (?<=\(|,) - 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 - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\)|,|=) - patterns - - - include - #type - - - - method-return-type-hint - - begin - (?<=\))\s*(:) - beginCaptures - - 1 - - name - keyword.operator.type.annotation.hx - - - end - (?=\{|;|[a-z0-9]) - patterns - - - include - #type - - - - operator-optional - - match - (\?)(?!\s) - name - keyword.operator.optional.hx - - variable - - begin - (?=\b(var|final)\b) - end - (?=$)|(;) - endCaptures - - 1 - - name - punctuation.terminator.hx - - - patterns - - - include - #variable-name - - - include - #variable-name-next - - - include - #variable-assign - - - include - #variable-name-post - - - - variable-name - - begin - \b(var|final)\b - beginCaptures - - 1 - - name - storage.type.variable.hx - - - end - (?=$)|([_a-zA-Z]\w*) - endCaptures - - 1 - - name - variable.other.hx - - - patterns - - - include - #operator-optional - - - - variable-name-next - - begin - , - beginCaptures - - 0 - - name - punctuation.separator.comma.hx - - - end - ([_a-zA-Z]\w*) - endCaptures - - 1 - - name - variable.other.hx - - - patterns - - - include - #global - - - - variable-type-hint - - begin - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=$|;|,|=) - patterns - - - include - #type - - - - variable-assign - - begin - = - beginCaptures - - 0 - - name - keyword.operator.assignment.hx - - - end - (?=;|,) - patterns - - - include - #block - - - include - #block-contents - - - - variable-name-post - - begin - (?<=\w) - end - (?=;)|(?==) - patterns - - - include - #variable-accessors - - - include - #variable-type-hint - - - include - #block-contents - - - - variable-accessors - - begin - \( - beginCaptures - - 0 - - name - punctuation.definition.parameters.begin.hx - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.parameters.end.hx - - - name - meta.parameters.hx - patterns - - - include - #global - - - include - #keywords-accessor - - - include - #accessor-method - - - include - #punctuation-comma - - - - keywords-accessor - - match - \b(private|default|get|set|dynamic|never|null)\b - name - storage.type.property.hx - - accessor-method - - patterns - - - match - \b(get|set)_[_A-Za-z]\w*\b - name - entity.name.function.hx - - - - modifiers - - patterns - - - match - \b(enum)\b - name - storage.type.class - - - 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)) - name - storage.modifier.hx - - - - new-expr - - patterns - - - begin - (?<!\.)\b(new)\b\s*((?:_*[a-z]\w*\.)*(?:_*[A-Z]\w*))(?:\s*)(<) - beginCaptures - - 1 - - name - keyword.operator.new.hx - - 2 - - name - entity.name.type.hx - - 3 - - name - punctuation.definition.typeparameters.begin.hx - - - end - (>) - endCaptures - - 1 - - name - punctuation.definition.typeparameters.end.hx - - - patterns - - - include - #type - - - - - match - (?<!\.)\b(new)\b\s*((?:_*[a-z]\w*\.)*(?:_*[A-Z]\w*)) - captures - - 1 - - name - keyword.operator.new.hx - - 2 - - name - entity.name.type.hx - - - - - - for-loop - - begin - \b(for)\b\s*(\() - beginCaptures - - 1 - - name - keyword.control.flow-control.hx - - 2 - - name - meta.brace.round.hx - - - end - (\)) - endCaptures - - 1 - - name - meta.brace.round.hx - - - patterns - - - match - \b(in)\b - name - keyword.other.in.hx - - - include - #block - - - include - #block-contents - - - - keywords - - patterns - - - begin - (?<=trace|$type|if|while|for|super)\s*(\() - beginCaptures - - 1 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - - - begin - (?<=catch)\s*(\() - beginCaptures - - 1 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #block-contents - - - include - #type-check - - - - - begin - (?<=cast)\s*(\() - beginCaptures - - 1 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - begin - (?=,) - end - (?=\)) - patterns - - - include - #type - - - - - include - #block-contents - - - - - match - \b(try|catch|throw)\b - name - keyword.control.catch-exception.hx - - - begin - \b(case|default)\b - beginCaptures - - 1 - - name - keyword.control.flow-control.hx - - - 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 - - - match - \( - name - meta.brace.round.hx - - - match - \) - name - meta.brace.round.hx - - - include - #macro-reification - - - match - => - name - keyword.operator.extractor.hx - - - include - #operator-assignment - - - include - #punctuation-comma - - - include - #keywords - - - include - #method-call-dotted - - - include - #method-call-simple - - - include - #identifiers - - - - - match - \b(if|else|return|do|while|for|break|continue|switch|case|default)\b - name - keyword.control.flow-control.hx - - - match - \b(cast|untyped)\b - name - keyword.other.untyped.hx - - - match - \btrace\b - name - keyword.other.trace.hx - - - match - \$type\b - name - keyword.other.type.hx - - - match - \__(global|this)__\b - name - keyword.other.untyped-property.hx - - - match - \b(this)\b - name - variable.language.this.hx - - - match - \b(super)\b - name - variable.language.super.hx - - - match - \bnew\b - name - keyword.operator.new.hx - - - match - \b(abstract|class|enum|interface|typedef)\b - name - storage.type.hx - - - match - -> - name - storage.type.function.arrow.hx - - - include - #modifiers - - - include - #modifiers-inheritance - - - - punctuation-braces - - begin - \( - beginCaptures - - 0 - - name - meta.brace.round.hx - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.hx - - - patterns - - - include - #keywords - - - include - #block - - - include - #block-contents - - - include - #type-check - - - - type-check - - begin - (?<!macro)(?=:) - end - (?=\)) - patterns - - - include - #operator-type-hint - - - include - #type - - - - modifiers-inheritance - - match - \b(implements|extends)\b - name - storage.modifier.hx - - enum-constructor-call - - begin - \b(?<!\.)((_*[a-z]\w*\.)*)(_*[A-Z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\s*(\() - beginCaptures - - 1 - - name - support.package.hx - - 3 - - name - entity.name.function.hx - - 4 - - name - support.package.hx - - 5 - - name - variable.other.hx - - 6 - - name - meta.brace.round.hx - - - end - (\)) - endCaptures - - 1 - - name - meta.brace.round.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - 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 - - - - - - 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 - - - - - begin - ((#(if|elseif))[\s!]*)(?=\() - beginCaptures - - 0 - - name - punctuation.definition.tag - - - end - (?<=\)|\n) - endCaptures - - 0 - - name - punctuation.definition.tag - - - name - punctuation.definition.tag - patterns - - - include - #conditional-compilation-parens - - - - - match - (#(end|else|error|line)) - name - punctuation.definition.tag - - - match - (#([a-zA-Z0-9_]*))\s - name - punctuation.definition.tag - - - - conditional-compilation-parens - - begin - \( - end - \) - patterns - - - include - #conditional-compilation-parens - - - - operator-assignment - - match - (=) - name - keyword.operator.assignment.hx - - operator-type-hint - - match - (:) - name - keyword.operator.type.annotation.hx - - operators - - patterns - - - match - (&&|\|\|) - name - keyword.operator.logical.hx - - - match - (~|&|\||\^|>>>|<<|>>) - name - keyword.operator.bitwise.hx - - - match - (==|!=|<=|>=|<|>) - name - keyword.operator.comparison.hx - - - match - (!) - 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 - \?\? - name - keyword.operator.nullcoalescing.hx - - - match - \?\. - name - keyword.operator.safenavigation.hx - - - match - \bis\b(?!\() - name - keyword.other.hx - - - begin - \? - beginCaptures - - 0 - - name - keyword.operator.ternary.hx - - - end - : - endCaptures - - 0 - - name - keyword.operator.ternary.hx - - - patterns - - - include - #block - - - include - #block-contents - - - - - - punctuation-comma - - match - , - name - punctuation.separator.comma.hx - - punctuation-accessor - - match - \. - name - punctuation.accessor.hx - - punctuation-terminator - - match - ; - name - punctuation.terminator.hx - - constant-name - - match - \b([_A-Z][_A-Z0-9]*)\b - name - variable.other.hx - - type - - patterns - - - include - #global - - - include - #macro-reification - - - include - #type-name - - - include - #type-parameters - - - match - -> - name - keyword.operator.type.function.hx - - - match - & - name - keyword.operator.type.intersection.hx - - - match - \?(?=\s*[_A-Z]) - name - keyword.operator.optional - - - match - \?(?!\s*[_A-Z]) - name - punctuation.definition.tag - - - begin - (\{) - beginCaptures - - 0 - - name - punctuation.definition.block.begin.hx - - - end - (?<=\}) - patterns - - - include - #typedef-block - - - - - include - #function-type - - - - function-type - - begin - \( - beginCaptures - - 0 - - name - punctuation.definition.parameters.begin.hx - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.parameters.end.hx - - - patterns - - - include - #function-type-parameter - - - - function-type-parameter - - begin - (?<=\(|,) - 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 - : - beginCaptures - - 0 - - name - keyword.operator.type.annotation.hx - - - end - (?=\)|,|=) - patterns - - - include - #type - - - - type-member-access - - patterns - - - match - \b(_*[A-Z][a-z]+[A-Za-z0-9]*)(\.)([_A-Za-z]\w*)(?=\() - captures - - 1 - - name - entity.name.type.hx - - 2 - - name - punctuation.accessor.hx - - 3 - - name - entity.name.function.hx - - - - - match - \b(_*[A-Z][a-z]+[A-Za-z0-9]*)(\.)([_A-Za-z]\w*) - captures - - 1 - - name - entity.name.type.hx - - 2 - - name - punctuation.accessor.hx - - 3 - - name - variable.other.hx - - - - - - 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(?<![^.]\.)((_*[a-z]\w*\.)*)(_*[A-Z][a-z]\w*)(?:(\.)(_*[A-Z]\w*[a-z]\w*))*\b(?!\s*\() - captures - - 1 - - name - support.package.hx - - 3 - - name - entity.name.type.hx - - 4 - - name - punctuation.accessor.hx - - 5 - - name - entity.name.type.hx - - - - - - type-parameters - - begin - (<) - beginCaptures - - 1 - - name - punctuation.definition.typeparameters.begin.hx - - - end - (?=$)|(>) - endCaptures - - 1 - - name - punctuation.definition.typeparameters.end.hx - - - name - meta.type-parameters.hx - 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 - - - - type-parameter-constraint-old - - begin - (:)\s*(\() - beginCaptures - - 1 - - name - keyword.operator.type.annotation.hx - - 2 - - name - punctuation.definition.constraint.begin.hx - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.constraint.end.hx - - - patterns - - - include - #type - - - include - #punctuation-comma - - - - type-parameter-constraint-new - - match - : - name - keyword.operator.type.annotation.hxt - - identifier-name - - match - \b([_A-Za-z]\w*)\b - name - variable.other.hx - - - - 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"