<language name="Jinja/TypeScript" alternativeNames="Jinja/TS" version="1771861648" kateversion="5.62" section="Other" extensions="*.ts.jinja;*.ts.jinja2;*.ts.j2;*.mts.jinja;*.mts.jinja2;*.mts.j2;*.cts.jinja;*.cts.jinja2;*.cts.j2" priority="9" mimetype="text/typescript.jinja;application/typescript.jinja;text/x-typescript.jinja;application/x-typescript.jinja" indenter="cstyle" author="Nibaldo González (nibgonz@gmail.com)" license="MIT" generated="true">

<!--Generated by generate_jinja.py, the Jinja infusion script for KDE Syntax Highlighting-->

<highlighting>

	
	<list name="controlflow">
		<include>controlflow##Jinja/JavaScript</include>
		<item>goto</item>
	</list>
	<list name="keywords">
		<include>keywords##Jinja/JavaScript</include>
	</list>
	<list name="reserved">
		<include>reserved##Jinja/JavaScript</include>
		<item>type</item>
		<item>arguments</item>
		
		<item>declare</item> 
		<item>readonly</item>
		<item>abstract</item>
		<item>constructor</item>
		<item>get</item>
		<item>set</item>
		
	</list>
	<list name="module">
		<include>module##Jinja/JavaScript</include>
	</list>
	<list name="primitives">
		<include>primitives##Jinja/JavaScript</include>
		
		<item>object</item>
		
	</list>

	<list name="control_export_types">
		
		<item>namespace</item>
		<item>module</item>
	</list>
	<list name="types_operator_expression">
		<item>keyof</item>
		<item>infer</item>
		<item>awaited</item>
		
	</list>
	
	<list name="types">
		<item>string</item>
		<item>number</item>
		<item>bigint</item>
		<item>boolean</item>
		<item>symbol</item>
		<item>any</item>
		<item>void</item>
		<item>never</item>
		<item>unknown</item>

		<item>undefined</item>
		<item>null</item>
		<item>object</item>
	</list>

	

	<list name="class_builtin">
		<include>class_builtin##Jinja/JavaScript</include>
	</list>
	
	<list name="class_dom">
		<include>class_dom##Jinja/JavaScript</include>
	</list>
	
	<list name="class_node">
		<include>class_node##Jinja/JavaScript</include>
	</list>

	
	<list name="variable_property">
		<include>variable_property##Jinja/JavaScript</include>
	</list>
	
	<list name="functions">
		<include>functions##Jinja/JavaScript</include>
	</list>

	
	<list name="console_functions">
		<include>console_functions##Jinja/JavaScript</include>
	</list>
	
	<list name="process_property">
		<include>process_property##Jinja/JavaScript</include>
	</list>
	
	<list name="process_functions">
		<include>process_functions##Jinja/JavaScript</include>
	</list>

	
	<list name="number_constant">
		<include>number_constant##Jinja/JavaScript</include>
	</list>
	
	<list name="math_constant">
		<include>math_constant##Jinja/JavaScript</include>
	</list>
	
	<list name="math_functions">
		<include>math_functions##Jinja/JavaScript</include>
	</list>
	
	<list name="json_functions">
		<include>json_functions##Jinja/JavaScript</include>
	</list>
	
	<list name="promise_functions">
		<include>promise_functions##Jinja/JavaScript</include>
	</list>

	
	<list name="node_variable">
		<include>node_variable##Jinja/JavaScript</include>
	</list>
	
	<list name="dom_variable">
		<include>dom_variable##Jinja/JavaScript</include>
	</list>
	
	<list name="dom_constant">
		<include>dom_constant##Jinja/JavaScript</include>
	</list>

	
	
	<list name="dom_property">
		<include>dom_property##Jinja/JavaScript</include>
	</list>
	
	<list name="dom_functions">
		<include>dom_functions##Jinja/JavaScript</include>
	</list>
	
	<list name="eventhandler_property">
		<include>eventhandler_property##Jinja/JavaScript</include>
	</list>
	
	<list name="function_common">
		<include>function_common##Jinja/JavaScript</include>
	</list>

	<contexts>

		<context name="Shebang" attribute="Normal Text" lineEndContext="Normal" lineEmptyContext="Normal" fallthroughContext="Normal">
			<IncludeRules context="jinja_boot##Jinja" />
			<Detect2Chars context="ShebangLine" attribute="Comment" char="#" char1="!" column="0" />
		</context>
		<context name="ShebangLine" attribute="Comment" lineEndContext="#pop!Normal"><IncludeRules context="jinja_boot##Jinja" /></context>

		<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="Normal Pt1" />

			
			<RegExpr context="#stay" attribute="Parameter" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+(?=\s*[\?!]?:)" />

			<IncludeRules context="Normal Pt2" />
		</context>

		<context name="Normal Pt1" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="JSBaseSomeSymboles##Jinja/JavaScript" />
			<DetectChar context="Types" attribute="Symbol" char=":" />

			
			
			<DetectChar context="Object" attribute="Normal Text" char="{" beginRegion="Brace" />
			<DetectChar context="#stay" attribute="Normal Text" char="[" beginRegion="List" />
			<DetectChar context="NoRegExp" attribute="Normal Text" char="]" endRegion="List" />
			<DetectChar context="#stay" attribute="Normal Text" char="(" />
			<DetectChar context="NoRegExp" attribute="Normal Text" char=")" />

			<StringDetect context="#stay" attribute="Symbol" String="..." />
			<IncludeRules context="FindNumbers" />
			<DetectChar context="MemberObject" attribute="Symbol" char="." />
			<IncludeRules context="FindStrings" />

			<IncludeRules context="FindPrivateOperator##Jinja/JavaScript" />

			
			<RegExpr context="#stay" attribute="Reserved" String="\babstract(?=\s+(?:class|interface)\b)" />
			
			<RegExpr context="NewTarget" attribute="Keyword" String="\bnew(?=\s*[\?!]?\.\s*target\b)" />
			<RegExpr context="MemberObject" attribute="Objects" String="\bnew(?=[\?!]?\.)" />
			<WordDetect context="#stay" attribute="Keyword" String="new" />

			
			<keyword context="#stay" attribute="ControlFlow" String="controlflow" />
			<RegExpr context="#stay" attribute="ControlFlow" String="\bdefault(?=\s*[\?!]?:)" />
		</context>
		<context name="Normal Pt2" attribute="Normal Text" lineEndContext="#stay">
			
			<IncludeRules context="jinja_boot##Jinja" />
			
			<WordDetect context="TypeDeclaration" attribute="Reserved" String="type" />
			<WordDetect context="FunctionDeclaration" attribute="Keyword" String="function" />
			<keyword context="#stay" attribute="Keyword" String="keywords" /> 
			<keyword context="#stay" attribute="Reserved" String="reserved" />

			
			<RegExpr context="#stay" attribute="Built-in Objects" String="\b(?:Partial|Readonly|Record|Pick|Omit|Exclude|Extract|NonNullable|ReturnType|InstanceType|Required|ThisType)(?=\s*&lt;)" />
			
			<IncludeRules context="BuiltInClasses" />
			<IncludeRules context="BuiltInConstants" />
			
			<RegExpr context="MemberObject" attribute="Objects" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+(?=\s*[\?!]?\.)" />

			<RegExpr context="Types" attribute="Module" String="\bas(?=\s)" />
			
			<WordDetect context="Import" attribute="Module" String="import" />
			<RegExpr context="#stay" attribute="Module" String="\bexport\s+type\b" />
			
			<keyword context="ControlExport" attribute="Module" String="control_export_types" />
			
			<keyword context="#stay" attribute="Module" String="module" />
			<keyword context="NoRegExp" attribute="Keyword" String="primitives" />
			<keyword context="#stay" attribute="Keyword" String="types_operator_expression" />

			
			<RegExpr context="Function" attribute="Function Name" String="([a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+)(?=\s*(?:&lt;(?:\{(?:[^\{\}]|\{[^\{\}]*\})*\}|\((?:[^\(\)]|\([^\(\)]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\]|'(?:\\.|[^'])*'|&quot;(?:\\.|[^&quot;])*&quot;|`(?:\\.|[^`])*`|[^&lt;&gt;]|&lt;.*&gt;)*&gt;)?\()" lookAhead="true" />
			
			<RegExpr context="#stay" attribute="Function Name" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+(?=\s*`)" />

			<Detect2Chars context="#stay" attribute="Symbol" char="?" char1="?" /> 
			
			<RegExpr context="ConditionalExpression" attribute="Symbol" String="\?(?=\s*(?:(?:[^/&quot;'`\s\?:\.;,\=\}\]\)]|&quot;(?:[^&quot;]|\\.)*&quot;|'(?:[^']|\\.)*'|`(?:[^`]|\\.)`|/\*.*\*/|/(?:[^/\\\[]|\\.|\[(?:[^\]\\]|\\.)+\])+/)(?:[^/&quot;'`]|&quot;(?:[^&quot;]|\\.)*&quot;|'(?:[^']|\\.)*'|`(?:[^`]|\\.)`|/\*.*\*/|/(?:[^/\\\[]|\\.|\[(?:[^\]\\]|\\.)+\])+/)*)?[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+\s*(?:/\*.*\*/\s*)*:|(?:&amp;&amp;|\|\||\s*(?:/\*.*\*/\s*)*[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+)?\s*(?:$|//|(?:/\*.*\*/\s*)+(?:$|//)))" minimal="true" />

			
			<RegExpr context="TypesAngleBracket" attribute="Symbol" String="&lt;(?=(?:[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+|[\[\{\(&lt;]).*&gt;)" />

			<IncludeRules context="JSBase##Jinja/JavaScript" />
		</context>

		
		
		<context name="ConditionalExpression" attribute="Normal Text" lineEndContext="#stay">
			
			<IncludeRules context="jinja_boot##Jinja" />
			
			<DetectChar context="#pop" attribute="Symbol" char=":" />
			<IncludeRules context="ConditionalExpressionEnd" />
			<DetectChar context="#stay" attribute="Symbol" char="?" />

			<IncludeRules context="FindConditionalExpressionBrackets" />
			<IncludeRules context="Normal-ParametersOverridden" />
		</context>
		<context name="Normal-ParametersOverridden" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="Normal Pt1" />
			<IncludeRules context="Normal Pt2" />
			
		</context>
		<context name="ConditionalExpressionEnd" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<AnyChar context="#pop" String=";,}])" lookAhead="true" />
			<RegExpr context="#pop" String="\=(?!&gt;)" lookAhead="true" />
			
			<StringDetect context="#pop" String="```" lookAhead="true" firstNonSpace="true" />
			<StringDetect context="#pop" String="~~~" lookAhead="true" firstNonSpace="true" />
			<RegExpr context="#pop" String="&lt;/script\s*(?:&gt;|$)" insensitive="true" lookAhead="true" />
		</context>
		<context name="FindConditionalExpressionBrackets" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="ConditionalExpressionRoundBracket" attribute="Normal Text" char="(" />
			<DetectChar context="ConditionalExpressionSquareBracket" attribute="Symbol" char="[" beginRegion="List" />
		</context>
		<context name="ConditionalExpressionRoundBracket" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop!NoRegExp" attribute="Normal Text" char=")" />
			<IncludeRules context="FindConditionalExpressionBrackets" />
			<IncludeRules context="Normal" />
		</context>
		<context name="ConditionalExpressionSquareBracket" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop!NoRegExp" attribute="Symbol" char="]" endRegion="List" />
			<IncludeRules context="FindConditionalExpressionBrackets" />
			<IncludeRules context="Normal" />
		</context>

		
		<context name="Object" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop" attribute="Normal Text" char="}" endRegion="Brace" />
			<keyword context="NoRegExp" attribute="Keyword" String="keywords" />
			
			<RegExpr context="TypesNewLine" attribute="Symbol" String=":(?=\s*(?:$|//|(?:/\*.*\*/\s*)+(?:$|//)))" minimal="true" />
			<IncludeRules context="Normal" />
		</context>

		
		<context name="NoRegExp" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="NoRegExp##Jinja/JavaScript" />
		</context>
		
		<context name="NoRegExpSameLine" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="NoRegExp##Jinja/JavaScript" />
		</context>

		
		<context name="FindNumbers" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<RegExpr attribute="Float" context="NoRegExp" String="\b(0|[1-9][0-9]*+(_[0-9]++)*+)(\.([0-9]++(_[0-9]++)*+)?([eE][+-]?([0-9]++(_[0-9]++)*+))?|([eE][+-]?([0-9]++(_[0-9]++)*+)))|\.([0-9]++(_[0-9]++)*+)([eE][+-]?([0-9]++(_[0-9]++)*+))?" />
			<AnyChar context="Integer" String="0123456789" lookAhead="1" />
		</context>
		
		<context name="Integer" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<RegExpr attribute="Hexadecimal" context="#pop!NumericSufix" String="\b0[xX][0-9a-fA-F]++(_[0-9a-fA-F]++)*+" />
			
			<RegExpr attribute="Octal" context="#pop!NumericSufix" String="\b0([oO][0-7]++(_[0-7]++)*+|0*+[1-7][0-7]*+(_[0-7]++)*+(?!_?[89]))" />
			<RegExpr attribute="Binary" context="#pop!NumericSufix" String="\b0[bB][01]++(_[01]++)*+" />
			
			<RegExpr attribute="Decimal" context="#pop!NumericSufix" String="\b0*+([1-9][0-9]*+(_[0-9]++)*+)?" />
		</context>
		<context attribute="Normal Text" lineEndContext="#pop" name="NumericSufix" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar attribute="Normal Text" context="#pop!NoRegExp" char="n" />
			<IncludeRules context="NumericSufixError##Jinja/JavaScript" />
		</context>

		
		<context name="Function" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop" attribute="Function (Built-in)" String="functions" />
			<StringDetect context="#pop" attribute="Function Name" String="%1" dynamic="true" />
			<AnyChar context="#pop" String="(&lt;&gt;" lookAhead="true" />
		</context>
		<context name="FunctionDeclaration" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<RegExpr context="#pop" attribute="Function Declaration" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+(?=\s*(?:&lt;(?:\{(?:[^\{\}]|\{[^\{\}]*\})*\}|\((?:[^\(\)]|\([^\(\)]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\]|'(?:\\.|[^'])*'|&quot;(?:\\.|[^&quot;])*&quot;|`(?:\\.|[^`])*`|[^&lt;&gt;]|&lt;.*&gt;)*&gt;)?\()" /> 
			<IncludeRules context="FindComments##Jinja/JavaScript" />
		</context>

		
		<context name="FindStrings" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="Template" attribute="Template" char="`" beginRegion="Template" />
			<IncludeRules context="FindStrings##Jinja/JavaScript" />
		</context>
		<context name="Template" attribute="Template" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="Escape##Jinja/JavaScript" />
			<Detect2Chars context="Substitution" attribute="Substitution" char="$" char1="{" />
			<DetectChar context="RegExpAfterString##Jinja/JavaScript" attribute="Template" char="`" endRegion="Template" />
		</context>
		<context name="Substitution" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop" attribute="Substitution" char="}" />
			<IncludeRules context="Normal" />
		</context>

		

		<context name="TypeDeclaration" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<AnyChar context="#pop" String=";,{})]" lookAhead="true" />
			<IncludeRules context="TypesFindBrackets" />
			<IncludeRules context="DefaultTypes" />
			<IncludeRules context="Normal" />
		</context>

		

		<context name="Types" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="FixPopLineEndContext" />
			<IncludeRules context="TypesCommon" />
		</context>
		<context name="TypesCommon" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="TypesEnd" />
			
			<RegExpr context="#pop!TypesNewLine" attribute="Symbol" String="[\|&amp;](?=\s*(?:$|//|(?:/\*.*\*/\s*)+(?:$|//)))" minimal="true" />

			<IncludeRules context="TypesFindBrackets" />
			<IncludeRules context="DefaultTypes" />
			<IncludeRules context="Normal-ParametersOverridden" />
		</context>
		
		<context name="TypesEnd" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<AnyChar context="#pop" String=";,}])" lookAhead="true" />
			<RegExpr context="#pop" String="\=(?!&gt;)" lookAhead="true" />
			<Detect2Chars context="#pop" char="/" char1="/" lookAhead="true" />
		</context>
		<context name="TypesNewLine" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!TypesCommon">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FindComments##Jinja/JavaScript" />
		</context>

		
		<context name="FixPopLineEndContext" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<RegExpr context="#pop" String="\S" firstNonSpace="true" lookAhead="true" />
		</context>

		

		<context name="DefaultTypes" attribute="Normal Text" lineEndContext="#stay">
			
			<IncludeRules context="jinja_boot##Jinja" />
			
			<keyword context="NoRegExpSameLine" attribute="Types" String="types" />
			
			<WordDetect context="NoRegExpSameLine" attribute="Keyword" String="asserts" />
			
			<WordDetect context="NoRegExpSameLine" attribute="Keyword" String="is" />

			
			<RegExpr context="#stay" attribute="Types" String="\b(?:string|number|bigint|boolean|symbol|any|void|never|unknown|undefined|null|object)(?=\})" />

			
			<AnyChar context="#stay" attribute="Symbol" String=":?" />
			<WordDetect context="#stay" attribute="Module" String="as" />
		</context>
		<context name="TypesFindBrackets" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="TypesSquareBracket" attribute="Normal Text" char="[" beginRegion="List" />
			<DetectChar context="TypesCurlyBracket" attribute="Normal Text" char="{" beginRegion="Brace" />
			<DetectChar context="TypesRoundBracket" attribute="Normal Text" char="(" />
		</context>

		<context name="TypesSquareBracket" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop!NoRegExp" attribute="Normal Text" char="]" endRegion="List" />
			<IncludeRules context="TypesFindBrackets" />
			<IncludeRules context="DefaultTypes" />
			<IncludeRules context="Normal" />
		</context>
		<context name="TypesCurlyBracket" attribute="Normal Text" lineEndContext="#pop!Object">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop" attribute="Normal Text" char="}" endRegion="Brace" />
			<RegExpr context="#pop!Object" String="\S" firstNonSpace="true" lookAhead="true" /> 
			<IncludeRules context="TypesFindBrackets" />
			<IncludeRules context="DefaultTypes" />
			<IncludeRules context="Object" />
		</context>
		<context name="TypesRoundBracket" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop!NoRegExp" attribute="Normal Text" char=")" />
			<IncludeRules context="FixPopLineEndContext" />
			<IncludeRules context="TypesFindBrackets" />
			<IncludeRules context="DefaultTypes" />
			<IncludeRules context="Normal" />
		</context>

		<context name="TypesAngleBracket" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop" attribute="Symbol" char="&gt;" />
			<IncludeRules context="TypesAngleBracketEnd" />
			<IncludeRules context="FixPopLineEndContext" />
			<IncludeRules context="TypesFindBrackets" />
			<IncludeRules context="DefaultTypes" />
			<IncludeRules context="Normal" />
		</context>
		
		<context name="TypesAngleBracketEnd" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<AnyChar context="#pop" String="})];" lookAhead="true" />
		</context>

		
		<context name="NewTarget" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<AnyChar context="#stay" attribute="Symbol" String=".?!" />
			<WordDetect context="#pop!NoRegExp" attribute="Keyword" String="target" />
		</context>

		
		<context name="ControlExport" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<AnyChar context="#pop" attribute="Normal Text" String="{;" lookAhead="true" />
			<IncludeRules context="FindStrings" />
			<RegExpr context="#stay" attribute="Types" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+" />
			<IncludeRules context="FindComments##Jinja/JavaScript" />
		</context>

		
		<context name="Import" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop!ImportRequireKey" attribute="Symbol" char="=" />
			
			<WordDetect context="#stay" attribute="Module" String="type" />
			
			<WordDetect context="#pop!NoRegExp" attribute="Keyword" String="meta" />
			
			<RegExpr context="#pop" String="." lookAhead="true" firstNonSpace="true" />
			<AnyChar context="#pop" String="{}()[];," lookAhead="true" />
			<IncludeRules context="Normal" />
		</context>
		<context name="ImportRequireKey" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<RegExpr context="#stay" attribute="Keyword" String="\s*require\s*(?=\()" />
			<DetectChar context="ImportRequire" attribute="Normal Text" char="(" beginRegion="import" />
		</context>
		<context name="ImportRequire" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectChar context="#pop#pop" attribute="Normal Text" char=")" endRegion="import" />
			<IncludeRules context="FindStrings" />
			<IncludeRules context="FindNumbers" />
			<IncludeRules context="FindComments##Jinja/JavaScript" />
		</context>

		

		<context name="MemberObject" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="DefaultMemberObject" />
			
			<keyword context="#pop!NoRegExp" attribute="Object Member" String="dom_property" />
			<keyword context="#pop!NoRegExp" attribute="Function Name" String="dom_functions" />
			<keyword context="#pop!NoRegExp" attribute="Object Member" String="eventhandler_property" />
			<keyword context="#pop!NoRegExp" attribute="Function Name" String="function_common" />
		</context>

		<context name="DefaultMemberObject" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#stay" attribute="Symbol" char="." />
			<Detect2Chars context="#stay" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#stay" attribute="Symbol" char="!" char1="." />

			
			
			<RegExpr context="#pop" attribute="Function Name" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+(?=\s*(?:&lt;(?:\{(?:[^\{\}]|\{[^\{\}]*\})*\}|\((?:[^\(\)]|\([^\(\)]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\]|'(?:\\.|[^'])*'|&quot;(?:\\.|[^&quot;])*&quot;|`(?:\\.|[^`])*`|[^&lt;&gt;]|&lt;.*&gt;)*&gt;)?\()" />
			
			<RegExpr context="#pop" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+\s*`" lookAhead="true" />
			
			<keyword context="#pop!NoRegExp" attribute="Object Property (Built-in)" String="variable_property" />
			<keyword context="#pop!NoRegExp" attribute="Constant" String="dom_constant" />

			<IncludeRules context="FindPrivateOperator##Jinja/JavaScript" />
			<RegExpr context="#stay" attribute="Object Member" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+(?=\s*[\?!]?\.)" />
			<RegExpr context="#pop!NoRegExp" attribute="Object Member" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+" />
			<IncludeRules context="NoRegExp" />

			
			<keyword context="#pop!NoRegExp" attribute="Function Name" String="functions" />
		</context>
		<context name="FixPointMemberObject" attribute="Normal Text" lineEndContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<StringDetect context="#pop" attribute="Symbol" String="?..." />
			<StringDetect context="#pop" attribute="Symbol" String="!..." />
			<StringDetect context="#pop" attribute="Symbol" String="..." />
		</context>


		
		

		<context name="BuiltInClasses" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<WordDetect context="FindMemberObjectMath" attribute="Built-in Objects" String="Math" />
			<WordDetect context="FindMemberObjectNumber" attribute="Built-in Objects" String="Number" />
			<WordDetect context="FindMemberObjectPromise" attribute="Built-in Objects" String="Promise" />
			<WordDetect context="FindMemberObjectJSON" attribute="Built-in Objects" String="JSON" />
			<WordDetect context="FindMemberObjectConsole" attribute="Built-in Objects" String="console" />
			<WordDetect context="FindMemberObjectProcess" attribute="Built-in Objects" String="process" />

			<keyword context="NoRegExp" attribute="Built-in Objects" String="class_builtin" />
			<keyword context="NoRegExp" attribute="Built-in Objects" String="class_dom" />
			<keyword context="FindMemberObjectDOM" attribute="Built-in Objects" String="dom_variable" />
			<keyword context="NoRegExp" attribute="Built-in Objects" String="class_node" />
			<keyword context="NoRegExp" attribute="Built-in Objects" String="node_variable" />
		</context>
		
		<context name="BuiltInConstants" attribute="Normal Text" lineEndContext="#stay">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="NoRegExp" attribute="Constant" String="math_constant" />
			<keyword context="NoRegExp" attribute="Constant" String="number_constant" />
			<keyword context="NoRegExp" attribute="Constant" String="dom_constant" />
		</context>

		
		<context name="FindMemberObjectDOM" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#pop!MemberObjectDOM" attribute="Symbol" char="." />
			<Detect2Chars context="#pop!MemberObjectDOM" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#pop!MemberObjectDOM" attribute="Symbol" char="!" char1="." />
		</context>
		<context name="MemberObjectDOM" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop!FindMemberObjectDOM" attribute="Object Property (Built-in)" String="dom_property" />
			<keyword context="#pop!FindMemberObjectDOM" attribute="Object Method (Built-in)" String="dom_functions" />
			<IncludeRules context="DefaultMemberObject" />
			
			<keyword context="#pop!NoRegExp" attribute="Object Member" String="eventhandler_property" />
			<keyword context="#pop!NoRegExp" attribute="Function Name" String="function_common" />
		</context>
		
		<context name="FindMemberObjectMath" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#pop!MemberObjectMath" attribute="Symbol" char="." />
			<Detect2Chars context="#pop!MemberObjectMath" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#pop!MemberObjectMath" attribute="Symbol" char="!" char1="." />
		</context>
		<context name="MemberObjectMath" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop!NoRegExp" attribute="Constant" String="math_constant" />
			<keyword context="#pop!NoRegExp" attribute="Object Method (Built-in)" String="math_functions" />
			<IncludeRules context="DefaultMemberObject" />
		</context>
		
		<context name="FindMemberObjectNumber" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#pop!MemberObjectNumber" attribute="Symbol" char="." />
			<Detect2Chars context="#pop!MemberObjectNumber" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#pop!MemberObjectNumber" attribute="Symbol" char="!" char1="." />
		</context>
		<context name="MemberObjectNumber" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop!NoRegExp" attribute="Constant" String="number_constant" />
			<IncludeRules context="DefaultMemberObject" />
		</context>
		
		<context name="FindMemberObjectPromise" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#pop!MemberObjectPromise" attribute="Symbol" char="." />
			<Detect2Chars context="#pop!MemberObjectPromise" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#pop!MemberObjectPromise" attribute="Symbol" char="!" char1="." />
		</context>
		<context name="MemberObjectPromise" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop!NoRegExp" attribute="Object Method (Built-in)" String="promise_functions" />
			<IncludeRules context="DefaultMemberObject" />
		</context>
		
		<context name="FindMemberObjectJSON" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#pop!MemberObjectJSON" attribute="Symbol" char="." />
			<Detect2Chars context="#pop!MemberObjectJSON" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#pop!MemberObjectJSON" attribute="Symbol" char="!" char1="." />
		</context>
		<context name="MemberObjectJSON" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop!NoRegExp" attribute="Object Method (Built-in)" String="json_functions" />
			<IncludeRules context="DefaultMemberObject" />
		</context>
		
		<context name="FindMemberObjectConsole" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#pop!MemberObjectConsole" attribute="Symbol" char="." />
			<Detect2Chars context="#pop!MemberObjectConsole" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#pop!MemberObjectConsole" attribute="Symbol" char="!" char1="." />
		</context>
		<context name="MemberObjectConsole" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop!NoRegExp" attribute="Object Method (Built-in)" String="console_functions" />
			<IncludeRules context="DefaultMemberObject" />
		</context>
		
		<context name="FindMemberObjectProcess" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!NoRegExp">
			<IncludeRules context="jinja_boot##Jinja" />
			<DetectSpaces />
			<IncludeRules context="FixPointMemberObject" />
			<DetectChar context="#pop!MemberObjectProcess" attribute="Symbol" char="." />
			<Detect2Chars context="#pop!MemberObjectProcess" attribute="Symbol" char="?" char1="." />
			<Detect2Chars context="#pop!MemberObjectProcess" attribute="Symbol" char="!" char1="." />
		</context>
		<context name="MemberObjectProcess" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
			<IncludeRules context="jinja_boot##Jinja" />
			<keyword context="#pop!NoRegExp" attribute="Object Method (Built-in)" String="process_functions" />
			<keyword context="#pop!NoRegExp" attribute="Object Property (Built-in)" String="process_property" />
			<IncludeRules context="DefaultMemberObject" />
		</context>

	</contexts>

	<itemDatas>
		<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
		<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
		<itemData name="ControlFlow" defStyleNum="dsControlFlow" spellChecking="false" />
		<itemData name="Reserved" defStyleNum="dsKeyword" italic="true" spellChecking="false" />
		<itemData name="Module" defStyleNum="dsImport" spellChecking="false" />
		<itemData name="Objects" defStyleNum="dsNormal" spellChecking="false" />
		<itemData name="Object Member" defStyleNum="dsAttribute" spellChecking="false" />
		<itemData name="Function Name" defStyleNum="dsFunction" spellChecking="false" />
		<itemData name="Function Declaration" defStyleNum="dsFunction" spellChecking="false" />
		<itemData name="Built-in Objects" defStyleNum="dsBuiltIn" spellChecking="false" />
		<itemData name="Object Property (Built-in)" defStyleNum="dsAttribute" italic="1" spellChecking="false" />
		<itemData name="Object Method (Built-in)" defStyleNum="dsFunction" italic="1" spellChecking="false" />
		<itemData name="Function (Built-in)" defStyleNum="dsPreprocessor" spellChecking="false" />
		<itemData name="Constant" defStyleNum="dsConstant" spellChecking="false" />
		<itemData name="Types" defStyleNum="dsDataType" spellChecking="false" />
		<itemData name="Parameter" defStyleNum="dsNormal" spellChecking="false" />

		<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
		<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
		<itemData name="Hexadecimal" defStyleNum="dsBaseN" spellChecking="false" />
		<itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false" />
		<itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
		<itemData name="Template" defStyleNum="dsVerbatimString" />
		<itemData name="Substitution" defStyleNum="dsSpecialChar" spellChecking="false" />

		<itemData name="Comment" defStyleNum="dsComment" />
		<itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false" />
	</itemDatas>

</highlighting>

<general>
	<comments>
		<comment name="singleLine" start="//" position="afterwhitespace" />
		<comment name="multiLine" start="/*" end="*/" />
	</comments>
	<keywords casesensitive="1" additionalDeliminator="&quot;'`" weakDeliminator="$" />
</general>

</language>