184 lines
8.8 KiB
XML
184 lines
8.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE language
|
|
[
|
|
<!ENTITY more "(_[0-9]++)*+">
|
|
<!ENTITY int "(0|[1-9][0-9]*+&more;)">
|
|
<!ENTITY frac "\.[0-9]+&more;">
|
|
<!ENTITY exp "[eE][+-]?[0-9]+&more;">
|
|
|
|
<!ENTITY offset "[+-][0-9][0-9]:[0-9][0-9]">
|
|
<!ENTITY time "[0-9][0-9]:[0-9][0-9]:[0-9][0-9](\.[0-9]+)?">
|
|
<!ENTITY datetime "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]([T ]&time;(&offset;|Z)?)?|&time;">
|
|
]>
|
|
<!-- https://github.com/toml-lang/toml -->
|
|
<!-- https://toml.io/en/v1.0.0 -->
|
|
<language
|
|
name="TOML"
|
|
section="Configuration"
|
|
extensions="Cargo.lock;*.toml;*.rc;*.conf;*.cfg;*.cf;*.cnf;*.ini;mirrorlist"
|
|
mimetype="text/x-toml;application/toml"
|
|
version="13"
|
|
kateversion="5.0"
|
|
author="flying-sheep@web.de"
|
|
license="LGPLv2+"
|
|
priority="-1"
|
|
>
|
|
<highlighting>
|
|
<list name="bools">
|
|
<item>true</item>
|
|
<item>false</item>
|
|
</list>
|
|
|
|
<contexts>
|
|
<context attribute="Error" lineEndContext="#stay" name="Toml">
|
|
<DetectSpaces attribute="Whitespace"/>
|
|
<Detect2Chars attribute="TableHeader" context="NestedTableHeader" char="[" char1="[" endRegion="Table"/>
|
|
<DetectChar attribute="TableHeader" context="TableHeader" char="[" endRegion="Table"/>
|
|
<DetectChar attribute="Assignment" context="Value" char="="/>
|
|
<DetectChar char="#" attribute="Comment" context="Comment"/>
|
|
<IncludeRules context="FindKey"/>
|
|
</context>
|
|
|
|
|
|
<context attribute="Key" lineEndContext="#stay" name="FindKey">
|
|
<DetectChar attribute="Key" char="."/>
|
|
<RegExpr attribute="Key" context="#stay" String="[A-Za-z0-9_-]+"/>
|
|
<DetectChar attribute="Key" context="QuotedKey" char="""/>
|
|
<DetectChar attribute="Key" context="LitQuotedKey" char="'"/>
|
|
</context>
|
|
|
|
|
|
<!-- table headers -->
|
|
<context attribute="TableHeader" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop" name="TableHeader">
|
|
<DetectChar attribute="TableHeader" context="#pop" char="]" beginRegion="Table"/>
|
|
<IncludeRules context="TableHeaderCommon"/>
|
|
</context>
|
|
|
|
<context attribute="TableHeader" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop" name="NestedTableHeader">
|
|
<Detect2Chars attribute="TableHeader" context="#pop" char="]" char1="]" beginRegion="Table"/>
|
|
<IncludeRules context="TableHeaderCommon"/>
|
|
</context>
|
|
|
|
<context attribute="TableHeader" lineEndContext="#pop" name="TableHeaderCommon">
|
|
<DetectSpaces attribute="Whitespace"/>
|
|
<DetectChar attribute="TableHeader" char="."/>
|
|
<RegExpr attribute="TableHeader" context="#stay" String="[A-Za-z0-9_-]+"/>
|
|
<DetectChar attribute="TableHeader" context="QuotedKey" char="""/>
|
|
<DetectChar attribute="TableHeader" context="LitQuotedKey" char="'"/>
|
|
</context>
|
|
|
|
|
|
<!-- values -->
|
|
<context attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" name="Value">
|
|
<DetectSpaces attribute="Whitespace"/>
|
|
<WordDetect attribute="Boolean true" context="#pop" String="true"/>
|
|
<WordDetect attribute="Boolean false" context="#pop" String="false"/>
|
|
<StringDetect attribute="String" context="#pop!MultilineString" String="""""/>
|
|
<DetectChar attribute="String" context="#pop!String" char="""/>
|
|
<StringDetect attribute="String" context="#pop!LitMultilineString" String="'''"/>
|
|
<DetectChar attribute="String" context="#pop!LitString" char="'"/>
|
|
<DetectChar attribute="Array" context="#pop!Array" char="["/>
|
|
<DetectChar attribute="InlineTable" context="#pop!InlineTable" char="{"/>
|
|
<RegExpr attribute="Date" context="#pop" String="&datetime;"/>
|
|
<RegExpr attribute="Int" context="#pop" String="[+-]?(0x[0-9a-fA-F]+(_[0-9a-fA-F]+)*|0o[0-7]+(_[0-7]+)*|0b[01]+(_[01]+)*|∫(?!(\.|[eE][+-]?)[0-9]))"/>
|
|
<RegExpr attribute="Float" context="#pop" String="[+-]?(∫(&frac;(&exp;)?|&exp;)|inf|nan)"/>
|
|
</context>
|
|
|
|
<context attribute="Comment" lineEndContext="#pop" name="Comment">
|
|
<DetectSpaces/>
|
|
<IncludeRules context="##Comments"/>
|
|
<DetectIdentifier/>
|
|
</context>
|
|
|
|
|
|
<!-- Quoted keys and Strings-->
|
|
<context attribute="Key" lineEndContext="#pop" name="QuotedKey">
|
|
<DetectChar attribute="Key" context="#pop" char="""/>
|
|
<IncludeRules context="FindEscapedChar"/>
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#pop" name="String">
|
|
<DetectChar attribute="String" context="#pop" char="""/>
|
|
<IncludeRules context="FindEscapedChar"/>
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#stay" name="MultilineString">
|
|
<StringDetect attribute="String" context="#pop" String="""""""/>
|
|
<StringDetect attribute="String" context="#pop" String=""""""/>
|
|
<StringDetect attribute="String" context="#pop" String="""""/>
|
|
<LineContinue attribute="Escape" context="#stay"/>
|
|
<IncludeRules context="FindEscapedChar"/>
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#pop" name="FindEscapedChar">
|
|
<RegExpr attribute="Escape" String="\\[btnfr"\\]|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}" context="#stay"/>
|
|
<RegExpr attribute="Error" String="\\[uU][0-9a-fA-F]*|\\." context="#stay"/>
|
|
</context>
|
|
|
|
<context attribute="Key" lineEndContext="#pop" name="LitQuotedKey">
|
|
<DetectChar attribute="Key" context="#pop" char="'"/>
|
|
</context>
|
|
|
|
<context attribute="LitString" lineEndContext="#pop" name="LitString">
|
|
<DetectChar attribute="String" context="#pop" char="'"/>
|
|
</context>
|
|
|
|
<context attribute="LitString" lineEndContext="#stay" name="LitMultilineString">
|
|
<StringDetect attribute="String" context="#pop" String="'''''"/>
|
|
<StringDetect attribute="String" context="#pop" String="''''"/>
|
|
<StringDetect attribute="String" context="#pop" String="'''"/>
|
|
</context>
|
|
|
|
|
|
<!-- Arrays -->
|
|
<context attribute="Array" lineEndContext="#stay" name="Array" fallthrough="true" fallthroughContext="InArray">
|
|
<DetectSpaces attribute="Whitespace"/>
|
|
<DetectChar context="#pop" attribute="Array" char="]"/>
|
|
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
|
<DetectChar context="InArray" attribute="NextEntry" char=","/>
|
|
</context>
|
|
<context attribute="Error" lineEndContext="#stay" name="InArray">
|
|
<DetectChar context="#pop#pop" attribute="Array" char="]"/>
|
|
<DetectChar context="#stay" attribute="Error" char=","/>
|
|
<DetectChar attribute="Comment" context="Comment" char="#"/>
|
|
<IncludeRules context="Value"/>
|
|
</context>
|
|
|
|
<context attribute="InlineTable" lineEndContext="#stay" name="InlineTable">
|
|
<DetectChar attribute="Assignment" context="Value" char="="/>
|
|
<DetectChar char="#" attribute="Comment" context="Comment"/>
|
|
<DetectChar context="#pop" attribute="InlineTable" char="}"/>
|
|
<DetectChar context="#stay" attribute="NextEntry" char=","/>
|
|
<IncludeRules context="FindKey"/>
|
|
</context>
|
|
|
|
</contexts>
|
|
<itemDatas>
|
|
<itemData name="Whitespace" defStyleNum="dsNormal"/>
|
|
<itemData name="Key" defStyleNum="dsDataType"/>
|
|
<itemData name="TableHeader" defStyleNum="dsKeyword"/>
|
|
<itemData name="Assignment" defStyleNum="dsOperator"/>
|
|
<itemData name="Comment" defStyleNum="dsComment"/>
|
|
|
|
<itemData name="Date" defStyleNum="dsBaseN"/>
|
|
<itemData name="Float" defStyleNum="dsFloat"/>
|
|
<itemData name="Int" defStyleNum="dsDecVal"/>
|
|
<itemData name="Boolean true" defStyleNum="dsConstant"/>
|
|
<itemData name="Boolean false" defStyleNum="dsConstant"/>
|
|
<itemData name="String" defStyleNum="dsString"/>
|
|
<itemData name="LitString" defStyleNum="dsVerbatimString"/>
|
|
<itemData name="Escape" defStyleNum="dsSpecialChar"/>
|
|
<itemData name="Array" defStyleNum="dsOperator"/>
|
|
<itemData name="InlineTable" defStyleNum="dsOperator"/>
|
|
<itemData name="NextEntry" defStyleNum="dsOperator"/>
|
|
|
|
<itemData name="Error" defStyleNum="dsError"/>
|
|
</itemDatas>
|
|
</highlighting>
|
|
<general>
|
|
<comments>
|
|
<comment name="singleLine" start="#" position="afterwhitespace"/>
|
|
</comments>
|
|
</general>
|
|
</language>
|