Warning, /frameworks/syntax-highlighting/data/syntax/coffee.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language>
0003 
0004 <language name="CoffeeScript"
0005           version="15"
0006           kateversion="5.53"
0007           section="Scripts"
0008           extensions="Cakefile;*.coffee;*.coco;*.cson"
0009           mimetype="text/x-coffeescript;application/x-coffeescript;application/vnd.coffeescript"
0010           indenter="python"
0011           casesensitive="1"
0012           author="Max Shawabkeh (max99x@gmail.com)"
0013           license="MIT">
0014   <highlighting>
0015     <!-- Built-in constants. -->
0016     <list name="value_keywords">
0017       <item>false</item>
0018       <item>true</item>
0019       <item>yes</item>
0020       <item>no</item>
0021       <item>on</item>
0022       <item>off</item>
0023       <item>undefined</item>
0024       <item>null</item>
0025       <item>NaN</item>
0026       <item>Infinity</item>
0027     </list>
0028     <!-- Generic keywords. -->
0029     <list name="keywords">
0030       <item>return</item>
0031       <item>break</item>
0032       <item>continue</item>
0033       <item>throw</item>
0034       <item>for</item>
0035       <item>while</item>
0036       <item>until</item>
0037       <item>loop</item>
0038       <item>if</item>
0039       <item>else</item>
0040       <item>unless</item>
0041       <item>switch</item>
0042       <item>when</item>
0043       <item>then</item>
0044       <item>and</item>
0045       <item>or</item>
0046       <item>in</item>
0047       <item>do</item>
0048       <item>of</item>
0049       <item>by</item>
0050       <item>is</item>
0051       <item>isnt</item>
0052       <item>not</item>
0053       <item>typeof</item>
0054       <item>delete</item>
0055       <item>where</item>
0056       <item>super</item>
0057       <item>try</item>
0058       <item>catch</item>
0059       <item>finally</item>
0060       <item>try</item>
0061       <item>catch</item>
0062       <item>finally</item>
0063       <item>constructor</item>
0064     </list>
0065     <!-- Keywords which are always followed by a class name. -->
0066     <list name="class_keywords">
0067       <item>class</item>
0068       <item>extends</item>
0069       <item>new</item>
0070       <item>instanceof</item>
0071     </list>
0072     <!-- Reserved words. -->
0073     <list name="reserved">
0074       <item>case</item>
0075       <item>default</item>
0076       <item>function</item>
0077       <item>var</item>
0078       <item>void</item>
0079       <item>with</item>
0080       <item>const</item>
0081       <item>let</item>
0082       <item>enum</item>
0083       <item>export</item>
0084       <item>import</item>
0085       <item>native</item>
0086       <item>__hasProp</item>
0087       <item>__extends</item>
0088       <item>__slice</item>
0089       <item>__bind</item>
0090       <item>__indexOf</item>
0091     </list>
0092     <!-- Built-in globals provided in most contexts. -->
0093     <list name="globals">
0094       <item>Object</item>
0095       <item>Number</item>
0096       <item>Boolean</item>
0097       <item>Array</item>
0098       <item>String</item>
0099       <item>RegExp</item>
0100       <item>Function</item>
0101       <item>Date</item>
0102       <item>Math</item>
0103       <item>eval</item>
0104       <item>setInterval</item>
0105       <item>clearInterval</item>
0106       <item>setTimeout</item>
0107       <item>clearTimeout</item>
0108       <item>isFinite</item>
0109       <item>isNaN</item>
0110       <item>parseFloat</item>
0111       <item>parseInt</item>
0112       <item>escape</item>
0113       <item>unescape</item>
0114       <item>console</item>
0115       <item>encodeURI</item>
0116       <item>encodeURIComponent</item>
0117       <item>decodeURI</item>
0118       <item>decodeURIComponent</item>
0119     </list>
0120     <!-- Built-in globals provided in browser context. -->
0121     <list name="browser_globals">
0122       <item>window</item>
0123       <item>document</item>
0124       <item>navigator</item>
0125       <item>location</item>
0126       <item>history</item>
0127       <item>screen</item>
0128       <item>alert</item>
0129       <item>prompt</item>
0130     </list>
0131     <!-- Built-in globals provided in Node.js context. -->
0132     <list name="nodejs_globals">
0133       <item>process</item>
0134       <item>GLOBAL</item>
0135       <item>require</item>
0136       <item>exports</item>
0137     </list>
0138     <!-- Context-sensitive highlighting rules. -->
0139     <contexts>
0140       <!-- Generic code. -->
0141       <context name="Normal" attribute="Normal" lineEndContext="#stay">
0142         <DetectSpaces/>
0143         <!-- Numbers. -->
0144         <Float attribute="Float" context="#stay"/>
0145         <Int attribute="Decimal" context="#stay"/>
0146         <HlCOct attribute="Oct" context="#stay"/>
0147         <HlCHex attribute="Hex" context="#stay"/>
0148         <!-- Keywords. -->
0149         <keyword attribute="Keyword" context="#stay" String="keywords"/>
0150         <keyword attribute="Keyword" context="Class" String="class_keywords"/>
0151         <keyword attribute="Value Keywords" context="#stay" String="value_keywords"/>
0152         <keyword attribute="Reserved" context="#stay" String="reserved"/>
0153         <!-- Globals. -->
0154         <keyword attribute="Globals" context="#stay" String="globals"/>
0155         <keyword attribute="Browser Globals" context="#stay" String="browser_globals"/>
0156         <keyword attribute="Node.js Globals" context="#stay" String="nodejs_globals"/>
0157         <!-- Member accessors. -->
0158         <RegExpr attribute="Accessor" context="#stay" String="(?:@[_$a-zA-Z][$\w]*|\bthis)\b" insensitive="false"/>
0159         <!-- Function definitions. Matches an optional argument list followed by a function arrow (normal or fat). -->
0160         <RegExpr attribute="Function" context="#stay" String="(?:\((?:\'[^']*'|&quot;[^&quot;]*&quot;|[^()])*\))?\s*(?:\-|=)&gt;" insensitive="true"/>
0161         <!-- Generic identifiers. -->
0162         <RegExpr attribute="Identifier" context="#stay" String="[_$a-z][$\w]*\b" insensitive="true"/>
0163         <!-- Strings. -->
0164         <StringDetect attribute="String" context="Heredoc" String="'''" beginRegion="Heredoc"/>
0165         <StringDetect attribute="String" context="Rich Heredoc" String="&quot;&quot;&quot;" beginRegion="Rich Heredoc"/>
0166         <DetectChar attribute="String" context="String" char="'"/>
0167         <DetectChar attribute="String" context="Rich String" char="&quot;"/>
0168         <!-- Embedded JavaScript. -->
0169         <StringDetect attribute="Javascript" context="Javascript Triple Backticks" String="```" beginRegion="Javascript TB"/>
0170         <DetectChar attribute="Javascript" context="Javascript" char="`" beginRegion="Javascript"/>
0171         <!-- Comments. -->
0172         <StringDetect attribute="Comment" context="Multiline Comment" String="###" beginRegion="Comment"/>
0173         <DetectChar attribute="Comment" context="Comment" char="#"/>
0174         <!-- Regular expressions. -->
0175         <StringDetect attribute="Regex" context="Multiline Regex" String="///" beginRegion="Multiline Regex"/>
0176         <RegExpr attribute="Regex" context="#stay" String="/(?:[^/\\\r\n]|\\.)*/[mig]{0,3}"/>
0177         <!-- Member objects. -->
0178         <DetectChar attribute="Symbol" context="Member Object" char="."/>
0179         <!-- Operators and other non-alphanumeric symbols. -->
0180         <AnyChar attribute="Symbol" context="#stay" String="():!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;{}"/>
0181       </context>
0182       <!-- Multiline regular expressions. -->
0183       <context name="Multiline Regex" attribute="Regex" lineEndContext="#stay" noIndentationBasedFolding="1">
0184         <HlCStringChar attribute="Regex" context="#stay"/>
0185         <DetectChar attribute="Comment" context="Comment" char="#"/>
0186         <RegExpr attribute="Regex" context="#pop" String="///[mig]{0,3}" endRegion="Multiline Regex"/>
0187       </context>
0188       <!-- Class names. -->
0189       <context name="Class" attribute="Normal" lineEndContext="#stay">
0190         <DetectSpaces/>
0191         <RegExpr attribute="Class" context="#pop" String="[@$:.\w\[\]]+"/>
0192       </context>
0193       <!-- Member objects. -->
0194       <context name="Member Object" attribute="Normal" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
0195         <RegExpr attribute="Identifier" context="#pop" String="\s*[_$a-z][$\w]*" insensitive="true"/>
0196       </context>
0197       <!-- Comments. -->
0198       <context name="Comment" attribute="Comment" lineEndContext="#pop">
0199         <IncludeRules context="##Comments"/>
0200       </context>
0201       <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="1">
0202         <StringDetect attribute="Comment" context="#pop" String="###" endRegion="Comment"/>
0203         <IncludeRules context="##Comments"/>
0204       </context>
0205       <!-- Single-line strings. -->
0206       <context name="String" attribute="String" lineEndContext="#stay">
0207         <IncludeRules context="Escape"/>
0208         <DetectChar attribute="String" context="#pop" char="'"/>
0209       </context>
0210       <context name="Rich String" attribute="String" lineEndContext="#stay">
0211         <IncludeRules context="Escape"/>
0212         <Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>
0213         <DetectChar attribute="String" context="#pop" char="&quot;"/>
0214       </context>
0215       <!-- Multi-line strings. -->
0216       <context name="Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">
0217         <IncludeRules context="Escape"/>
0218         <StringDetect attribute="String" context="#pop" String="'''" endRegion="Heredoc"/>
0219       </context>
0220       <context name="Rich Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">
0221         <IncludeRules context="Escape"/>
0222         <Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>
0223         <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;" endRegion="Rich Heredoc"/>
0224       </context>
0225       <!-- Escaped characters. -->
0226       <context name="Escape" attribute="String" lineEndContext="#stay">
0227         <!-- Hexadecimal, unicode & reserved character escape sequences. -->
0228         <RegExpr attribute="Escape" context="#stay" String="\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u\{[0-9a-fA-F]+\}|[\\0bfnrtv&quot;&apos;])"/>
0229         <!-- Invalid escapes. Octal escape sequences are not allowed. -->
0230         <RegExpr attribute="Error" context="#stay" String="\\[ux1-7]"/>
0231         <!-- Make any character literal. -->
0232         <RegExpr attribute="Literal Character Escape" context="#stay" String="\\."/>
0233         <LineContinue attribute="Escape" context="#stay"/>
0234       </context>
0235       <!-- Expressions embedded in strings. -->
0236       <context name="Embedding" attribute="Normal" lineEndContext="#stay">
0237         <DetectChar attribute="Embedding" context="#pop" char="}"/>
0238       </context>
0239 
0240       <!-- Embedded Javascript (one backtick). -->
0241 
0242       <context name="Javascript" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
0243         <DetectChar attribute="Javascript" context="#pop" char="`" endRegion="Javascript"/>
0244         <!-- NOTE: This hides errors where a backtick is embedded in a JS string or a comment. -->
0245         <IncludeRules context="Overwrite Javascript"/>
0246         <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
0247       </context>
0248 
0249       <!-- Allow template strings in JavaScript embedded code (with one backtick). -->
0250       <context name="Overwrite Javascript" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
0251         <!-- JavaScript Template. -->
0252         <Detect2Chars attribute="JavaScript Template" context="Javascript Template" char="\" char1="`" beginRegion="Template"/>
0253         <RegExpr context="Javascript StartRawTemplate" String="\b(String)\s*(\.)\s*(raw)\s*\\`" lookAhead="true"/>
0254         <!-- Tagged Template Literals -->
0255         <RegExpr attribute="JavaScript Function Name" context="#stay" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*(?=\s*\\`)" />
0256         <RegExpr attribute="Error" context="#stay" String="\bString\s*\.\s*raw(?=\s*`)" />
0257         <RegExpr attribute="Normal" context="#stay" String="[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*(?=\s*`)" />
0258         <!-- Contexts of javascript.xml. -->
0259         <DetectChar attribute="Normal" context="JavaScript Object" char="{" beginRegion="Brace" />
0260       </context>
0261       <context name="JavaScript Object" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
0262         <DetectChar context="#pop" char="`" lookAhead="true"/>
0263         <DetectChar attribute="Normal" context="#pop" char="}" endRegion="Brace"/>
0264         <IncludeRules context="Overwrite Javascript"/>
0265         <IncludeRules context="Object##JavaScript"/>
0266       </context>
0267 
0268       <context name="Javascript Template" attribute="JavaScript Template" lineEndContext="#stay" noIndentationBasedFolding="1">
0269         <StringDetect attribute="Escape" context="#stay" String="\\\`"/>
0270         <Detect2Chars attribute="JavaScript Template" context="RegExpAfterString##JavaScript" char="\" char1="`" endRegion="Template"/> <!-- End template. -->
0271         <DetectChar context="#pop" char="`" lookAhead="true"/>
0272         <Detect2Chars attribute="JavaScript Substitution" context="Javascript Substitution" char="$" char1="{"/>
0273         <IncludeRules context="Template##JavaScript"/>
0274         <RegExpr attribute="Error" context="#stay" String="(?:[^\\\s](?=`)|\S(?=\s+`))"/>
0275       </context>
0276       <context name="Javascript Substitution" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
0277         <DetectChar attribute="Javascript" context="#pop" char="`" lookAhead="true"/>
0278         <DetectChar attribute="JavaScript Substitution" context="#pop" char="}"/>
0279         <IncludeRules context="Overwrite Javascript"/>
0280         <IncludeRules context="Substitution##JavaScript"/>
0281       </context>
0282 
0283       <context name="Javascript StartRawTemplate" attribute="JavaScript Template" lineEndContext="#pop" noIndentationBasedFolding="1">
0284         <DetectSpaces />
0285         <Detect2Chars attribute="JavaScript Template" context="#pop!Javascript RawTemplate" char="\" char1="`" beginRegion="Template"/>
0286         <StringDetect attribute="JavaScript Built-in Objects" context="#stay" String="%1" dynamic="true"/>
0287         <DetectChar attribute="JavaScript Symbol" context="#stay" char="2" dynamic="true"/>
0288         <StringDetect attribute="JavaScript Function Name" context="#stay" String="%3" dynamic="true"/>
0289       </context>
0290       <context name="Javascript RawTemplate" attribute="JavaScript Template" lineEndContext="#stay" noIndentationBasedFolding="1">
0291         <Detect2Chars attribute="JavaScript Template" context="#stay" char="\" char1="\"/>
0292         <Detect2Chars attribute="JavaScript Template" context="RegExpAfterString##JavaScript" char="\" char1="`" endRegion="Template"/> <!-- End template. -->
0293         <DetectChar context="#pop" char="`" lookAhead="true"/>
0294         <RegExpr attribute="Error" context="#stay" String="(?:[^\\\s](?=`)|\S(?=\s+`))"/>
0295       </context>
0296 
0297       <!-- Embedded Javascript (triple backticks). -->
0298       <context name="Javascript Triple Backticks" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
0299         <StringDetect attribute="Javascript" context="#pop" String="```" endRegion="Javascript TB"/>
0300         <DetectChar attribute="Normal" context="JavaScript-TB Object" char="{" beginRegion="Brace"/>
0301         <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
0302       </context>
0303       <context name="JavaScript-TB Object" attribute="Normal" lineEndContext="#stay" noIndentationBasedFolding="1">
0304         <StringDetect attribute="Javascript" context="#pop" String="```" lookAhead="true"/>
0305         <DetectChar attribute="Normal" context="#pop" char="}" endRegion="Brace"/>
0306         <DetectChar attribute="Normal" context="JavaScript-TB Object" char="{" beginRegion="Brace"/>
0307         <IncludeRules context="Object##JavaScript"/>
0308       </context>
0309     </contexts>
0310     <!-- Style mappings. -->
0311     <itemDatas>
0312       <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
0313       <itemData name="Identifier" defStyleNum="dsNormal" spellChecking="false"/>
0314       <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
0315       <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
0316       <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
0317       <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
0318       <itemData name="Oct" defStyleNum="dsBaseN" spellChecking="false"/>
0319       <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
0320       <itemData name="String" defStyleNum="dsString" spellChecking="false"/>
0321       <itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>
0322       <itemData name="Symbol" defStyleNum="dsKeyword" spellChecking="false"/>
0323       <itemData name="Embedding" defStyleNum="dsChar" spellChecking="false"/>
0324       <itemData name="Accessor" defStyleNum="dsDataType" spellChecking="false"/>
0325       <itemData name="Class" defStyleNum="dsDataType" spellChecking="false" bold="1"/>
0326       <itemData name="Javascript" defStyleNum="dsAlert" spellChecking="false" italic="1"/>
0327       <itemData name="Regex" defStyleNum="dsString" spellChecking="false"/>
0328       <itemData name="Reserved" defStyleNum="dsAlert" spellChecking="false"/>
0329       <itemData name="Value Keywords" defStyleNum="dsOthers" spellChecking="false"/>
0330       <itemData name="Globals" defStyleNum="dsOthers" spellChecking="false"/>
0331       <!-- Context-sensitive globals - not styled by default. -->
0332       <itemData name="Browser Globals" defStyleNum="dsNormal" spellChecking="false"/>
0333       <itemData name="Node.js Globals" defStyleNum="dsNormal" spellChecking="false"/>
0334       <itemData name="Escape" defStyleNum="dsSpecialChar" spellChecking="false" />
0335       <itemData name="Literal Character Escape" defStyleNum="dsChar" spellChecking="false" />
0336       <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
0337 
0338       <itemData name="JavaScript Template" defStyleNum="dsVerbatimString"/>
0339       <itemData name="JavaScript Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>
0340       <itemData name="JavaScript Function Name" defStyleNum="dsFunction" spellChecking="false"/>
0341       <itemData name="JavaScript Built-in Objects" defStyleNum="dsBuiltIn" spellChecking="false" />
0342       <itemData name="JavaScript Symbol" defStyleNum="dsOperator" spellChecking="false" />
0343     </itemDatas>
0344   </highlighting>
0345   <!-- Global settings. -->
0346   <general>
0347     <folding indentationsensitive="1"/>
0348     <comments>
0349       <comment name="singleLine" start="#" position="afterwhitespace"/>
0350       <comment name="multiLine" start="###" end="###" region="Comment"/>
0351     </comments>
0352     <keywords casesensitive="1" additionalDeliminator="#'`"/>
0353     <emptyLines>
0354       <emptyLine regexpr="(?:\s+|\s*#.*)"/>
0355     </emptyLines>
0356   </general>
0357 </language>
0358 <!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->