689 lines
45 KiB
XML
689 lines
45 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE language
|
|
[
|
|
<!ENTITY null "(?:null|Null|NULL|~)">
|
|
<!ENTITY bool "(?:y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)">
|
|
|
|
<!ENTITY int "(?:0|[\-\+]?[1-9][0-9_]*)">
|
|
<!ENTITY intOther "[\-\+]?0(?:x_*[0-9a-fA-F][0-9a-fA-F_]*|o?_*[0-7][0-7_]*|b_*[01][01_]*)"> <!-- Hex, Octal, Binary -->
|
|
<!ENTITY intBase60 "[\-\+]?[1-9][0-9_]*(?:\:[0-5]?[0-9])+">
|
|
<!ENTITY allInt "(?:&intBase60;|&intOther;|∫)">
|
|
|
|
<!ENTITY float "[\-\+]?(?:[0-9][0-9_]*\.[0-9\._]*|\._*[0-9][0-9\._]*)(?:[eE][\-\+]?[0-9]+)?">
|
|
<!ENTITY floatExp "[\-\+]?[0-9][0-9_]*[eE][\-\+]?[0-9]+">
|
|
<!ENTITY floatBase60 "[\-\+]?[0-9][0-9_]*(?:\:[0-5]?[0-9])+\.[0-9_]*">
|
|
<!ENTITY inf "[\-\+]?\.(?:inf|Inf|INF)\b">
|
|
<!ENTITY nan "\.(?:nan|NaN|NAN)\b">
|
|
<!ENTITY allFloat "(?:&float;|&floatExp;|&floatBase60;|&inf;|&nan;)">
|
|
|
|
<!ENTITY endValue "(?:\s*$|\s+#)">
|
|
<!ENTITY endValueInline "\s*[:,\[\]\{\}]">
|
|
<!ENTITY space "[ ]">
|
|
|
|
<!-- Key quoted -->
|
|
<!ENTITY keyDQ ""(?:\\.|[^"])+"\s*">
|
|
<!ENTITY keySQ "'(?:[^']|'')+'\s*">
|
|
<!-- Literal/folded operator -->
|
|
<!ENTITY literalOp "[\|>][\-\+]?">
|
|
<!-- Key after "?" or "-", used to detect literal/folded operator -->
|
|
<!ENTITY keyAfterOp "(?:[^"'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)">
|
|
|
|
<!ENTITY dataTypes "!!\S+">
|
|
<!ENTITY alias "&\S+">
|
|
<!ENTITY reference "\*\S+">
|
|
|
|
<!ENTITY dpointsHashAttrPreInline1 "[^\s"'#\-,\}\s][^:#,\}]*(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsHashAttrPreInline2 "\-(?:[^\s:#,\}][^:#,\}]*)?(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsHashAttrPreInline3 "&keyDQ;(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsHashAttrPreInline4 "&keySQ;(?=\:(?:\s|$))">
|
|
|
|
<!ENTITY dpointsListAttrPreInline1 "[^"'#\-,\]\s][^:#,\]]*(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsListAttrPreInline2 "\-(?:[^\s:#,\]][^:#,\]]*)?(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsListAttrPreInline3 "&keyDQ;(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsListAttrPreInline4 "&keySQ;(?=\:(?:\s|$))">
|
|
|
|
<!ENTITY dpointsAttrPre1 "[^"'#\-\s][^:#]*(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsAttrPre2 "\-(?:[^\s:#][^:#]*)?(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsAttrPre3 "&keyDQ;(?=\:(?:\s|$))">
|
|
<!ENTITY dpointsAttrPre4 "&keySQ;(?=\:(?:\s|$))">
|
|
|
|
<!-- Matches Yaml keys whose values are SQL statements in CartoCSS MML files. -->
|
|
<!ENTITY sqlKey "(table|layer_by_sql)">
|
|
|
|
]>
|
|
|
|
<!-- Author: Dr Orlovsky MA <maxim@orlovsky.info> //-->
|
|
<!-- Modifications (YAML 1.2), values & support for literal/folded style:
|
|
Nibaldo González S. <nibgonz@gmail.com>
|
|
These modifications are under the MIT license. //-->
|
|
<!-- Derive the MML syntax highlighting from the yaml syntax highlighting:
|
|
Lukas Sommer <sommerluk@gmail.com>
|
|
These modifications are under the MIT license. //-->
|
|
|
|
<!-- Syntax highlighting definition for CartoCSS MML, see https://github.com/mapbox/carto
|
|
CartoCSS defines two file formats: MML (Map Markup Language) and MSS (Map Stylesheet).
|
|
This file provides syntax highlighting for MML. As MML is yaml, it is derived from
|
|
the yaml syntax highlighting definition. It adds SQL highlighting for yaml content
|
|
since MML typically contains a lot of SQL code.
|
|
|
|
NOTE This file is mostly identical to yaml.xml so changes to yaml.xml can and should
|
|
be backported also to this file.
|
|
|
|
HACK There are two keys in MML files that have SQL content: “table” and
|
|
“layer_by_sql”. The good solution would be to recognize these keys and provide
|
|
SQL highlighting for their content (and only their content):
|
|
- folded/literal block: Yes
|
|
- plain string: Possibly. But special treatment for crazy
|
|
yaml rules required www.yaml-multiline.info
|
|
says: “:” cannot appear before a space or
|
|
newline, and “#” cannot appear after a space
|
|
or newline
|
|
- single-quoted/double-quoted string: No. Too complicate and too confusing: it would
|
|
require special SQL highlighting rules that
|
|
deals with the escapes.
|
|
But that could be difficult to implement. However, it seems likely that people
|
|
write SQL in folded/literal blocks, while not using folded/literal blocks for
|
|
anything else. So for simplicity we will here highlight all folded/literal blocks
|
|
as SQL and everything else not, regardless of the key.
|
|
-->
|
|
|
|
<language name="CartoCSS MML" version="2" kateversion="5.44" section="Markup"
|
|
extensions="*.mml"
|
|
author="Dr Orlovsky MA (dr.orlovsky@gmail.com), Nibaldo González (nibgonz@gmail.com), Lukas Sommer (sommerluk@gmail.com)" license="LGPL">
|
|
<highlighting>
|
|
<contexts>
|
|
<context attribute="Attribute" lineEndContext="#stay" name="normal" >
|
|
<StringDetect attribute="Document Header" context="header" String="---" column="0"/>
|
|
<RegExpr attribute="End of Document" context="EOD" String="^\.\.\.$" column="0"/>
|
|
<DetectChar attribute="Directive" context="directive" char="%" column="0"/>
|
|
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
|
|
<!-- Literal/Folded Style -->
|
|
<IncludeRules context="find-literal-block" />
|
|
|
|
<RegExpr attribute="Operator" firstNonSpace="true" context="dash" String="\-(?=\s|$)" />
|
|
<DetectChar attribute="Operator" firstNonSpace="true" context="mapping-key" char="?" />
|
|
|
|
<DetectChar attribute="Operator" firstNonSpace="true" context="list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" firstNonSpace="true" context="hash" char="{" beginRegion="Hash" />
|
|
|
|
<RegExpr attribute="Data Types" firstNonSpace="true" context="after-data" String="&dataTypes;" />
|
|
<RegExpr attribute="Alias" firstNonSpace="true" context="after-data" String="&alias;" />
|
|
<RegExpr attribute="Reference" firstNonSpace="true" context="after-data" String="&reference;" />
|
|
|
|
<RegExpr attribute="Key" context="dpoints-attribute-pre" String="&dpointsAttrPre1;|&dpointsAttrPre2;|&dpointsAttrPre3;|&dpointsAttrPre4;"/>
|
|
<RegExpr attribute="Key Points Operator" context="attribute-pre" String=":(?=\s|$)"/>
|
|
|
|
<DetectChar attribute="String" firstNonSpace="true" context="string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" firstNonSpace="true" context="stringx" char=""" beginRegion="String" />
|
|
<IncludeRules context="values-firstnonspace" />
|
|
<DetectSpaces/>
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#pop" name="mapping-key" fallthrough="true" fallthroughContext="#pop">
|
|
<RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces />
|
|
<RegExpr attribute="Operator" context="#pop!dash" String="\-(?=\s|$)" />
|
|
<RegExpr attribute="Data Types" context="#pop!after-data" String="&dataTypes;" />
|
|
<RegExpr attribute="Alias" context="#pop!after-data" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="#pop!after-data" String="&reference;" />
|
|
|
|
<DetectChar attribute="Operator" context="#pop!list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" context="#pop!hash" char="{" beginRegion="Hash" />
|
|
<DetectChar attribute="String" context="#pop!string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="#pop!stringx" char=""" beginRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#pop" name="dash" fallthrough="true" fallthroughContext="#pop">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces/>
|
|
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
|
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
|
<IncludeRules context="values" />
|
|
<DetectChar attribute="Operator" context="#pop!mapping-key" char="?" />
|
|
<RegExpr attribute="Operator" context="#stay" String="\-(?=\s|$)" />
|
|
|
|
<DetectChar attribute="Operator" context="#pop!list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" context="#pop!hash" char="{" beginRegion="Hash" />
|
|
<DetectChar attribute="String" context="#pop!string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="#pop!stringx" char=""" beginRegion="String" />
|
|
</context>
|
|
|
|
<!-- Highlight lists, hashes and strings after a data type, reference or alias -->
|
|
<context attribute="Normal Text" lineEndContext="#pop" name="after-data" fallthrough="true" fallthroughContext="#pop">
|
|
<RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces />
|
|
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
|
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
|
|
|
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
|
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="Document Header" lineEndContext="#pop" name="header">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<RegExpr attribute="Literal/Folded Operator" context="header-literal-operator" String="\s&literalOp;(?=&endValue;)" lookAhead="true" />
|
|
</context>
|
|
<context attribute="Document Header" lineEndContext="#pop#pop" name="header-literal-operator" fallthrough="true" fallthroughContext="#pop">
|
|
<DetectSpaces />
|
|
<RegExpr attribute="Literal/Folded Operator" context="#pop#pop!literal-block-simple" String="&literalOp;" beginRegion="Literal" />
|
|
</context>
|
|
|
|
<context attribute="End of Document" lineEndContext="#stay" name="EOD">
|
|
</context>
|
|
|
|
<context attribute="Directive" lineEndContext="#pop" name="directive">
|
|
</context>
|
|
|
|
<context attribute="Attribute" lineEndContext="#pop#pop" name="attribute">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
</context>
|
|
|
|
<context attribute="Attribute" lineEndContext="#stay" name="list-attribute-inline">
|
|
<AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",]" />
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
</context>
|
|
<context attribute="Attribute" lineEndContext="#stay" name="hash-attribute-inline">
|
|
<AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",}" />
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
</context>
|
|
|
|
<!-- Attribute -->
|
|
<context attribute="Attribute" lineEndContext="#pop" name="dpoints-attribute-pre" fallthrough="true" fallthroughContext="#pop!attribute-pre">
|
|
<DetectChar attribute="Key Points Operator" context="#pop!attribute-pre" char=":" /> <!-- Highlight two points after Key -->
|
|
</context>
|
|
<context attribute="Attribute" lineEndContext="#pop" name="attribute-pre" fallthrough="true" fallthroughContext="attribute">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces/>
|
|
<DetectChar attribute="Operator" context="#stay" char="?" />
|
|
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
|
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
|
<DetectChar attribute="String" context="attribute-string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="attribute-stringx" char=""" beginRegion="String" />
|
|
<RegExpr attribute="Alias" context="#stay" String="&alias;(?=\s+[\[\{])" />
|
|
<RegExpr attribute="Reference" context="#stay" String="&reference;(?=\s+[\[\{])" />
|
|
<RegExpr attribute="Alias" context="attribute" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="attribute" String="&reference;" />
|
|
<IncludeRules context="values" />
|
|
<RegExpr attribute="Literal/Folded Operator" context="#stay" String="&literalOp;(?=&endValue;)" />
|
|
</context>
|
|
|
|
<context attribute="Attribute" lineEndContext="#pop" name="default-attribute-pre-inline">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces/>
|
|
|
|
<DetectChar attribute="Operator" context="#stay" char="?" />
|
|
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
|
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
|
<DetectChar attribute="String" context="attribute-string-inline" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="attribute-stringx-inline" char=""" beginRegion="String" />
|
|
<RegExpr attribute="Alias" context="#stay" String="&alias;(?=\s+[\[\{])" />
|
|
<RegExpr attribute="Reference" context="#stay" String="&reference;(?=\s+[\[\{])" />
|
|
</context>
|
|
|
|
<!-- Attribute Inline, Within List -->
|
|
<context attribute="Attribute" lineEndContext="#pop" name="dpoints-list-attribute-pre-inline" fallthrough="true" fallthroughContext="#pop!list-attribute-pre-inline">
|
|
<DetectChar attribute="Key Points Operator" context="#pop!list-attribute-pre-inline" char=":" /> <!-- Highlight two points after Key -->
|
|
</context>
|
|
<context attribute="Attribute" lineEndContext="#pop" name="list-attribute-pre-inline" fallthrough="true" fallthroughContext="list-attribute-inline">
|
|
<IncludeRules context="default-attribute-pre-inline" />
|
|
<RegExpr attribute="Alias" context="list-attribute-inline" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="list-attribute-inline" String="&reference;" />
|
|
|
|
<AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",]" />
|
|
<IncludeRules context="values-inline" />
|
|
</context>
|
|
|
|
<!-- Attribute Inline, Within Hash -->
|
|
<context attribute="Attribute" lineEndContext="#pop" name="dpoints-hash-attribute-pre-inline" fallthrough="true" fallthroughContext="#pop!hash-attribute-pre-inline">
|
|
<DetectChar attribute="Key Points Operator" context="#pop!hash-attribute-pre-inline" char=":" /> <!-- Highlight two points after Key -->
|
|
</context>
|
|
<context attribute="Attribute" lineEndContext="#pop" name="hash-attribute-pre-inline" fallthrough="true" fallthroughContext="hash-attribute-inline">
|
|
<IncludeRules context="default-attribute-pre-inline" />
|
|
<RegExpr attribute="Alias" context="hash-attribute-inline" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="hash-attribute-inline" String="&reference;" />
|
|
|
|
<AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",}" />
|
|
<IncludeRules context="values-inline" />
|
|
</context>
|
|
|
|
<!-- List -->
|
|
<!-- Context "find-values-list" highlights values and then sends to "list-element" -->
|
|
<context attribute="List" lineEndContext="#stay" name="list" fallthrough="true" fallthroughContext="#pop!find-values-list" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces />
|
|
<DetectChar attribute="Operator" context="#pop!find-values-list" char="?" />
|
|
</context>
|
|
<context attribute="List" lineEndContext="#stay" name="list-element" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
|
|
<DetectChar attribute="Operator" context="#pop" char="]" endRegion="List" />
|
|
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
|
|
|
<RegExpr attribute="Key" context="dpoints-list-attribute-pre-inline" String="&dpointsListAttrPreInline1;|&dpointsListAttrPreInline2;|&dpointsListAttrPreInline3;|&dpointsListAttrPreInline4;"/>
|
|
<RegExpr attribute="Key Points Operator" context="list-attribute-pre-inline" String=":(?=\s|$)" firstNonSpace="true" />
|
|
|
|
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
|
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
|
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
|
|
|
<DetectChar attribute="Operator" context="#pop!list" char="," />
|
|
<IncludeRules context="values-list" />
|
|
</context>
|
|
|
|
<!-- Hash -->
|
|
<context attribute="Hash" lineEndContext="#stay" name="hash" fallthrough="true" fallthroughContext="#pop!hash-element" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces />
|
|
<DetectChar attribute="Operator" context="#pop!hash-element" char="?" />
|
|
</context>
|
|
<context attribute="Hash" lineEndContext="#stay" name="hash-element" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces/>
|
|
|
|
<RegExpr attribute="Key" context="dpoints-hash-attribute-pre-inline" String="&dpointsHashAttrPreInline1;|&dpointsHashAttrPreInline2;|&dpointsHashAttrPreInline3;|&dpointsHashAttrPreInline4;"/>
|
|
<RegExpr attribute="Key Points Operator" context="hash-attribute-pre-inline" String=":(?=\s|$)"/>
|
|
|
|
<DetectChar attribute="Operator" context="#pop" char="}" endRegion="Hash" />
|
|
<DetectChar attribute="Operator" context="#pop!hash" char="," />
|
|
|
|
<!-- This improves highlighting in keys with multiple lines -->
|
|
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
|
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
|
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
|
</context>
|
|
|
|
<!-- Strings -->
|
|
<context attribute="String" lineEndContext="#stay" name="attribute-string" noIndentationBasedFolding="true">
|
|
<DetectIdentifier />
|
|
<IncludeRules context="escaped-char-singleq" />
|
|
<DetectChar attribute="String" context="attribute-end" char="'" endRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#stay" name="attribute-stringx" noIndentationBasedFolding="true">
|
|
<DetectIdentifier />
|
|
<IncludeRules context="escaped-char-doubleq" />
|
|
<DetectChar attribute="String" context="attribute-end" char=""" endRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#stay" name="attribute-string-inline" noIndentationBasedFolding="true">
|
|
<DetectIdentifier />
|
|
<IncludeRules context="escaped-char-singleq" />
|
|
<DetectChar attribute="String" context="attribute-end-inline" char="'" endRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#stay" name="attribute-stringx-inline" noIndentationBasedFolding="true">
|
|
<DetectIdentifier />
|
|
<IncludeRules context="escaped-char-doubleq" />
|
|
<DetectChar attribute="String" context="attribute-end-inline" char=""" endRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
|
</context>
|
|
|
|
<context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end-inline">
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
|
|
<DetectSpaces attribute="Normal Text" context="#stay"/>
|
|
<AnyChar context="#pop#pop#pop" lookAhead="true" String="}],"/>
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#stay" name="string" noIndentationBasedFolding="true">
|
|
<DetectIdentifier />
|
|
<IncludeRules context="escaped-char-singleq" />
|
|
<DetectChar attribute="String" context="#pop" char="'" endRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="String" lineEndContext="#stay" name="stringx" noIndentationBasedFolding="true">
|
|
<DetectIdentifier />
|
|
<IncludeRules context="escaped-char-doubleq" />
|
|
<DetectChar attribute="String" context="#pop" char=""" endRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-doubleq">
|
|
<RegExpr attribute="Escaped Character" context="#stay" String="\\(?:[\s0abtnvfre"/\\N_Lp]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8})"/>
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-singleq">
|
|
<Detect2Chars attribute="Escaped Character" context="#stay" char="'" char1="'" />
|
|
</context>
|
|
|
|
<context attribute="Comment" lineEndContext="#pop" name="comment">
|
|
<DetectSpaces />
|
|
<IncludeRules context="##Comments" />
|
|
</context>
|
|
|
|
<!-- Values -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="values">
|
|
<RegExpr attribute="Null" context="#stay" String="&null;(?=&endValue;)"/>
|
|
<RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValue;)"/>
|
|
<RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValue;)"/>
|
|
<RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValue;)"/>
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="values-firstnonspace">
|
|
<RegExpr attribute="Null" firstNonSpace="true" context="#stay" String="&null;(?=&endValue;)"/>
|
|
<RegExpr attribute="Boolean" firstNonSpace="true" context="#stay" String="&bool;(?=&endValue;)"/>
|
|
<RegExpr attribute="Float" firstNonSpace="true" context="#stay" String="&allFloat;(?=&endValue;)"/>
|
|
<RegExpr attribute="Integer" firstNonSpace="true" context="#stay" String="&allInt;(?=&endValue;)"/>
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="values-inline">
|
|
<RegExpr attribute="Null" context="#stay" String="&null;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValueInline;|&endValue;)"/>
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="values-list">
|
|
<RegExpr attribute="Null" context="#stay" String="(?:\s|^)&null;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Boolean" context="#stay" String="(?:\s|^)&bool;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Float" context="#stay" String="(?:\s|^)&allFloat;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Integer" context="#stay" String="(?:\s|^)&allInt;(?=&endValueInline;|&endValue;)"/>
|
|
</context>
|
|
<!-- If the value is found immediately at the beginning of the list item -->
|
|
<context attribute="Normal Text" lineEndContext="#pop!list-element" name="find-values-list" fallthrough="true" fallthroughContext="#pop!list-element">
|
|
<RegExpr attribute="Null" context="#pop!list-element" String="&null;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Boolean" context="#pop!list-element" String="&bool;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Float" context="#pop!list-element" String="&allFloat;(?=&endValueInline;|&endValue;)"/>
|
|
<RegExpr attribute="Integer" context="#pop!list-element" String="&allInt;(?=&endValueInline;|&endValue;)"/>
|
|
</context>
|
|
|
|
<!-- Literal/Folded Style: http://yaml.org/spec/1.2/spec.html#id2795688 -->
|
|
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="find-literal-block">
|
|
<!-- Do not allow indentation with tabs: -->
|
|
<RegExpr attribute="Alert" context="#stay" column="0"
|
|
String="^&space;*\t+\s*(?=(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" />
|
|
|
|
<!-- CASE 1: The literal/folded operator is the first character of a line.
|
|
The text after a space is considered literal.
|
|
Ex:
|
|
> |
|
|
> ^Start the literal text
|
|
-->
|
|
<RegExpr attribute="Literal/Folded Operator" context="literal-block-simple" column="0"
|
|
String="^&literalOp;(?=&endValue;)" beginRegion="Literal" />
|
|
|
|
<!-- CASE 2: Only the literal/folded operator is present in a line, after a space (the indentation
|
|
is captured). The text with the same indentation of the operator will be highlighted as literal.
|
|
Ex:
|
|
> key:
|
|
> |
|
|
> ^Start the literal text
|
|
|
|
However, in this case, the correct way is to use the indentation of the block, not the
|
|
indentation of the the operator. The problem is that it is difficult to capture.
|
|
> key1:
|
|
> key2:
|
|
> key3:
|
|
> |
|
|
> ^Block indentation (correct literal text)
|
|
-->
|
|
<RegExpr attribute="Literal/Folded Operator" context="literal-block-only-operator" column="0"
|
|
String="^(&space;+)&literalOp;(?=&endValue;)" beginRegion="Literal" />
|
|
|
|
<!-- CASE 3: There is a Key before the literal/folded operator (Key indentation is captured).
|
|
The text with the Key's indentation plus a space is considered literal.
|
|
Ex:
|
|
> key: |
|
|
> ^Start the literal text
|
|
> key: !!type >-
|
|
> ^Start the folded text
|
|
-->
|
|
<RegExpr attribute="Key Points Operator" context="literal-block-key" column="0"
|
|
String="^(&space;*)\:(?=\s+(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" />
|
|
<RegExpr attribute="Key" context="literal-block-key" column="0"
|
|
String="^(&space;*)(?:[^"'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)(?=\:\s+(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" />
|
|
|
|
<!-- CASE 4: Is there an operator "?" or "-" at the beginning of the line.
|
|
NOTE: Nested characters "-" and "?" are considered as part of the indentation.
|
|
Therefore, the indentation of the Key or the last operator "?" or "-" is captured.
|
|
Ex:
|
|
> ? |
|
|
> ^Start the literal Text
|
|
> ? - - |
|
|
> ^Start the literal text
|
|
> - Key: |
|
|
> ^Start the literal text
|
|
> ? - - - - Key: |
|
|
> ^Start the literal text
|
|
-->
|
|
<RegExpr context="start-literal-block-withdash" lookAhead="true" column="0"
|
|
String="^&space;*(?:\?&space;*|\-&space;+){1,6}(?:(?:&keyDQ;|&keySQ;|[^#\-\?\s]|\-[^\s#])(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?)?&literalOp;&endValue;" />
|
|
|
|
<!-- CASE 5: Literal/folded operator after a data type or other content.
|
|
Ex:
|
|
> !!type |
|
|
> ^Start the literal text
|
|
> key1:
|
|
> key2:
|
|
> !!type |
|
|
> ^Start the literal text
|
|
-->
|
|
<RegExpr context="start-literal-block-other" lookAhead="true" column="0"
|
|
String="^&space;*(?:(?:[&\*]|!!)\S+\s+)+&literalOp;&endValue;" />
|
|
</context>
|
|
|
|
<!-- If the line with the literal operator starts with the "-" or "?" operator.
|
|
NOTE: The indentation capture is limited to 6 nested operators. -->
|
|
<context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-withdash" noIndentationBasedFolding="true">
|
|
<!-- With Key: Capture the Key indentation -->
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s2" String="^(&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s7" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/>
|
|
<!-- Without Key: Capture the indentation of the last operator "?" or "-" -->
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s1" String="^(&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s2" String="^(&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
|
<RegExpr attribute="Operator" context="#pop!literal-block-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/>
|
|
</context>
|
|
<!-- Capture the indentation of data type, reference or alias -->
|
|
<context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-other" noIndentationBasedFolding="true">
|
|
<!-- The text with the same indentation will be considered literal -->
|
|
<RegExpr attribute="Data Types" context="#pop!literal-block-after-data" String="^(&space;+)&dataTypes;" column="0" />
|
|
<RegExpr attribute="Alias" context="#pop!literal-block-after-data" String="^(&space;+)&alias;" column="0" />
|
|
<RegExpr attribute="Reference" context="#pop!literal-block-after-data" String="^(&space;+)&reference;" column="0" />
|
|
<!-- The text after a space will be considered literal (empty text is captured) -->
|
|
<RegExpr attribute="Data Types" context="#pop!literal-block-withdash-s1" String="^()&dataTypes;" column="0" />
|
|
<RegExpr attribute="Alias" context="#pop!literal-block-withdash-s1" String="^()&alias;" column="0" />
|
|
<RegExpr attribute="Reference" context="#pop!literal-block-withdash-s1" String="^()&reference;" column="0" />
|
|
</context>
|
|
|
|
<!-- Highlight data/attribute before the literal operator (Note that if there is a line
|
|
break within a string or bracket, the literal line will not be highlighted). -->
|
|
<context attribute="Attribute" lineEndContext="#pop#pop" name="before-literal-operator" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Operator" context="#pop!end-literal-operator" String="&literalOp;(?=&endValue;)" beginRegion="Literal" />
|
|
|
|
<RegExpr attribute="Error" context="#pop#pop" String="(?:[&\*]|!!)\S*&literalOp;(?=&endValue;)" />
|
|
<RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" />
|
|
<RegExpr attribute="Alias" context="#stay" String="&alias;" />
|
|
<RegExpr attribute="Reference" context="#stay" String="&reference;" />
|
|
|
|
<DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
|
|
<DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
|
|
<DetectChar attribute="String" context="string" char="'" beginRegion="String" />
|
|
<DetectChar attribute="String" context="stringx" char=""" beginRegion="String" />
|
|
</context>
|
|
|
|
<context attribute="Normal Text" lineEndContext="#pop#pop" name="dpoints-key-before-literal-operator" fallthrough="true" fallthroughContext="#pop#pop" noIndentationBasedFolding="true">
|
|
<DetectChar attribute="Key Points Operator" context="#pop!key-before-literal-operator" char=":" />
|
|
</context>
|
|
<context attribute="Attribute" lineEndContext="#pop#pop" name="key-before-literal-operator" noIndentationBasedFolding="true">
|
|
<IncludeRules context="before-literal-operator" />
|
|
<DetectChar attribute="Operator" context="#stay" char="?" />
|
|
</context>
|
|
<context attribute="Attribute" lineEndContext="#pop" name="end-literal-operator" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" />
|
|
</context>
|
|
|
|
<!-- Common rules for the content of the literal blocks -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-default" noIndentationBasedFolding="true">
|
|
<!-- End literal/folded block -->
|
|
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
|
<!-- Find literal/folded operator -->
|
|
<RegExpr context="before-literal-operator" String="\S" lookAhead="true" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#pop" name="literal-block-key-default" noIndentationBasedFolding="true">
|
|
<!-- End literal/folded block -->
|
|
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
|
<!-- Detect Key before the literal/folded operator -->
|
|
<RegExpr attribute="Key" context="dpoints-key-before-literal-operator" String="&keyAfterOp;(?=:\s)" />
|
|
<RegExpr attribute="Normal Text" context="#pop" String="\S" lookAhead="true" endRegion="Literal" />
|
|
</context>
|
|
|
|
<!-- Content of the literal block: -->
|
|
|
|
<!-- If the literal operator is starting the line (after a space, use block indentation) -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-only-operator" dynamic="true" noIndentationBasedFolding="true">
|
|
<StringDetect attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="%1" dynamic="true" column="0" />
|
|
|
|
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s)#" />
|
|
<RegExpr context="#pop" String="\S" lookAhead="true" endRegion="Literal" />
|
|
</context>
|
|
<!-- If the literal operator is the first character of a line (or after header) -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-simple" noIndentationBasedFolding="true">
|
|
<DetectSpaces attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" column="0" />
|
|
|
|
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
|
<RegExpr attribute="Comment" context="comment" String="(?:^|\s)#" />
|
|
</context>
|
|
<!-- If there is a data type or other content before the liretal operator (use block indentation) -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-after-data" dynamic="true" noIndentationBasedFolding="true">
|
|
<StringDetect attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="%1" dynamic="true" column="0" />
|
|
|
|
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
|
<RegExpr context="before-literal-operator" String="\S" lookAhead="true" />
|
|
</context>
|
|
<!-- If there is a key before the literal operator -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1\s" dynamic="true" column="0" />
|
|
|
|
<RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" />
|
|
<!-- Attribute of the Key (the Key was previously highlighted) -->
|
|
<RegExpr attribute="Key Points Operator" context="key-before-literal-operator" String=":\s" />
|
|
<RegExpr context="key-before-literal-operator" String="\S" lookAhead="true" />
|
|
</context>
|
|
<context attribute="Literal/Folded Block" lineEndContext="#pop" name="injected-sql" noIndentationBasedFolding="true">
|
|
<!-- CartoCSS is a preprocessor for Mapnik, which supports exclusivly
|
|
PostgreSQL (with the PostGIS extension) as database, therefore we
|
|
choose the Postgre flavor of SQL syntax hightlighting here.
|
|
The includeAttrib="true" in <IncludeRules> will override
|
|
the attribute="Literal/Folded Block" of the current <context>
|
|
with attribute="WHATEVER" of the default <context> of
|
|
"##SQL (PostgreSQL)". This ensures that we get the identical
|
|
highlighting as in SQL even for default text that has no special
|
|
rule in the “SQL (PostgreSQL)” syntax highlighting. -->
|
|
<IncludeRules context="##SQL (PostgreSQL)" includeAttrib="true"/>
|
|
</context>
|
|
|
|
<!-- If there are dashes/"?" before the literal operator -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s1" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s2" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2&space;\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s3" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3&space;{2}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s4" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4&space;{3}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s5" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5&space;{4}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s6" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6&space;{5}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-default" />
|
|
</context>
|
|
<!-- If there are dashes/"?" and a Key before the literal operator -->
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s2" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2&space;\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-key-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s3" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3&space;{2}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-key-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s4" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4&space;{3}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-key-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s5" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5&space;{4}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-key-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s6" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6&space;{5}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-key-default" />
|
|
</context>
|
|
<context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s7" dynamic="true" noIndentationBasedFolding="true">
|
|
<RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6%7&space;{6}\s" dynamic="true" column="0" />
|
|
<IncludeRules context="literal-block-key-default" />
|
|
</context>
|
|
</contexts>
|
|
|
|
<itemDatas>
|
|
<itemData name="Normal Text" defStyleNum="dsAttribute" spellChecking="false" />
|
|
<itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false" />
|
|
<itemData name="List" defStyleNum="dsAttribute" spellChecking="false" />
|
|
<itemData name="Hash" defStyleNum="dsAttribute" spellChecking="false" />
|
|
<itemData name="Comment" defStyleNum="dsComment" />
|
|
<itemData name="End of Document" defStyleNum="dsComment" />
|
|
<itemData name="Document Header" defStyleNum="dsPreprocessor" spellChecking="false" />
|
|
<itemData name="Data Types" defStyleNum="dsOthers" spellChecking="false" />
|
|
<itemData name="Alias" defStyleNum="dsOthers" spellChecking="false" />
|
|
<itemData name="Reference" defStyleNum="dsOthers" spellChecking="false" />
|
|
<itemData name="Key" defStyleNum="dsFunction" bold="1" spellChecking="false" />
|
|
<itemData name="Directive" defStyleNum="dsPreprocessor" spellChecking="false" />
|
|
<itemData name="Key Points Operator" defStyleNum="dsKeyword" spellChecking="false" />
|
|
<itemData name="Operator" defStyleNum="dsKeyword" spellChecking="false" />
|
|
<itemData name="String" defStyleNum="dsString" spellChecking="false" />
|
|
<itemData name="Escaped Character" defStyleNum="dsSpecialChar" spellChecking="false" />
|
|
<itemData name="Literal/Folded Operator" defStyleNum="dsChar" spellChecking="false" bold="1" />
|
|
<itemData name="Literal/Folded Block" defStyleNum="dsNormal" spellChecking="false" />
|
|
<itemData name="Null" defStyleNum="dsChar" spellChecking="false" />
|
|
<itemData name="Boolean" defStyleNum="dsChar" spellChecking="false" />
|
|
<itemData name="Integer" defStyleNum="dsDecVal" spellChecking="false" />
|
|
<itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
|
|
<itemData name="Error" defStyleNum="dsError" spellChecking="false" />
|
|
<itemData name="Alert" defStyleNum="dsAlert" backgroundColor="#EF9A9A" 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"/>
|
|
</general>
|
|
</language>
|
|
<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
|