packages feed

skylighting-core 0.14.3 → 0.14.4

raw patch · 5 files changed

+805/−1 lines, 5 files

Files

changelog.md view
@@ -1,5 +1,9 @@ # Revision history for skylighting and skylighting-core +## 0.14.4++  * Add `gdscript`, `typst`, `tlaplus` syntax (#184, #199).+ ## 0.14.3    * Add crystal, racket, zip syntax (#194).
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name:                skylighting-core-version:             0.14.3+version:             0.14.4 synopsis:            syntax highlighting library description:         Skylighting is a syntax highlighting library.                      It derives its tokenizers from XML syntax
+ xml/gd-script.xml view
@@ -0,0 +1,373 @@+<!--++    gd-script.xml: Mario Aichinger <aichingm@gmail.com> 2021++    This file is derivatived from the python.xml file which has ATM no license notice. This means that same license which covers the file python.xml, which ever it may be, applies to this file. Besides the inherited license, the code I (Mario Aichinger) added, which is/was not part of the python.xml file, is covered by the MIT license.++-->+<language name="Godot" version="3" style="godot" kateversion="5.0" section="Scripts" indenter="python" priority="5" extensions="*.gd" casesensitive="1" author="Mario Aichinger" >+	<highlighting>+        <list name="preprocessor">+            <item>breakpoint</item>+            <item>preload</item>+            <item>assert</item>+        </list>+        <list name="consts">+            <item>PI</item>+            <item>TAU</item>+            <item>INF</item>+        </list>+		<list name="defs">+			<item>class</item>+			<item>class_name</item>+			<item>extends</item>+			<item>tool</item>+			<item>signal</item>+			<item>func</item>+			<item>static</item>+			<item>const</item>+			<item>enum</item>+			<item>var</item>+			<item>onready</item>+			<item>export</item>+			<item>setget</item>+			<item>remote</item>+			<item>master</item>+			<item>puppet</item>+			<item>remotesync</item>+			<item>mastersync</item>+			<item>puppetsync</item>+		</list>+		<list name="operators">+			<item>is</item>+			<item>and</item>+			<item>or</item>+			<item>in</item>+			<item>not</item>+            <item>as</item>+		</list>+		<list name="flow">+			<item>if</item>+            <item>elif</item>+            <item>else</item>+            <item>for</item>+            <item>while</item>+            <item>match</item>+            <item>break</item>+            <item>continue</item>+            <item>pass</item>+            <item>return</item>+            <item>yield</item>+		</list>+		<list name="builtinfuncs">+            <item>min</item>+            <item>Color8</item>+            <item>ColorN</item>+            <item>abs</item>+            <item>acos</item>+            <item>asin</item>+            <item>atan</item>+            <item>atan2</item>+            <item>bytes2var</item>+            <item>cartesian2polar</item>+            <item>ceil</item>+            <item>char</item>+            <item>clamp</item>+            <item>convert</item>+            <item>cos</item>+            <item>cosh</item>+            <item>db2linear</item>+            <item>decimals</item>+            <item>dectime</item>+            <item>deg2rad</item>+            <item>dict2inst</item>+            <item>ease</item>+            <item>exp</item>+            <item>floor</item>+            <item>fmod</item>+            <item>fposmod</item>+            <item>funcref</item>+            <item>get_stack</item>+            <item>hash</item>+            <item>inst2dict</item>+            <item>instance_from_id</item>+            <item>inverse_lerp</item>+            <item>is_equal_approx</item>+            <item>is_inf</item>+            <item>is_instance_valid</item>+            <item>is_nan</item>+            <item>is_zero_approx</item>+            <item>len</item>+            <item>lerp</item>+            <item>lerp_angle</item>+            <item>linear2db</item>+            <item>load</item>+            <item>log</item>+            <item>max</item>+            <item>min</item>+            <item>move_toward</item>+            <item>nearest_po2</item>+            <item>ord</item>+            <item>parse_json</item>+            <item>polar2cartesian</item>+            <item>posmod</item>+            <item>pow</item>+            <item>print</item>+            <item>print_debug</item>+            <item>print_stack</item>+            <item>printerr</item>+            <item>printraw</item>+            <item>prints</item>+            <item>printt</item>+            <item>push_error</item>+            <item>push_warning</item>+            <item>rad2deg</item>+            <item>rand_range</item>+            <item>rand_seed</item>+            <item>randf</item>+            <item>randi</item>+            <item>randomize</item>+            <item>range</item>+            <item>range_lerp</item>+            <item>round</item>+            <item>seed</item>+            <item>sign</item>+            <item>sin</item>+            <item>sinh</item>+            <item>smoothstep</item>+            <item>sqrt</item>+            <item>step_decimals</item>+            <item>stepify</item>+            <item>str</item>+            <item>str2var</item>+            <item>tan</item>+            <item>tanh</item>+            <item>to_json</item>+            <item>type_exists</item>+            <item>typeof</item>+            <item>validate_json</item>+            <item>var2bytes</item>+            <item>var2str</item>+            <item>weakref</item>+            <item>wrapf</item>+            <item>wrapi</item>+		</list>+		<list name="specialvars">+			<item>null</item>+			<item>self</item>+			<item>true</item>+			<item>false</item>+		</list>+		<list name="bindings">+			<item>connect</item>+		</list>+		<list name="overloaders">+            <item>_get</item>+            <item>_get_property_list</item>+            <item>_init</item>+            <item>_notification</item>+            <item>_set</item>+            <item>_to_string</item>+            <item>_enter_tree</item>+            <item>_exit_tree</item>+            <item>_get_configuration_warning</item>+            <item>_input</item>+            <item>_physics_process</item>+            <item>_process</item>+            <item>_ready</item>+            <item>_unhandled_input</item>+            <item>_unhandled_key_input</item>+		</list>+		<contexts>+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">+				<DetectSpaces/>+++				<keyword attribute="Preprocessor" String="preprocessor" context="#stay"/>+				<keyword attribute="Consts Keyword" String="consts" context="#stay"/>+				<keyword attribute="Definition Keyword" String="defs" context="#stay"/>+				<keyword attribute="Operator Keyword" String="operators" context="#stay"/>+				<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>+				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>+				<keyword attribute="Special Variable" String="specialvars" context="#stay"/>+				<keyword attribute="Bindings" String="bindings" context="#stay"/>+				<keyword attribute="Overloaders" String="overloaders" context="#stay"/>++                <IncludeRules context="FunctionCall"/>+                <IncludeRules context="UnusedVariable"/>++                <RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]{2,}" context="#stay"/>++				<!-- Hexadecimal: 0xA1, Binary: 0b01, Octal: 0o71 -->+				<RegExpr attribute="Hex" String="0x(?:_?[\da-fA-F])+\b" context="#stay"/>+				<RegExpr attribute="Binary" String="0b(?:_?[01])+\b" context="#stay"/>+				<RegExpr attribute="Octal" String="0o(?:_?[0-7])+\b" context="#stay"/>++				<!-- Float: .1e3 ; 1.1e3                                                               | Float: 1e3 ; 1.e3 ;                 | Float: 1.1 ; ; .1  -->+				<RegExpr attribute="Float" String="([0-9][_0-9]*(\.[0-9]([_0-9])*)e[\+\-]?[0-9][_0-9]*)|([0-9][_0-9]*\.?e[\+\-]?[0-9][_0-9]*)|(([0-9]([_0-9])*)?\.[0-9][_0-9]*)" context="#stay"/>++                <!-- Decimal: 123 ; 000 -->+				<RegExpr attribute="Int" String="\d[_\d]*" context="#stay"/>++				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/>+				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/>++				<DetectChar attribute="Comment" char="#" context="Hash comment"/>++				<IncludeRules context="StringVariants"/>++                <IncludeRules context="VariableVariants"/>++                <AnyChar attribute="Operator" String="~-*/%+&amp;^|&lt;>=!" context="#stay"/>++				<DetectIdentifier/>+			</context>++			<context name="#CheckForString" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+				<DetectSpaces/>+				<LineContinue attribute="Normal Text" context="CheckForStringNext"/>+			</context>++			<context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+				<DetectSpaces/>+				<LineContinue attribute="Normal Text" context="CheckForStringNext"/>+				<IncludeRules context="StringVariants"/>+			</context>++			<context name="StringVariants" attribute="Normal Text" lineEndContext="#stay">+				<StringDetect attribute="String" String="'''" insensitive="true" context="Triple A-string" beginRegion="Triple A-region"/>+				<StringDetect attribute="String" String="&quot;&quot;&quot;" insensitive="true" context="Triple Q-string" beginRegion="Triple Q-region"/>+				<DetectChar attribute="String" char="'" context="Single A-string"/>+				<DetectChar attribute="String" char="&quot;" context="Single Q-string"/>++			</context>++            <context name="VariableVariants" attribute="Normal Text" lineEndContext="#stay">+                <Detect2Chars attribute="NodePath-String"  char="@" char1="&quot;" context="NodePath-String"/>+				<RegExpr attribute="NodePath-Var" String="\$[a-zA-Z0-9_]" insensitive="true" context="NodePath-Var"/>+			</context>++			<context name="Dictionary" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces/>+				<DetectChar attribute="Normal Text" char="}" context="#pop" endRegion="Dictionary"/>+				<IncludeRules context="Normal"/>+			</context>++			<context name="List" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces/>+				<DetectChar attribute="Normal Text" char="]" context="#pop" endRegion="List"/>+				<IncludeRules context="Normal"/>+			</context>++			<!-- Comments -->++			<context name="Hash comment" attribute="Comment" lineEndContext="#pop">+				<DetectSpaces/>+				<IncludeRules context="##Comments"/>+			</context>++			<!-- Strings -->++			<!-- format characters -->+			<context name="stringformat" attribute="String Substitution" lineEndContext="#stay">+                <Detect2Chars attribute="String"  char="%" char1="%" context="#stay"/>+                <RegExpr attribute="String Substitution" String="%.?-?(([1-9][0-9]*)\*?)?(\.(([1-9][0-9]*)|\*))?[scdoxf]|\{(([a-zA-Z_][a-zA-Z_0-9]*)|[0-9]+)?\}" context="#stay"/>+                <Detect2Chars attribute="String Substitution" char="{" char1="{" context="#stay"/>+				<Detect2Chars attribute="String Substitution" char="}" char1="}" context="#stay"/>+			</context>++			<!-- escape characters -->+			<context name="stringescape" attribute="String Char" lineEndContext="#stay">+				<RegExpr attribute="String Char" String="\\[\\'&quot;ntrabfv]|\\u[0-9A-Fa-f]{4}" context="#stay"/>+			</context>++			<!-- Triple-quoted A-strings -->+			<context name="Triple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<StringDetect attribute="String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>+			</context>++			<!-- Triple-quoted Q-strings -->+			<context name="Triple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>+			</context>++			<!-- Single-quoted A-strings -->+			<context name="Single A-string" attribute="String" lineEndContext="#stay">+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<DetectChar attribute="String" char="'" context="#pop!#CheckForString"/>+			</context>++			<!-- Single-quoted Q-strings -->+			<context name="Single Q-string" attribute="String" lineEndContext="#stay">+				<IncludeRules context="stringescape"/>+				<IncludeRules context="stringformat"/>+				<DetectChar attribute="String" char="&quot;" context="#pop!#CheckForString"/>+			</context>++            <!-- Node Types -->+			<context name="NodePath-String" attribute="NodePath-String" lineEndContext="#pop">+				<DetectChar attribute="String" char="&quot;" context="#pop!#CheckForString"/>+			</context>++            <context name="NodePath-Var" attribute="NodePath-Var" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1">+				<RegExpr attribute="NodePath-Var" String="[a-zA-Z0-9_]" context="#stay"/>+			</context>++            <context name="UnusedVariable" attribute="UnusedVariable" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1">+                <RegExpr attribute="Normal Text" lookAhead="true" String="_[a-zA-Z][a-zA-Z0-9_]+\w*\(" context="#pop"/> <!-- exclude function calls and definitions -->+				<RegExpr attribute="UnusedVariable" String="_[a-zA-Z][a-zA-Z0-9_]+" context="#stay"/>+			</context>++            <context name="FunctionCall" attribute="Function Call" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1">+                <RegExpr lookAhead="true" String="[a-zA-Z_][a-zA-Z0-9_]+\w*\(" context="FunctionCallName"/> <!-- exclude none function calls and definitions -->+			</context>++            <context name="FunctionCallName" attribute="Function Call" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1">+				<RegExpr attribute="Function Call" String="[a-zA-Z_][a-zA-Z0-9_]+" context="#pop"/>+			</context>++		</contexts>++		<itemDatas>+			<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>+			<itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/>+			<itemData name="Consts Keyword" defStyleNum="dsConstant" spellChecking="false"/>+			<itemData name="Definition Keyword" defStyleNum="dsKeyword" spellChecking="false"/>+			<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>+			<itemData name="Operator Keyword" defStyleNum="dsKeyword" spellChecking="false"/>+			<itemData name="Flow Control Keyword" defStyleNum="dsControlFlow" spellChecking="false"/>+			<itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false"/>+			<itemData name="Special Variable" defStyleNum="dsVariable" spellChecking="false"/>+			<itemData name="Bindings" defStyleNum="dsBuiltIn" spellChecking="false"/>+			<itemData name="Overloaders" defStyleNum="dsBuiltIn" spellChecking="false"/>+			<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>+			<itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>+			<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>+			<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>+			<itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/>+			<itemData name="Comment" defStyleNum="dsComment"/>+			<itemData name="String" defStyleNum="dsString"/>+			<itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/>+			<itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>+			<itemData name="NodePath-String" defStyleNum="dsSpecialString" spellChecking="false"/>+			<itemData name="NodePath-Var" defStyleNum="dsVariable" spellChecking="false"/>+			<itemData name="UnusedVariable" defStyleNum="dsComment" spellChecking="false"/>+			<itemData name="Function Call" defStyleNum="dsFunction" spellChecking="false"/>+		</itemDatas>+	</highlighting>+	<general>+		<folding indentationsensitive="1"/>+		<emptyLines>+			<emptyLine regexpr="(?:\s+|\s*#.*)"/>+		</emptyLines>+		<comments>+			<comment name="singleLine" start="#" position="afterwhitespace"/>+		</comments>+		<keywords casesensitive="1" additionalDeliminator="#'"/>+	</general>+</language>
+ xml/tlaplus.xml view
@@ -0,0 +1,98 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language>+<!--+    SPDX-FileCopyrightText: 2024 Younes IO <dev@younes.io>+    SPDX-License-Identifier: MIT+-->+<language name="TLA+" version="1" kateversion="5.0" section="Sources" extensions="*.tla" mimetype="text/x-tlaplus" priority="5" author="Younes (dev@younes.io)">+  <highlighting>+    <list name="keywords">+      <item>ASSUME</item>+      <item>ASSUMPTION</item>+      <item>AXIOM</item>+      <item>CASE</item>+      <item>CHOOSE</item>+      <item>CONSTANT</item>+      <item>CONSTANTS</item>+      <item>DOMAIN</item>+      <item>ELSE</item>+      <item>ENABLED</item>+      <item>EXCEPT</item>+      <item>EXTENDS</item>+      <item>IF</item>+      <item>IN</item>+      <item>INSTANCE</item>+      <item>LET</item>+      <item>LOCAL</item>+      <item>MODULE</item>+      <item>OTHER</item>+      <item>SUBSET</item>+      <item>THEN</item>+      <item>THEOREM</item>+      <item>UNCHANGED</item>+      <item>UNION</item>+      <item>VARIABLE</item>+      <item>VARIABLES</item>+      <item>WITH</item>+    </list>+    <list name="operators">+      <item>/\</item>+      <item>\/</item>+      <item>~</item>+      <item>=&gt;</item>+      <item>&lt;=&gt;</item>+      <item>\E</item>+      <item>\A</item>+      <item>\in</item>+      <item>\notin</item>+      <item>\subset</item>+      <item>\subseteq</item>+      <item>\supset</item>+      <item>\supseteq</item>+      <item>\union</item>+      <item>\intersect</item>+      <item>\setminus</item>+    </list>+    <contexts>+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">+        <keyword attribute="Keyword" context="#stay" String="keywords"/>+        <keyword attribute="Operator" context="#stay" String="operators"/>+        <Float attribute="Float" context="#stay"/>+        <Int attribute="Decimal" context="#stay"/>+        <DetectChar attribute="String" context="String" char="&quot;"/>+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="\" char1="*" beginRegion="Comment"/>+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="(" char1="*" beginRegion="Comment"/>+      </context>+      <context attribute="String" lineEndContext="#pop" name="String">+        <DetectChar attribute="String" context="#pop" char="&quot;"/>+      </context>+      <context attribute="Comment" lineEndContext="#pop" name="SingleLineComment">+        <DetectSpaces/>+        <IncludeRules context="##Alerts"/>+        <DetectIdentifier/>+      </context>+      <context attribute="Comment" lineEndContext="#stay" name="MultiLineComment">+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")" endRegion="Comment"/>+        <DetectSpaces/>+        <IncludeRules context="##Alerts"/>+        <DetectIdentifier/>+      </context>+    </contexts>+    <itemDatas>+      <itemData name="Normal Text" defStyleNum="dsNormal"/>+      <itemData name="Keyword" defStyleNum="dsKeyword"/>+      <itemData name="Operator" defStyleNum="dsOperator"/>+      <itemData name="Float" defStyleNum="dsFloat"/>+      <itemData name="Decimal" defStyleNum="dsDecVal"/>+      <itemData name="String" defStyleNum="dsString"/>+      <itemData name="Comment" defStyleNum="dsComment"/>+    </itemDatas>+  </highlighting>+  <general>+    <comments>+      <comment name="singleLine" start="\*"/>+      <comment name="multiLine" start="(*" end="*)"/>+    </comments>+    <keywords casesensitive="1"/>+  </general>+</language>
+ xml/typst.xml view
@@ -0,0 +1,329 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language [+    <!ENTITY float "(\.?[0-9]+|[0-9]+\.[0-9]*)">++    <!ENTITY ident0 "[a-zA-Z_]">+    <!ENTITY identn "[a-zA-Z0-9_\-]">+    <!ENTITY ident "&ident0;&identn;*">+    <!ENTITY boundl "(?&lt;!&ident0;)">+    <!ENTITY boundr "(?!&identn;)">+    <!ENTITY fmtbdl "(?&lt;=\W|^)">+    <!ENTITY fmtbdr "(?=\W|$)">+]>++<!--+    SPDX-FileCopyrightText: 2024 Marco Rebhan <me@dblsaiko.net>++    SPDX-License-Identifier: MIT+-->++<language+    name="Typst"+    version="1"+    kateversion="5.79"+    section="Markup"+    extensions="*.typ"+    casesensitive="1"+    author="Marco Rebhan &lt;me@dblsaiko.net&gt;"+    license="MIT"+    priority="1"+>+    <highlighting>+        <list name="bool">+            <item>true</item>+            <item>false</item>+        </list>+        <contexts>+            <context name="Markup" attribute="Normal Text" lineEndContext="#stay">+                <IncludeRules context="Comment Rules" />+                <RegExpr String="&fmtbdl;\*" attribute="Strong" context="Strong" />+                <RegExpr String="&fmtbdl;_" attribute="Emphasis" context="Emphasis" />+                <RegExpr String="```(`*)" attribute="Raw Text" context="Big Raw Text" />+                <DetectChar char="`" attribute="Raw Text" context="Raw Text" />+                <RegExpr String="^\s*=+.*" column="0" attribute="Heading" />+                <RegExpr String="^\s*[-+]" column="0" attribute="List" />+                <RegExpr String="\\(u\{[0-9A-Za-z]+\}|.?)" attribute="Special Char" />+                <RegExpr String="https?://[0-9A-Za-z-._~:/?#\[\]@!\$&amp;'\(\)\*\+,;%=]+" attribute="URL Literal" />+                <DetectChar char="$" attribute="Math" context="Math" beginRegion="Math" />+                <DetectChar char="#" attribute="Code Keyword" context="Code" />+                <RegExpr String="&lt;&ident;&gt;" attribute="Label" />+                <RegExpr String="@&ident;" attribute="Label Reference" />+                <!--+                    Keep track of nested [] so we don't prematurely pop:++                        #[ text containing [] ]+                -->+                <DetectChar char="[" context="Markup Inner []" />+            </context>+            <context name="Strong" attribute="Strong">+                <RegExpr String="\*&fmtbdr;" attribute="Strong" context="#pop" />+                <IncludeRules context="Markup" />+            </context>+            <context name="Emphasis" attribute="Emphasis">+                <RegExpr String="_&fmtbdr;" attribute="Emphasis" context="#pop" />+                <IncludeRules context="Markup" />+            </context>+            <context name="Raw Text" attribute="Raw Text">+                <DetectChar char="`" attribute="Raw Text" context="#pop" />+            </context>+            <context name="Big Raw Text" attribute="Raw Text">+                <StringDetect String="```%1" dynamic="true" attribute="Raw Text" context="#pop" />+            </context>++            <context name="Markup Block" attribute="Normal Text">+                <DetectChar char="]" attribute="Operator" context="#pop" endRegion="Markup Block" />+                <IncludeRules context="Markup" />+            </context>+            <context name="Markup Inner []" attribute="Normal Text">+                <DetectChar char="]" context="#pop" />+                <IncludeRules context="Markup" />+            </context>+            <context name="Markup Block Call" attribute="Normal Text">+                <DetectChar char="]" attribute="Operator" context="#pop!Continued Expression" endRegion="Markup Block" />+                <IncludeRules context="Markup Block" />+            </context>++            <context name="Code" attribute="Code" lineEndContext="#pop!Line Error" fallthroughContext="#pop!Line Error">+                <!--+                    Start of #-expression inside of a markup context. Needs+                    special handling because we need to automatically return to+                    the markup context at the end of the expression.+                -->+                <!-- Keep this synced with Nested Code below! -->+                <DetectSpaces />+                <IncludeRules context="Comment Rules" />+                <WordDetect String="none" attribute="Builtin" context="#pop!Continued Expression" />+                <WordDetect String="auto" attribute="Builtin" context="#pop!Continued Expression" />+                <keyword String="bool" attribute="Builtin" context="#pop!Continued Expression" />+                <RegExpr String="&float;(fr|em|pt|mm|cm|in|%)" attribute="Float" context="#pop!Continued Expression" />+                <Float attribute="Float" context="#pop!Continued Expression" />+                <Int attribute="Int" context="#pop!Continued Expression" />+                <DetectChar char="&quot;" attribute="String" context="#pop!String" />+                <RegExpr String="```(`*)" attribute="Raw Text" context="#pop!Big Raw Text" />+                <DetectChar char="`" attribute="Raw Text" context="#pop!Raw Text" />+                <DetectChar char="$" attribute="Math" context="#pop!Math" beginRegion="Math" />+                <RegExpr String="&lt;&ident;&gt;" attribute="Label" context="Continued Expression" />+                <DetectChar char="(" attribute="Operator" context="#pop!Parentheses" beginRegion="Parentheses" />+                <DetectChar char="[" attribute="Operator" context="#pop!Markup Block" beginRegion="Markup Block" />+                <DetectChar char="{" attribute="Operator" context="#pop!Code Block" beginRegion="Code Block" />+                <Detect2Chars char="!" char1="=" attribute="Operator" />+                <Detect2Chars char="&gt;" char1="=" attribute="Operator" />+                <Detect2Chars char="&lt;" char1="=" attribute="Operator" />+                <Detect2Chars char="+" char1="=" attribute="Operator" />+                <Detect2Chars char="-" char1="=" attribute="Operator" />+                <Detect2Chars char="=" char1="=" attribute="Operator" />+                <AnyChar String="!&gt;&lt;+-=" attribute="Operator" />+                <WordDetect String="in" attribute="Operator" />+                <WordDetect String="import" attribute="Import" context="#pop!Import" />+                <WordDetect String="show" attribute="Code Keyword" context="#pop!Show" />+                <WordDetect String="set" attribute="Code Keyword" context="#pop!Set" />+                <WordDetect String="let" attribute="Code Keyword" context="#pop!Let" />+                <WordDetect String="if" attribute="Control Flow" context="#pop!If" />+                <WordDetect String="else" attribute="Control Flow" />+                <WordDetect String="while" attribute="Control Flow" context="#pop!While" />+                <WordDetect String="for" attribute="Control Flow" context="#pop!For" />+                <WordDetect String="break" attribute="Control Flow" />+                <WordDetect String="continue" attribute="Control Flow" />+                <WordDetect String="return" attribute="Control Flow" />+                <RegExpr String="&boundl;&ident;&boundr;" context="#pop!Continued Expression" />+            </context>+            <context name="Nested Code" attribute="Code">+                <!-- Keep this synced with Code above! -->+                <DetectSpaces />+                <IncludeRules context="Comment Rules" />+                <WordDetect String="none" attribute="Builtin" context="Continued Expression" />+                <WordDetect String="auto" attribute="Builtin" context="Continued Expression" />+                <keyword String="bool" attribute="Builtin" context="Continued Expression" />+                <RegExpr String="&float;(fr|em|pt|mm|cm|in|%)" attribute="Float" context="Continued Expression" />+                <Float attribute="Float" context="Continued Expression" />+                <Int attribute="Int" context="Continued Expression" />+                <DetectChar char="&quot;" attribute="String" context="String" />+                <RegExpr String="```(`*)" attribute="Raw Text" context="Big Raw Text" />+                <DetectChar char="`" attribute="Raw Text" context="Raw Text" />+                <DetectChar char="$" attribute="Math" context="Math" beginRegion="Math" />+                <RegExpr String="&lt;&ident;&gt;" attribute="Label" context="Continued Expression" />+                <DetectChar char="(" attribute="Operator" context="Parentheses" beginRegion="Parentheses" />+                <DetectChar char="[" attribute="Operator" context="Markup Block" beginRegion="Markup Block" />+                <DetectChar char="{" attribute="Operator" context="Code Block" beginRegion="Code Block" />+                <Detect2Chars char="!" char1="=" attribute="Operator" />+                <Detect2Chars char="&gt;" char1="=" attribute="Operator" />+                <Detect2Chars char="&lt;" char1="=" attribute="Operator" />+                <Detect2Chars char="+" char1="=" attribute="Operator" />+                <Detect2Chars char="-" char1="=" attribute="Operator" />+                <Detect2Chars char="=" char1="=" attribute="Operator" />+                <AnyChar String="!&gt;&lt;+-=" attribute="Operator" />+                <WordDetect String="in" attribute="Operator" />+                <WordDetect String="import" attribute="Import" context="Import" />+                <WordDetect String="show" attribute="Code Keyword" context="Show" />+                <WordDetect String="set" attribute="Code Keyword" context="Set" />+                <WordDetect String="let" attribute="Code Keyword" context="Let" />+                <WordDetect String="if" attribute="Control Flow" context="If" />+                <WordDetect String="else" attribute="Control Flow" />+                <WordDetect String="while" attribute="Control Flow" context="While" />+                <WordDetect String="for" attribute="Control Flow" context="For" />+                <WordDetect String="break" attribute="Control Flow" />+                <WordDetect String="continue" attribute="Control Flow" />+                <WordDetect String="return" attribute="Control Flow" />+                <RegExpr String="&boundl;&ident;&boundr;" context="Continued Expression" />+            </context>++            <context name="Code Block" attribute="Code">+                <DetectChar char="}" attribute="Operator" context="#pop" endRegion="Code Block" />+                <IncludeRules context="Nested Code" />+            </context>++            <context name="Continued Expression" attribute="Code" lineEndContext="#pop" fallthroughContext="#pop">+                <DetectChar char="(" attribute="Operator" context="#pop!Function Call" />+                <DetectChar char="[" attribute="Operator" context="#pop!Markup Block Call" beginRegion="Markup Block" />+                <DetectChar char="." attribute="Operator" context="Value Access" />+            </context>++            <context name="Value Access" attribute="Code" lineEndContext="#pop" fallthroughContext="#pop!Line Error">+                <RegExpr String="&boundl;&ident;&boundr;" context="#pop!Continued Expression" />+            </context>++            <context name="Parentheses" attribute="Code">+                <DetectChar char=")" attribute="Operator" context="#pop!Continued Expression" endRegion="Parentheses" />+                <DetectChar char="," attribute="Operator" />+                <IncludeRules context="Nested Code" />+            </context>+            <context name="Function Call" attribute="Code">+                <DetectChar char=":" attribute="Operator" context="Function Call - Parameter" />+                <IncludeRules context="Parentheses" />+            </context>+            <context name="Function Call - Parameter" attribute="Code">+                <DetectChar char="," attribute="Operator" context="#pop" />+                <IncludeRules context="Code" />+            </context>++            <context name="Import" attribute="Code" lineEndContext="#pop" fallthroughContext="#pop">+                <DetectChar char=":" attribute="Operator" context="#pop!Import 1" />+                <IncludeRules context="Nested Code" />+            </context>+            <context name="Import 1" attribute="Code" fallthroughContext="#pop!Line Error">+                <DetectSpaces />+                <DetectChar char="*" attribute="Operator" context="#pop" />+                <RegExpr String="&boundl;&ident;&boundr;" context="#pop!Import 2" />+            </context>+            <context name="Import 2" attribute="Code" lineEndContext="#pop" fallthroughContext="#pop">+                <DetectSpaces />+                <DetectChar char="," attribute="Operator" context="#pop!Import 1" />+            </context>++            <context name="Show" attribute="Code">+                <DetectSpaces />+                <DetectChar char=":" attribute="Operator" context="#pop!Code" />+                <IncludeRules context="Nested Code" />+            </context>++            <context name="Set" attribute="Code" lineEndContext="#pop!Line Error" fallthroughContext="#pop!Line Error">+                <DetectSpaces />+                <RegExpr String="&boundl;&ident;&boundr;" attribute="Element" context="#pop!Set 1" />+            </context>+            <context name="Set 1" attribute="Code">+                <DetectSpaces />+                <DetectChar char="(" attribute="Operator" context="#pop!Function Call" />+            </context>++            <context name="Let" attribute="Code" fallthroughContext="#pop!Line Error">+                <DetectSpaces />+                <RegExpr String="&boundl;&ident;&boundr;" attribute="Element" context="#pop!Let 1" />+            </context>+            <context name="Let 1" attribute="Code">+                <DetectChar char="(" attribute="Operator" context="#pop!Let 2" />+                <IncludeRules context="Let 3" />+            </context>+            <context name="Let 2" attribute="Code">+                <DetectChar char=")" attribute="Operator" context="#pop!Let 3" />+                <IncludeRules context="Function Call" />+            </context>+            <context name="Let 3" attribute="Code">+                <DetectSpaces />+                <DetectChar char="=" attribute="Operator" context="#pop!Code" />+            </context>++            <context name="If" attribute="Code">+                <DetectChar char="{" attribute="Operator" context="#pop!Code Block" beginRegion="Code Block" />+                <DetectChar char="[" attribute="Operator" context="#pop!Markup Block" beginRegion="Markup Block" />+                <IncludeRules context="Nested Code" />+            </context>++            <context name="While" attribute="Code">+                <DetectChar char="{" attribute="Operator" context="#pop!Code Block" beginRegion="Code Block" />+                <DetectChar char="[" attribute="Operator" context="#pop!Markup Block" beginRegion="Markup Block" />+                <IncludeRules context="Nested Code" />+            </context>++            <context name="For" attribute="Code">+                <DetectChar char="{" attribute="Operator" context="#pop!Code Block" beginRegion="Code Block" />+                <DetectChar char="[" attribute="Operator" context="#pop!Markup Block" beginRegion="Markup Block" />+                <WordDetect String="in" attribute="Control Flow" />+                <IncludeRules context="Nested Code" />+            </context>++            <context name="String" attribute="String">+                <RegExpr String="\\." attribute="Special Char" />+                <DetectChar char="&quot;" attribute="String" context="#pop!Continued Expression" />+            </context>+++            <context name="Math" attribute="Math">+                <DetectChar char="$" attribute="Math" context="#pop" endRegion="Math" />+                <DetectChar char="#" attribute="Code Keyword" context="Code" />+            </context>+++            <context name="Line Error" attribute="Error" lineEndContext="#pop" />+++            <context name="Comment Rules" attribute="Normal Text" lineEndContext="#stay">+                <Detect2Chars char="/" char1="/" attribute="Comment" context="Comment" />+                <Detect2Chars char="/" char1="*" attribute="Comment" context="Multi-Line Comment" beginRegion="Comment" />+            </context>+            <context name="Comment" attribute="Comment" lineEndContext="#pop">+                <DetectSpaces attribute="Comment"/>+                <IncludeRules context="##Comments"/>+                <DetectIdentifier attribute="Comment" context="#stay" />+            </context>+            <context name="Multi-Line Comment" attribute="Comment" lineEndContext="#stay">+                <Detect2Chars char="*" char1="/" attribute="Comment" context="#pop" endRegion="Comment" />+                <IncludeRules context="Comment" />+            </context>+        </contexts>+        <itemDatas>+            <itemData name="Comment" defStyleNum="dsComment" />+            <itemData name="Error" defStyleNum="dsError" />++            <itemData name="Normal Text" defStyleNum="dsNormal" />+            <itemData name="Heading" defStyleNum="dsFunction" bold="true" />+            <itemData name="List" defStyleNum="dsNormal" bold="true" />+            <itemData name="Strong" defStyleNum="dsNormal" bold="true" />+            <itemData name="Emphasis" defStyleNum="dsNormal" italic="true" />+            <itemData name="Raw Text" defStyleNum="dsSpecialString" />+            <itemData name="URL Literal" defStyleNum="dsSpecialString" />++            <itemData name="Code" defStyleNum="dsNormal" />+            <itemData name="Code Keyword" defStyleNum="dsKeyword" />+            <itemData name="Builtin" defStyleNum="dsBuiltIn" />+            <itemData name="Int" defStyleNum="dsDecVal" />+            <itemData name="Float" defStyleNum="dsFloat" />+            <itemData name="String" defStyleNum="dsString" />+            <itemData name="Special Char" defStyleNum="dsSpecialChar" />+            <itemData name="Label" defStyleNum="dsVariable" />+            <itemData name="Label Reference" defStyleNum="dsVariable" />+            <itemData name="Operator" defStyleNum="dsOperator" />+            <itemData name="Element" defStyleNum="dsVariable" />+            <itemData name="Control Flow" defStyleNum="dsControlFlow" />+            <itemData name="Import" defStyleNum="dsImport" />++            <itemData name="Math" defStyleNum="dsSpecialString" />+        </itemDatas>+    </highlighting>+    <general>+        <comments>+            <comment name="singleLine" start="//" />+            <comment name="multiLine" start="/*" end="*/" region="Comment" />+        </comments>+        <keywords casesensitive="1" weakDeliminator="-" additionalDeliminator="#" />+    </general>+</language>