Warning, /frameworks/syntax-highlighting/data/syntax/carto-css-mml.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language 0003 [ 0004 <!ENTITY null "(?:null|Null|NULL|~)"> 0005 <!ENTITY bool "(?:y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)"> 0006 0007 <!ENTITY int "(?:0|[\-\+]?[1-9][0-9_]*)"> 0008 <!ENTITY intOther "[\-\+]?0(?:x_*[0-9a-fA-F][0-9a-fA-F_]*|o?_*[0-7][0-7_]*|b_*[01][01_]*)"> <!-- Hex, Octal, Binary --> 0009 <!ENTITY intBase60 "[\-\+]?[1-9][0-9_]*(?:\:[0-5]?[0-9])+"> 0010 <!ENTITY allInt "(?:&intBase60;|&intOther;|∫)"> 0011 0012 <!ENTITY float "[\-\+]?(?:[0-9][0-9_]*\.[0-9\._]*|\._*[0-9][0-9\._]*)(?:[eE][\-\+]?[0-9]+)?"> 0013 <!ENTITY floatExp "[\-\+]?[0-9][0-9_]*[eE][\-\+]?[0-9]+"> 0014 <!ENTITY floatBase60 "[\-\+]?[0-9][0-9_]*(?:\:[0-5]?[0-9])+\.[0-9_]*"> 0015 <!ENTITY inf "[\-\+]?\.(?:inf|Inf|INF)\b"> 0016 <!ENTITY nan "\.(?:nan|NaN|NAN)\b"> 0017 <!ENTITY allFloat "(?:&float;|&floatExp;|&floatBase60;|&inf;|&nan;)"> 0018 0019 <!ENTITY endValue "(?:\s*$|\s+#)"> 0020 <!ENTITY endValueInline "\s*[:,\[\]\{\}]"> 0021 <!ENTITY space "[ ]"> 0022 0023 <!-- Key quoted --> 0024 <!ENTITY keyDQ ""(?:\\.|[^"])+"\s*"> 0025 <!ENTITY keySQ "'(?:[^']|'')+'\s*"> 0026 <!-- Literal/folded operator --> 0027 <!ENTITY literalOp "[\|>][\-\+]?"> 0028 <!-- Key after "?" or "-", used to detect literal/folded operator --> 0029 <!ENTITY keyAfterOp "(?:[^"'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)"> 0030 0031 <!ENTITY dataTypes "!!\S+"> 0032 <!ENTITY alias "&\S+"> 0033 <!ENTITY reference "\*\S+"> 0034 0035 <!ENTITY dpointsHashAttrPreInline1 "[^\s"'#\-,\}\s][^:#,\}]*(?=\:(?:\s|$))"> 0036 <!ENTITY dpointsHashAttrPreInline2 "\-(?:[^\s:#,\}][^:#,\}]*)?(?=\:(?:\s|$))"> 0037 <!ENTITY dpointsHashAttrPreInline3 "&keyDQ;(?=\:(?:\s|$))"> 0038 <!ENTITY dpointsHashAttrPreInline4 "&keySQ;(?=\:(?:\s|$))"> 0039 0040 <!ENTITY dpointsListAttrPreInline1 "[^"'#\-,\]\s][^:#,\]]*(?=\:(?:\s|$))"> 0041 <!ENTITY dpointsListAttrPreInline2 "\-(?:[^\s:#,\]][^:#,\]]*)?(?=\:(?:\s|$))"> 0042 <!ENTITY dpointsListAttrPreInline3 "&keyDQ;(?=\:(?:\s|$))"> 0043 <!ENTITY dpointsListAttrPreInline4 "&keySQ;(?=\:(?:\s|$))"> 0044 0045 <!ENTITY dpointsAttrPre1 "[^"'#\-\s][^:#]*(?=\:(?:\s|$))"> 0046 <!ENTITY dpointsAttrPre2 "\-(?:[^\s:#][^:#]*)?(?=\:(?:\s|$))"> 0047 <!ENTITY dpointsAttrPre3 "&keyDQ;(?=\:(?:\s|$))"> 0048 <!ENTITY dpointsAttrPre4 "&keySQ;(?=\:(?:\s|$))"> 0049 0050 <!-- Matches Yaml keys whose values are SQL statements in CartoCSS MML files. --> 0051 <!ENTITY sqlKey "(table|layer_by_sql)"> 0052 0053 ]> 0054 0055 <!-- Author: Dr Orlovsky MA <maxim@orlovsky.info> //--> 0056 <!-- Modifications (YAML 1.2), values & support for literal/folded style: 0057 Nibaldo González S. <nibgonz@gmail.com> 0058 These modifications are under the MIT license. //--> 0059 <!-- Derive the MML syntax highlighting from the yaml syntax highlighting: 0060 Lukas Sommer <sommerluk@gmail.com> 0061 These modifications are under the MIT license. //--> 0062 0063 <!-- Syntax highlighting definition for CartoCSS MML, see https://github.com/mapbox/carto 0064 CartoCSS defines two file formats: MML (Map Markup Language) and MSS (Map Stylesheet). 0065 This file provides syntax highlighting for MML. As MML is yaml, it is derived from 0066 the yaml syntax highlighting definition. It adds SQL highlighting for yaml content 0067 since MML typically contains a lot of SQL code. 0068 0069 NOTE This file is mostly identical to yaml.xml so changes to yaml.xml can and should 0070 be backported also to this file. 0071 0072 HACK There are two keys in MML files that have SQL content: “table” and 0073 “layer_by_sql”. The good solution would be to recognize these keys and provide 0074 SQL highlighting for their content (and only their content): 0075 - folded/literal block: Yes 0076 - plain string: Possibly. But special treatment for crazy 0077 yaml rules required www.yaml-multiline.info 0078 says: “:” cannot appear before a space or 0079 newline, and “#” cannot appear after a space 0080 or newline 0081 - single-quoted/double-quoted string: No. Too complicate and too confusing: it would 0082 require special SQL highlighting rules that 0083 deals with the escapes. 0084 But that could be difficult to implement. However, it seems likely that people 0085 write SQL in folded/literal blocks, while not using folded/literal blocks for 0086 anything else. So for simplicity we will here highlight all folded/literal blocks 0087 as SQL and everything else not, regardless of the key. 0088 --> 0089 0090 <language name="CartoCSS MML" version="2" kateversion="5.44" section="Markup" 0091 extensions="*.mml" 0092 author="Dr Orlovsky MA (dr.orlovsky@gmail.com), Nibaldo González (nibgonz@gmail.com), Lukas Sommer (sommerluk@gmail.com)" license="LGPL"> 0093 <highlighting> 0094 <contexts> 0095 <context attribute="Attribute" lineEndContext="#stay" name="normal" > 0096 <StringDetect attribute="Document Header" context="header" String="---" column="0"/> 0097 <RegExpr attribute="End of Document" context="EOD" String="^\.\.\.$" column="0"/> 0098 <DetectChar attribute="Directive" context="directive" char="%" column="0"/> 0099 0100 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0101 0102 <!-- Literal/Folded Style --> 0103 <IncludeRules context="find-literal-block" /> 0104 0105 <RegExpr attribute="Operator" firstNonSpace="true" context="dash" String="\-(?=\s|$)" /> 0106 <DetectChar attribute="Operator" firstNonSpace="true" context="mapping-key" char="?" /> 0107 0108 <DetectChar attribute="Operator" firstNonSpace="true" context="list" char="[" beginRegion="List" /> 0109 <DetectChar attribute="Operator" firstNonSpace="true" context="hash" char="{" beginRegion="Hash" /> 0110 0111 <RegExpr attribute="Data Types" firstNonSpace="true" context="after-data" String="&dataTypes;" /> 0112 <RegExpr attribute="Alias" firstNonSpace="true" context="after-data" String="&alias;" /> 0113 <RegExpr attribute="Reference" firstNonSpace="true" context="after-data" String="&reference;" /> 0114 0115 <RegExpr attribute="Key" context="dpoints-attribute-pre" String="&dpointsAttrPre1;|&dpointsAttrPre2;|&dpointsAttrPre3;|&dpointsAttrPre4;"/> 0116 <RegExpr attribute="Key Points Operator" context="attribute-pre" String=":(?=\s|$)"/> 0117 0118 <DetectChar attribute="String" firstNonSpace="true" context="string" char="'" beginRegion="String" /> 0119 <DetectChar attribute="String" firstNonSpace="true" context="stringx" char=""" beginRegion="String" /> 0120 <IncludeRules context="values-firstnonspace" /> 0121 <DetectSpaces/> 0122 </context> 0123 0124 <context attribute="Normal Text" lineEndContext="#pop" name="mapping-key" fallthrough="true" fallthroughContext="#pop"> 0125 <RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" /> 0126 <DetectSpaces /> 0127 <RegExpr attribute="Operator" context="#pop!dash" String="\-(?=\s|$)" /> 0128 <RegExpr attribute="Data Types" context="#pop!after-data" String="&dataTypes;" /> 0129 <RegExpr attribute="Alias" context="#pop!after-data" String="&alias;" /> 0130 <RegExpr attribute="Reference" context="#pop!after-data" String="&reference;" /> 0131 0132 <DetectChar attribute="Operator" context="#pop!list" char="[" beginRegion="List" /> 0133 <DetectChar attribute="Operator" context="#pop!hash" char="{" beginRegion="Hash" /> 0134 <DetectChar attribute="String" context="#pop!string" char="'" beginRegion="String" /> 0135 <DetectChar attribute="String" context="#pop!stringx" char=""" beginRegion="String" /> 0136 </context> 0137 0138 <context attribute="Normal Text" lineEndContext="#pop" name="dash" fallthrough="true" fallthroughContext="#pop"> 0139 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0140 <DetectSpaces/> 0141 <RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" /> 0142 <RegExpr attribute="Alias" context="#stay" String="&alias;" /> 0143 <RegExpr attribute="Reference" context="#stay" String="&reference;" /> 0144 <IncludeRules context="values" /> 0145 <DetectChar attribute="Operator" context="#pop!mapping-key" char="?" /> 0146 <RegExpr attribute="Operator" context="#stay" String="\-(?=\s|$)" /> 0147 0148 <DetectChar attribute="Operator" context="#pop!list" char="[" beginRegion="List" /> 0149 <DetectChar attribute="Operator" context="#pop!hash" char="{" beginRegion="Hash" /> 0150 <DetectChar attribute="String" context="#pop!string" char="'" beginRegion="String" /> 0151 <DetectChar attribute="String" context="#pop!stringx" char=""" beginRegion="String" /> 0152 </context> 0153 0154 <!-- Highlight lists, hashes and strings after a data type, reference or alias --> 0155 <context attribute="Normal Text" lineEndContext="#pop" name="after-data" fallthrough="true" fallthroughContext="#pop"> 0156 <RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" /> 0157 <DetectSpaces /> 0158 <RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" /> 0159 <RegExpr attribute="Alias" context="#stay" String="&alias;" /> 0160 <RegExpr attribute="Reference" context="#stay" String="&reference;" /> 0161 0162 <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" /> 0163 <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" /> 0164 <DetectChar attribute="String" context="string" char="'" beginRegion="String" /> 0165 <DetectChar attribute="String" context="stringx" char=""" beginRegion="String" /> 0166 </context> 0167 0168 <context attribute="Document Header" lineEndContext="#pop" name="header"> 0169 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0170 <RegExpr attribute="Literal/Folded Operator" context="header-literal-operator" String="\s&literalOp;(?=&endValue;)" lookAhead="true" /> 0171 </context> 0172 <context attribute="Document Header" lineEndContext="#pop#pop" name="header-literal-operator" fallthrough="true" fallthroughContext="#pop"> 0173 <DetectSpaces /> 0174 <RegExpr attribute="Literal/Folded Operator" context="#pop#pop!literal-block-simple" String="&literalOp;" beginRegion="Literal" /> 0175 </context> 0176 0177 <context attribute="End of Document" lineEndContext="#stay" name="EOD"> 0178 </context> 0179 0180 <context attribute="Directive" lineEndContext="#pop" name="directive"> 0181 </context> 0182 0183 <context attribute="Attribute" lineEndContext="#pop#pop" name="attribute"> 0184 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0185 </context> 0186 0187 <context attribute="Attribute" lineEndContext="#stay" name="list-attribute-inline"> 0188 <AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",]" /> 0189 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0190 </context> 0191 <context attribute="Attribute" lineEndContext="#stay" name="hash-attribute-inline"> 0192 <AnyChar attribute="Operator" context="#pop#pop" lookAhead="true" String=",}" /> 0193 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0194 </context> 0195 0196 <!-- Attribute --> 0197 <context attribute="Attribute" lineEndContext="#pop" name="dpoints-attribute-pre" fallthrough="true" fallthroughContext="#pop!attribute-pre"> 0198 <DetectChar attribute="Key Points Operator" context="#pop!attribute-pre" char=":" /> <!-- Highlight two points after Key --> 0199 </context> 0200 <context attribute="Attribute" lineEndContext="#pop" name="attribute-pre" fallthrough="true" fallthroughContext="attribute"> 0201 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0202 <DetectSpaces/> 0203 <DetectChar attribute="Operator" context="#stay" char="?" /> 0204 <RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" /> 0205 <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" /> 0206 <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" /> 0207 <DetectChar attribute="String" context="attribute-string" char="'" beginRegion="String" /> 0208 <DetectChar attribute="String" context="attribute-stringx" char=""" beginRegion="String" /> 0209 <RegExpr attribute="Alias" context="#stay" String="&alias;(?=\s+[\[\{])" /> 0210 <RegExpr attribute="Reference" context="#stay" String="&reference;(?=\s+[\[\{])" /> 0211 <RegExpr attribute="Alias" context="attribute" String="&alias;" /> 0212 <RegExpr attribute="Reference" context="attribute" String="&reference;" /> 0213 <IncludeRules context="values" /> 0214 <RegExpr attribute="Literal/Folded Operator" context="#stay" String="&literalOp;(?=&endValue;)" /> 0215 </context> 0216 0217 <context attribute="Attribute" lineEndContext="#pop" name="default-attribute-pre-inline"> 0218 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0219 <DetectSpaces/> 0220 0221 <DetectChar attribute="Operator" context="#stay" char="?" /> 0222 <RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" /> 0223 <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" /> 0224 <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" /> 0225 <DetectChar attribute="String" context="attribute-string-inline" char="'" beginRegion="String" /> 0226 <DetectChar attribute="String" context="attribute-stringx-inline" char=""" beginRegion="String" /> 0227 <RegExpr attribute="Alias" context="#stay" String="&alias;(?=\s+[\[\{])" /> 0228 <RegExpr attribute="Reference" context="#stay" String="&reference;(?=\s+[\[\{])" /> 0229 </context> 0230 0231 <!-- Attribute Inline, Within List --> 0232 <context attribute="Attribute" lineEndContext="#pop" name="dpoints-list-attribute-pre-inline" fallthrough="true" fallthroughContext="#pop!list-attribute-pre-inline"> 0233 <DetectChar attribute="Key Points Operator" context="#pop!list-attribute-pre-inline" char=":" /> <!-- Highlight two points after Key --> 0234 </context> 0235 <context attribute="Attribute" lineEndContext="#pop" name="list-attribute-pre-inline" fallthrough="true" fallthroughContext="list-attribute-inline"> 0236 <IncludeRules context="default-attribute-pre-inline" /> 0237 <RegExpr attribute="Alias" context="list-attribute-inline" String="&alias;" /> 0238 <RegExpr attribute="Reference" context="list-attribute-inline" String="&reference;" /> 0239 0240 <AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",]" /> 0241 <IncludeRules context="values-inline" /> 0242 </context> 0243 0244 <!-- Attribute Inline, Within Hash --> 0245 <context attribute="Attribute" lineEndContext="#pop" name="dpoints-hash-attribute-pre-inline" fallthrough="true" fallthroughContext="#pop!hash-attribute-pre-inline"> 0246 <DetectChar attribute="Key Points Operator" context="#pop!hash-attribute-pre-inline" char=":" /> <!-- Highlight two points after Key --> 0247 </context> 0248 <context attribute="Attribute" lineEndContext="#pop" name="hash-attribute-pre-inline" fallthrough="true" fallthroughContext="hash-attribute-inline"> 0249 <IncludeRules context="default-attribute-pre-inline" /> 0250 <RegExpr attribute="Alias" context="hash-attribute-inline" String="&alias;" /> 0251 <RegExpr attribute="Reference" context="hash-attribute-inline" String="&reference;" /> 0252 0253 <AnyChar attribute="Operator" context="#pop" lookAhead="true" String=",}" /> 0254 <IncludeRules context="values-inline" /> 0255 </context> 0256 0257 <!-- List --> 0258 <!-- Context "find-values-list" highlights values and then sends to "list-element" --> 0259 <context attribute="List" lineEndContext="#stay" name="list" fallthrough="true" fallthroughContext="#pop!find-values-list" noIndentationBasedFolding="true"> 0260 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0261 <DetectSpaces /> 0262 <DetectChar attribute="Operator" context="#pop!find-values-list" char="?" /> 0263 </context> 0264 <context attribute="List" lineEndContext="#stay" name="list-element" noIndentationBasedFolding="true"> 0265 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0266 0267 <DetectChar attribute="Operator" context="#pop" char="]" endRegion="List" /> 0268 <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" /> 0269 <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" /> 0270 0271 <RegExpr attribute="Key" context="dpoints-list-attribute-pre-inline" String="&dpointsListAttrPreInline1;|&dpointsListAttrPreInline2;|&dpointsListAttrPreInline3;|&dpointsListAttrPreInline4;"/> 0272 <RegExpr attribute="Key Points Operator" context="list-attribute-pre-inline" String=":(?=\s|$)" firstNonSpace="true" /> 0273 0274 <RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" /> 0275 <RegExpr attribute="Alias" context="#stay" String="&alias;" /> 0276 <RegExpr attribute="Reference" context="#stay" String="&reference;" /> 0277 <DetectChar attribute="String" context="string" char="'" beginRegion="String" /> 0278 <DetectChar attribute="String" context="stringx" char=""" beginRegion="String" /> 0279 0280 <DetectChar attribute="Operator" context="#pop!list" char="," /> 0281 <IncludeRules context="values-list" /> 0282 </context> 0283 0284 <!-- Hash --> 0285 <context attribute="Hash" lineEndContext="#stay" name="hash" fallthrough="true" fallthroughContext="#pop!hash-element" noIndentationBasedFolding="true"> 0286 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0287 <DetectSpaces /> 0288 <DetectChar attribute="Operator" context="#pop!hash-element" char="?" /> 0289 </context> 0290 <context attribute="Hash" lineEndContext="#stay" name="hash-element" noIndentationBasedFolding="true"> 0291 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0292 <DetectSpaces/> 0293 0294 <RegExpr attribute="Key" context="dpoints-hash-attribute-pre-inline" String="&dpointsHashAttrPreInline1;|&dpointsHashAttrPreInline2;|&dpointsHashAttrPreInline3;|&dpointsHashAttrPreInline4;"/> 0295 <RegExpr attribute="Key Points Operator" context="hash-attribute-pre-inline" String=":(?=\s|$)"/> 0296 0297 <DetectChar attribute="Operator" context="#pop" char="}" endRegion="Hash" /> 0298 <DetectChar attribute="Operator" context="#pop!hash" char="," /> 0299 0300 <!-- This improves highlighting in keys with multiple lines --> 0301 <RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" /> 0302 <RegExpr attribute="Alias" context="#stay" String="&alias;" /> 0303 <RegExpr attribute="Reference" context="#stay" String="&reference;" /> 0304 <DetectChar attribute="String" context="string" char="'" beginRegion="String" /> 0305 <DetectChar attribute="String" context="stringx" char=""" beginRegion="String" /> 0306 </context> 0307 0308 <!-- Strings --> 0309 <context attribute="String" lineEndContext="#stay" name="attribute-string" noIndentationBasedFolding="true"> 0310 <DetectIdentifier /> 0311 <IncludeRules context="escaped-char-singleq" /> 0312 <DetectChar attribute="String" context="attribute-end" char="'" endRegion="String" /> 0313 </context> 0314 0315 <context attribute="String" lineEndContext="#stay" name="attribute-stringx" noIndentationBasedFolding="true"> 0316 <DetectIdentifier /> 0317 <IncludeRules context="escaped-char-doubleq" /> 0318 <DetectChar attribute="String" context="attribute-end" char=""" endRegion="String" /> 0319 </context> 0320 0321 <context attribute="String" lineEndContext="#stay" name="attribute-string-inline" noIndentationBasedFolding="true"> 0322 <DetectIdentifier /> 0323 <IncludeRules context="escaped-char-singleq" /> 0324 <DetectChar attribute="String" context="attribute-end-inline" char="'" endRegion="String" /> 0325 </context> 0326 0327 <context attribute="String" lineEndContext="#stay" name="attribute-stringx-inline" noIndentationBasedFolding="true"> 0328 <DetectIdentifier /> 0329 <IncludeRules context="escaped-char-doubleq" /> 0330 <DetectChar attribute="String" context="attribute-end-inline" char=""" endRegion="String" /> 0331 </context> 0332 0333 <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end"> 0334 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0335 <DetectSpaces attribute="Normal Text" context="#stay"/> 0336 </context> 0337 0338 <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end-inline"> 0339 <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" /> 0340 <DetectSpaces attribute="Normal Text" context="#stay"/> 0341 <AnyChar context="#pop#pop#pop" lookAhead="true" String="}],"/> 0342 </context> 0343 0344 <context attribute="String" lineEndContext="#stay" name="string" noIndentationBasedFolding="true"> 0345 <DetectIdentifier /> 0346 <IncludeRules context="escaped-char-singleq" /> 0347 <DetectChar attribute="String" context="#pop" char="'" endRegion="String" /> 0348 </context> 0349 0350 <context attribute="String" lineEndContext="#stay" name="stringx" noIndentationBasedFolding="true"> 0351 <DetectIdentifier /> 0352 <IncludeRules context="escaped-char-doubleq" /> 0353 <DetectChar attribute="String" context="#pop" char=""" endRegion="String" /> 0354 </context> 0355 0356 <context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-doubleq"> 0357 <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})"/> 0358 </context> 0359 0360 <context attribute="Normal Text" lineEndContext="#stay" name="escaped-char-singleq"> 0361 <Detect2Chars attribute="Escaped Character" context="#stay" char="'" char1="'" /> 0362 </context> 0363 0364 <context attribute="Comment" lineEndContext="#pop" name="comment"> 0365 <DetectSpaces /> 0366 <IncludeRules context="##Comments" /> 0367 </context> 0368 0369 <!-- Values --> 0370 <context attribute="Normal Text" lineEndContext="#stay" name="values"> 0371 <RegExpr attribute="Null" context="#stay" String="&null;(?=&endValue;)"/> 0372 <RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValue;)"/> 0373 <RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValue;)"/> 0374 <RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValue;)"/> 0375 </context> 0376 <context attribute="Normal Text" lineEndContext="#stay" name="values-firstnonspace"> 0377 <RegExpr attribute="Null" firstNonSpace="true" context="#stay" String="&null;(?=&endValue;)"/> 0378 <RegExpr attribute="Boolean" firstNonSpace="true" context="#stay" String="&bool;(?=&endValue;)"/> 0379 <RegExpr attribute="Float" firstNonSpace="true" context="#stay" String="&allFloat;(?=&endValue;)"/> 0380 <RegExpr attribute="Integer" firstNonSpace="true" context="#stay" String="&allInt;(?=&endValue;)"/> 0381 </context> 0382 <context attribute="Normal Text" lineEndContext="#stay" name="values-inline"> 0383 <RegExpr attribute="Null" context="#stay" String="&null;(?=&endValueInline;|&endValue;)"/> 0384 <RegExpr attribute="Boolean" context="#stay" String="&bool;(?=&endValueInline;|&endValue;)"/> 0385 <RegExpr attribute="Float" context="#stay" String="&allFloat;(?=&endValueInline;|&endValue;)"/> 0386 <RegExpr attribute="Integer" context="#stay" String="&allInt;(?=&endValueInline;|&endValue;)"/> 0387 </context> 0388 0389 <context attribute="Normal Text" lineEndContext="#stay" name="values-list"> 0390 <RegExpr attribute="Null" context="#stay" String="(?:\s|^)&null;(?=&endValueInline;|&endValue;)"/> 0391 <RegExpr attribute="Boolean" context="#stay" String="(?:\s|^)&bool;(?=&endValueInline;|&endValue;)"/> 0392 <RegExpr attribute="Float" context="#stay" String="(?:\s|^)&allFloat;(?=&endValueInline;|&endValue;)"/> 0393 <RegExpr attribute="Integer" context="#stay" String="(?:\s|^)&allInt;(?=&endValueInline;|&endValue;)"/> 0394 </context> 0395 <!-- If the value is found immediately at the beginning of the list item --> 0396 <context attribute="Normal Text" lineEndContext="#pop!list-element" name="find-values-list" fallthrough="true" fallthroughContext="#pop!list-element"> 0397 <RegExpr attribute="Null" context="#pop!list-element" String="&null;(?=&endValueInline;|&endValue;)"/> 0398 <RegExpr attribute="Boolean" context="#pop!list-element" String="&bool;(?=&endValueInline;|&endValue;)"/> 0399 <RegExpr attribute="Float" context="#pop!list-element" String="&allFloat;(?=&endValueInline;|&endValue;)"/> 0400 <RegExpr attribute="Integer" context="#pop!list-element" String="&allInt;(?=&endValueInline;|&endValue;)"/> 0401 </context> 0402 0403 <!-- Literal/Folded Style: http://yaml.org/spec/1.2/spec.html#id2795688 --> 0404 0405 <context attribute="Normal Text" lineEndContext="#stay" name="find-literal-block"> 0406 <!-- Do not allow indentation with tabs: --> 0407 <RegExpr attribute="Alert" context="#stay" column="0" 0408 String="^&space;*\t+\s*(?=(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" /> 0409 0410 <!-- CASE 1: The literal/folded operator is the first character of a line. 0411 The text after a space is considered literal. 0412 Ex: 0413 > | 0414 > ^Start the literal text 0415 --> 0416 <RegExpr attribute="Literal/Folded Operator" context="literal-block-simple" column="0" 0417 String="^&literalOp;(?=&endValue;)" beginRegion="Literal" /> 0418 0419 <!-- CASE 2: Only the literal/folded operator is present in a line, after a space (the indentation 0420 is captured). The text with the same indentation of the operator will be highlighted as literal. 0421 Ex: 0422 > key: 0423 > | 0424 > ^Start the literal text 0425 0426 However, in this case, the correct way is to use the indentation of the block, not the 0427 indentation of the the operator. The problem is that it is difficult to capture. 0428 > key1: 0429 > key2: 0430 > key3: 0431 > | 0432 > ^Block indentation (correct literal text) 0433 --> 0434 <RegExpr attribute="Literal/Folded Operator" context="literal-block-only-operator" column="0" 0435 String="^(&space;+)&literalOp;(?=&endValue;)" beginRegion="Literal" /> 0436 0437 <!-- CASE 3: There is a Key before the literal/folded operator (Key indentation is captured). 0438 The text with the Key's indentation plus a space is considered literal. 0439 Ex: 0440 > key: | 0441 > ^Start the literal text 0442 > key: !!type >- 0443 > ^Start the folded text 0444 --> 0445 <RegExpr attribute="Key Points Operator" context="literal-block-key" column="0" 0446 String="^(&space;*)\:(?=\s+(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" /> 0447 <RegExpr attribute="Key" context="literal-block-key" column="0" 0448 String="^(&space;*)(?:[^"'#\-\?\s][^:#]*|\-(?:[^\s:#][^:#]*)?|&keyDQ;|&keySQ;)(?=\:\s+(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?&literalOp;&endValue;)" /> 0449 0450 <!-- CASE 4: Is there an operator "?" or "-" at the beginning of the line. 0451 NOTE: Nested characters "-" and "?" are considered as part of the indentation. 0452 Therefore, the indentation of the Key or the last operator "?" or "-" is captured. 0453 Ex: 0454 > ? | 0455 > ^Start the literal Text 0456 > ? - - | 0457 > ^Start the literal text 0458 > - Key: | 0459 > ^Start the literal text 0460 > ? - - - - Key: | 0461 > ^Start the literal text 0462 --> 0463 <RegExpr context="start-literal-block-withdash" lookAhead="true" column="0" 0464 String="^&space;*(?:\?&space;*|\-&space;+){1,6}(?:(?:&keyDQ;|&keySQ;|[^#\-\?\s]|\-[^\s#])(?:(?:&keyDQ;|&keySQ;|[^#])*[^#\w\|<>"'])?)?&literalOp;&endValue;" /> 0465 0466 <!-- CASE 5: Literal/folded operator after a data type or other content. 0467 Ex: 0468 > !!type | 0469 > ^Start the literal text 0470 > key1: 0471 > key2: 0472 > !!type | 0473 > ^Start the literal text 0474 --> 0475 <RegExpr context="start-literal-block-other" lookAhead="true" column="0" 0476 String="^&space;*(?:(?:[&\*]|!!)\S+\s+)+&literalOp;&endValue;" /> 0477 </context> 0478 0479 <!-- If the line with the literal operator starts with the "-" or "?" operator. 0480 NOTE: The indentation capture is limited to 6 nested operators. --> 0481 <context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-withdash" noIndentationBasedFolding="true"> 0482 <!-- With Key: Capture the Key indentation --> 0483 <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s2" String="^(&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/> 0484 <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/> 0485 <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/> 0486 <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/> 0487 <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/> 0488 <RegExpr attribute="Operator" context="#pop!literal-block-key-withdash-s7" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)(?=&keyAfterOp;:\s)" column="0"/> 0489 <!-- Without Key: Capture the indentation of the last operator "?" or "-" --> 0490 <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s1" String="^(&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/> 0491 <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s2" String="^(&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/> 0492 <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s3" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/> 0493 <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s4" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/> 0494 <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s5" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/> 0495 <RegExpr attribute="Operator" context="#pop!literal-block-withdash-s6" String="^(&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-](&space;*)[\?\-]\s*(?=[^#\-\?\s]|\-[^\s#])" column="0"/> 0496 </context> 0497 <!-- Capture the indentation of data type, reference or alias --> 0498 <context attribute="Normal Text" lineEndContext="#pop" name="start-literal-block-other" noIndentationBasedFolding="true"> 0499 <!-- The text with the same indentation will be considered literal --> 0500 <RegExpr attribute="Data Types" context="#pop!literal-block-after-data" String="^(&space;+)&dataTypes;" column="0" /> 0501 <RegExpr attribute="Alias" context="#pop!literal-block-after-data" String="^(&space;+)&alias;" column="0" /> 0502 <RegExpr attribute="Reference" context="#pop!literal-block-after-data" String="^(&space;+)&reference;" column="0" /> 0503 <!-- The text after a space will be considered literal (empty text is captured) --> 0504 <RegExpr attribute="Data Types" context="#pop!literal-block-withdash-s1" String="^()&dataTypes;" column="0" /> 0505 <RegExpr attribute="Alias" context="#pop!literal-block-withdash-s1" String="^()&alias;" column="0" /> 0506 <RegExpr attribute="Reference" context="#pop!literal-block-withdash-s1" String="^()&reference;" column="0" /> 0507 </context> 0508 0509 <!-- Highlight data/attribute before the literal operator (Note that if there is a line 0510 break within a string or bracket, the literal line will not be highlighted). --> 0511 <context attribute="Attribute" lineEndContext="#pop#pop" name="before-literal-operator" noIndentationBasedFolding="true"> 0512 <RegExpr attribute="Literal/Folded Operator" context="#pop!end-literal-operator" String="&literalOp;(?=&endValue;)" beginRegion="Literal" /> 0513 0514 <RegExpr attribute="Error" context="#pop#pop" String="(?:[&\*]|!!)\S*&literalOp;(?=&endValue;)" /> 0515 <RegExpr attribute="Data Types" context="#stay" String="&dataTypes;" /> 0516 <RegExpr attribute="Alias" context="#stay" String="&alias;" /> 0517 <RegExpr attribute="Reference" context="#stay" String="&reference;" /> 0518 0519 <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" /> 0520 <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" /> 0521 <DetectChar attribute="String" context="string" char="'" beginRegion="String" /> 0522 <DetectChar attribute="String" context="stringx" char=""" beginRegion="String" /> 0523 </context> 0524 0525 <context attribute="Normal Text" lineEndContext="#pop#pop" name="dpoints-key-before-literal-operator" fallthrough="true" fallthroughContext="#pop#pop" noIndentationBasedFolding="true"> 0526 <DetectChar attribute="Key Points Operator" context="#pop!key-before-literal-operator" char=":" /> 0527 </context> 0528 <context attribute="Attribute" lineEndContext="#pop#pop" name="key-before-literal-operator" noIndentationBasedFolding="true"> 0529 <IncludeRules context="before-literal-operator" /> 0530 <DetectChar attribute="Operator" context="#stay" char="?" /> 0531 </context> 0532 <context attribute="Attribute" lineEndContext="#pop" name="end-literal-operator" noIndentationBasedFolding="true"> 0533 <RegExpr attribute="Comment" context="#pop!comment" String="(?:^|\s+)#" /> 0534 </context> 0535 0536 <!-- Common rules for the content of the literal blocks --> 0537 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-default" noIndentationBasedFolding="true"> 0538 <!-- End literal/folded block --> 0539 <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" /> 0540 <!-- Find literal/folded operator --> 0541 <RegExpr context="before-literal-operator" String="\S" lookAhead="true" /> 0542 </context> 0543 <context attribute="Normal Text" lineEndContext="#pop" name="literal-block-key-default" noIndentationBasedFolding="true"> 0544 <!-- End literal/folded block --> 0545 <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" /> 0546 <!-- Detect Key before the literal/folded operator --> 0547 <RegExpr attribute="Key" context="dpoints-key-before-literal-operator" String="&keyAfterOp;(?=:\s)" /> 0548 <RegExpr attribute="Normal Text" context="#pop" String="\S" lookAhead="true" endRegion="Literal" /> 0549 </context> 0550 0551 <!-- Content of the literal block: --> 0552 0553 <!-- If the literal operator is starting the line (after a space, use block indentation) --> 0554 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-only-operator" dynamic="true" noIndentationBasedFolding="true"> 0555 <StringDetect attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="%1" dynamic="true" column="0" /> 0556 0557 <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" /> 0558 <RegExpr attribute="Comment" context="comment" String="(?:^|\s)#" /> 0559 <RegExpr context="#pop" String="\S" lookAhead="true" endRegion="Literal" /> 0560 </context> 0561 <!-- If the literal operator is the first character of a line (or after header) --> 0562 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-simple" noIndentationBasedFolding="true"> 0563 <DetectSpaces attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" column="0" /> 0564 0565 <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" /> 0566 <RegExpr attribute="Comment" context="comment" String="(?:^|\s)#" /> 0567 </context> 0568 <!-- If there is a data type or other content before the liretal operator (use block indentation) --> 0569 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-after-data" dynamic="true" noIndentationBasedFolding="true"> 0570 <StringDetect attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="%1" dynamic="true" column="0" /> 0571 0572 <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" /> 0573 <RegExpr context="before-literal-operator" String="\S" lookAhead="true" /> 0574 </context> 0575 <!-- If there is a key before the literal operator --> 0576 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key" dynamic="true" noIndentationBasedFolding="true"> 0577 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1\s" dynamic="true" column="0" /> 0578 0579 <RegExpr attribute="Normal Text" context="#pop" String="^\s*\S" lookAhead="true" column="0" endRegion="Literal" /> 0580 <!-- Attribute of the Key (the Key was previously highlighted) --> 0581 <RegExpr attribute="Key Points Operator" context="key-before-literal-operator" String=":\s" /> 0582 <RegExpr context="key-before-literal-operator" String="\S" lookAhead="true" /> 0583 </context> 0584 <context attribute="Literal/Folded Block" lineEndContext="#pop" name="injected-sql" noIndentationBasedFolding="true"> 0585 <!-- CartoCSS is a preprocessor for Mapnik, which supports exclusivly 0586 PostgreSQL (with the PostGIS extension) as database, therefore we 0587 choose the Postgre flavor of SQL syntax hightlighting here. 0588 The includeAttrib="true" in <IncludeRules> will override 0589 the attribute="Literal/Folded Block" of the current <context> 0590 with attribute="WHATEVER" of the default <context> of 0591 "##SQL (PostgreSQL)". This ensures that we get the identical 0592 highlighting as in SQL even for default text that has no special 0593 rule in the “SQL (PostgreSQL)” syntax highlighting. --> 0594 <IncludeRules context="##SQL (PostgreSQL)" includeAttrib="true"/> 0595 </context> 0596 0597 <!-- If there are dashes/"?" before the literal operator --> 0598 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s1" dynamic="true" noIndentationBasedFolding="true"> 0599 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1\s" dynamic="true" column="0" /> 0600 <IncludeRules context="literal-block-default" /> 0601 </context> 0602 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s2" dynamic="true" noIndentationBasedFolding="true"> 0603 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2&space;\s" dynamic="true" column="0" /> 0604 <IncludeRules context="literal-block-default" /> 0605 </context> 0606 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s3" dynamic="true" noIndentationBasedFolding="true"> 0607 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3&space;{2}\s" dynamic="true" column="0" /> 0608 <IncludeRules context="literal-block-default" /> 0609 </context> 0610 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s4" dynamic="true" noIndentationBasedFolding="true"> 0611 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4&space;{3}\s" dynamic="true" column="0" /> 0612 <IncludeRules context="literal-block-default" /> 0613 </context> 0614 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s5" dynamic="true" noIndentationBasedFolding="true"> 0615 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5&space;{4}\s" dynamic="true" column="0" /> 0616 <IncludeRules context="literal-block-default" /> 0617 </context> 0618 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-withdash-s6" dynamic="true" noIndentationBasedFolding="true"> 0619 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6&space;{5}\s" dynamic="true" column="0" /> 0620 <IncludeRules context="literal-block-default" /> 0621 </context> 0622 <!-- If there are dashes/"?" and a Key before the literal operator --> 0623 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s2" dynamic="true" noIndentationBasedFolding="true"> 0624 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2&space;\s" dynamic="true" column="0" /> 0625 <IncludeRules context="literal-block-key-default" /> 0626 </context> 0627 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s3" dynamic="true" noIndentationBasedFolding="true"> 0628 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3&space;{2}\s" dynamic="true" column="0" /> 0629 <IncludeRules context="literal-block-key-default" /> 0630 </context> 0631 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s4" dynamic="true" noIndentationBasedFolding="true"> 0632 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4&space;{3}\s" dynamic="true" column="0" /> 0633 <IncludeRules context="literal-block-key-default" /> 0634 </context> 0635 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s5" dynamic="true" noIndentationBasedFolding="true"> 0636 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5&space;{4}\s" dynamic="true" column="0" /> 0637 <IncludeRules context="literal-block-key-default" /> 0638 </context> 0639 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s6" dynamic="true" noIndentationBasedFolding="true"> 0640 <RegExpr attribute="Literal/Folded Block" context="injected-sql" lookAhead="true" String="^%1%2%3%4%5%6&space;{5}\s" dynamic="true" column="0" /> 0641 <IncludeRules context="literal-block-key-default" /> 0642 </context> 0643 <context attribute="Normal Text" lineEndContext="#stay" name="literal-block-key-withdash-s7" dynamic="true" noIndentationBasedFolding="true"> 0644 <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" /> 0645 <IncludeRules context="literal-block-key-default" /> 0646 </context> 0647 </contexts> 0648 0649 <itemDatas> 0650 <itemData name="Normal Text" defStyleNum="dsAttribute" spellChecking="false" /> 0651 <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false" /> 0652 <itemData name="List" defStyleNum="dsAttribute" spellChecking="false" /> 0653 <itemData name="Hash" defStyleNum="dsAttribute" spellChecking="false" /> 0654 <itemData name="Comment" defStyleNum="dsComment" /> 0655 <itemData name="End of Document" defStyleNum="dsComment" /> 0656 <itemData name="Document Header" defStyleNum="dsPreprocessor" spellChecking="false" /> 0657 <itemData name="Data Types" defStyleNum="dsOthers" spellChecking="false" /> 0658 <itemData name="Alias" defStyleNum="dsOthers" spellChecking="false" /> 0659 <itemData name="Reference" defStyleNum="dsOthers" spellChecking="false" /> 0660 <itemData name="Key" defStyleNum="dsFunction" bold="1" spellChecking="false" /> 0661 <itemData name="Directive" defStyleNum="dsPreprocessor" spellChecking="false" /> 0662 <itemData name="Key Points Operator" defStyleNum="dsKeyword" spellChecking="false" /> 0663 <itemData name="Operator" defStyleNum="dsKeyword" spellChecking="false" /> 0664 <itemData name="String" defStyleNum="dsString" spellChecking="false" /> 0665 <itemData name="Escaped Character" defStyleNum="dsSpecialChar" spellChecking="false" /> 0666 <itemData name="Literal/Folded Operator" defStyleNum="dsChar" spellChecking="false" bold="1" /> 0667 <itemData name="Literal/Folded Block" defStyleNum="dsNormal" spellChecking="false" /> 0668 <itemData name="Null" defStyleNum="dsChar" spellChecking="false" /> 0669 <itemData name="Boolean" defStyleNum="dsChar" spellChecking="false" /> 0670 <itemData name="Integer" defStyleNum="dsDecVal" spellChecking="false" /> 0671 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" /> 0672 <itemData name="Error" defStyleNum="dsError" spellChecking="false" /> 0673 <itemData name="Alert" defStyleNum="dsAlert" backgroundColor="#EF9A9A" spellChecking="false" /> 0674 </itemDatas> 0675 </highlighting> 0676 0677 <general> 0678 <folding indentationsensitive="1" /> 0679 <emptyLines> 0680 <emptyLine regexpr="(?:\s+|\s*#.*)"/> 0681 </emptyLines> 0682 <comments> 0683 <comment name="singleLine" start="#" position="afterwhitespace" /> 0684 </comments> 0685 <keywords casesensitive="1"/> 0686 </general> 0687 </language> 0688 <!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->