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

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language>
0003 <!--
0004         This is an attempt to write a quick and dirty syntax file for Cubescript.
0005         This will only document a subset of available keywords and internal commands, partly due to the various forks and the little overlap they have.
0006         Some effort has been taken to highlight and mark errors where possible.
0007 
0008         List values which are current ignored by the keyword identifier are commented.
0009 -->
0010 <language name="CubeScript" section="Scripts" version="5" kateversion="5.0" extensions="*.cfg" mimetype="" casesensitive="true" author="Kevin Meyer" license="zlib/libpng" indenter="normal">
0011   <highlighting>
0012     <!--
0013         There are far more commands than these, these are just guaranteed to be in all forks.
0014     -->
0015     <list name="commands">
0016       <item>?</item>
0017       <item>alias</item>
0018       <item>at</item>
0019       <item>case</item>
0020       <item>casef</item>
0021       <item>cases</item>
0022       <item>clearconsole</item>
0023       <item>clearsleep</item>
0024       <item>complete</item>
0025       <item>concat</item>
0026       <item>concatword</item>
0027       <item>cond</item>
0028       <item>conskip</item>
0029       <item>do</item>
0030       <item>echo</item>
0031       <item>error</item>
0032       <item>escape</item>
0033       <item>exec</item>
0034       <item>format</item>
0035       <item>getalias</item>
0036       <item>getfvarmin</item>
0037       <item>getfvarmax</item>
0038       <item>getvarmin</item>
0039       <item>getvarmax</item>
0040       <item>history</item>
0041       <item>if</item>
0042       <item>indexof</item>
0043       <item>inputcommand</item>
0044       <item>keymap</item>
0045       <item>listcomplete</item>
0046       <item>listdel</item>
0047       <item>listfind</item>
0048       <item>listlen</item>
0049       <item>listsplice</item>
0050       <item>local</item>
0051       <item>loop</item>
0052       <item>loopconcat</item>
0053       <item>loopconcatword</item>
0054       <item>loopfiles</item>
0055       <item>looplist</item>
0056       <item>loopwhile</item>
0057       <item>miniconskip</item>
0058       <item>nodebug</item>
0059       <item>onrelease</item>
0060       <item>prettylist</item>
0061       <item>push</item>
0062       <item>resetvar</item>
0063       <item>result</item>
0064       <item>rnd</item>
0065       <item>saycommand</item>
0066       <item>searchbinds</item>
0067       <item>searcheditbinds</item>
0068       <item>searchspecbinds</item>
0069       <item>sleep</item>
0070       <item>strcmp</item>
0071       <item>strlen</item>
0072       <item>strreplace</item>
0073       <item>strstr</item>
0074       <item>sublist</item>
0075       <item>substr</item>
0076       <item>tabify</item>
0077       <item>toggleconsole</item>
0078       <item>unescape</item>
0079       <item>while</item>
0080       <item>writecfg</item>
0081     </list>
0082     <list name="bindcommands">
0083       <item>bind</item>
0084       <item>editbind</item>
0085       <item>specbind</item>
0086       <item>getbind</item>
0087       <item>geteditbind</item>
0088       <item>getspecbind</item>
0089     </list>
0090     <list name="operators">
0091       <!--
0092         listed in the same order as in src/engine/command.cpp
0093         Includes all available operators, both basic and advanced
0094       -->
0095       <item>+</item>
0096       <item>*</item>
0097       <item>-</item>
0098       <item>+f</item>
0099       <item>*f</item>
0100       <item>-f</item>
0101       <item>=</item>
0102       <item>!=</item>
0103       <item>&gt;</item>
0104       <item>&lt;</item>
0105       <item>&gt;=</item>
0106       <item>&lt;=</item>
0107       <item>=f</item>
0108       <item>!=f</item>
0109       <item>&gt;f</item>
0110       <item>&lt;f</item>
0111       <item>&gt;=f</item>
0112       <item>&lt;=f</item>
0113       <item>^</item>
0114       <item>!</item>
0115       <item>&amp;</item>
0116       <item>|</item>
0117       <item>~</item>
0118       <item>^~</item>
0119       <item>&amp;~</item>
0120       <item>|~</item>
0121       <item>&lt;&lt;</item>
0122       <item>&gt;&gt;</item>
0123       <item>&amp;&amp;</item>
0124       <item>||</item>
0125       <item>abs</item>
0126       <item>absf</item>
0127       <item>div</item>
0128       <item>mod</item>
0129       <item>divf</item>
0130       <item>modf</item>
0131       <item>sin</item>
0132       <item>cos</item>
0133       <item>tan</item>
0134       <item>asin</item>
0135       <item>acos</item>
0136       <item>atan</item>
0137       <item>sqrt</item>
0138       <item>pow</item>
0139       <item>loge</item>
0140       <item>log2</item>
0141       <item>log10</item>
0142       <item>exp</item>
0143       <item>min</item>
0144       <item>max</item>
0145       <item>minf</item>
0146       <item>maxf</item>
0147       <item>=s</item>
0148       <item>!=s</item>
0149       <item>&lt;s</item>
0150       <item>&gt;s</item>
0151       <item>&lt;=s</item>
0152       <item>&gt;=s</item>
0153     </list>
0154     <list name="keys">
0155       <!-- SDL 2.0 Standard Mose Buttons -->
0156       <item>MOUSELEFT</item>
0157       <item>MOUSEMIDDLE</item>
0158       <item>MOUSERIGHT</item>
0159       <item>MOUSEWHEELUP</item>
0160       <item>MOUSEWHEELDOWN</item>
0161       <item>MOUSEX1</item>
0162       <item>MOUSEX2</item>
0163 
0164       <!-- SDL 1.2, Standard Mouse Buttons -->
0165       <item>MOUSE1</item>
0166       <item>MOUSE2</item>
0167       <item>MOUSE3</item>
0168       <item>MOUSE4</item>
0169       <item>MOUSE5</item>
0170 
0171 
0172       <item>BACKSPACE</item>
0173       <item>TAB</item>
0174       <item>CLEAR</item>
0175       <item>RETURN</item>
0176       <item>PAUSE</item>
0177       <item>ESCAPE</item>
0178       <item>SPACE</item>
0179       <item>EXCLAIM</item>
0180       <item>QUOTEDBL</item>
0181       <item>HASH</item>
0182       <item>DOLLAR</item>
0183       <item>AMPERSAND</item>
0184       <item>QUOTE</item>
0185       <item>LEFTPAREN</item>
0186       <item>RIGHTPAREN</item>
0187       <item>ASTERISK</item>
0188       <item>PLUS</item>
0189       <item>COMMA</item>
0190       <item>MINUS</item>
0191       <item>PERIOD</item>
0192       <item>SLASH</item>
0193       <item>0</item>
0194       <item>1</item>
0195       <item>2</item>
0196       <item>3</item>
0197       <item>4</item>
0198       <item>5</item>
0199       <item>6</item>
0200       <item>7</item>
0201       <item>8</item>
0202       <item>9</item>
0203       <item>COLON</item>
0204       <item>SEMICOLON</item>
0205       <item>LESS</item>
0206       <item>EQUALS</item>
0207       <item>GREATER</item>
0208       <item>QUESTION</item>
0209       <item>AT</item>
0210       <item>LEFTBRACKET</item>
0211       <item>BACKSLASH</item>
0212       <item>RIGHTBRACKET</item>
0213       <item>CARET</item>
0214       <item>UNDERSCORE</item>
0215       <item>BACKQUOTE</item>
0216       <item>A</item>
0217       <item>B</item>
0218       <item>C</item>
0219       <item>D</item>
0220       <item>E</item>
0221       <item>F</item>
0222       <item>G</item>
0223       <item>H</item>
0224       <item>I</item>
0225       <item>J</item>
0226       <item>K</item>
0227       <item>L</item>
0228       <item>M</item>
0229       <item>N</item>
0230       <item>O</item>
0231       <item>P</item>
0232       <item>Q</item>
0233       <item>R</item>
0234       <item>S</item>
0235       <item>T</item>
0236       <item>U</item>
0237       <item>V</item>
0238       <item>W</item>
0239       <item>X</item>
0240       <item>Y</item>
0241       <item>Z</item>
0242       <item>DELETE</item>
0243       <item>KP0</item>
0244       <item>KP1</item>
0245       <item>KP2</item>
0246       <item>KP3</item>
0247       <item>KP4</item>
0248       <item>KP5</item>
0249       <item>KP6</item>
0250       <item>KP7</item>
0251       <item>KP8</item>
0252       <item>KP9</item>
0253       <item>KP_PERIOD</item>
0254       <item>KP_DIVIDE</item>
0255       <item>KP_MULTIPLY</item>
0256       <item>KP_MINUS</item>
0257       <item>KP_PLUS</item>
0258       <item>KP_ENTER</item>
0259       <item>KP_EQUALS</item>
0260       <item>UP</item>
0261       <item>DOWN</item>
0262       <item>RIGHT</item>
0263       <item>LEFT</item>
0264       <item>INSERT</item>
0265       <item>HOME</item>
0266       <item>END</item>
0267       <item>PAGEUP</item>
0268       <item>PAGEDOWN</item>
0269       <item>F1</item>
0270       <item>F2</item>
0271       <item>F3</item>
0272       <item>F4</item>
0273       <item>F5</item>
0274       <item>F6</item>
0275       <item>F7</item>
0276       <item>F8</item>
0277       <item>F9</item>
0278       <item>F10</item>
0279       <item>F11</item>
0280       <item>F12</item>
0281       <item>F13</item>
0282       <item>F14</item>
0283       <item>F15</item>
0284       <item>NUMLOCK</item>
0285       <item>CAPSLOCK</item>
0286       <item>SCROLLOCK</item>
0287       <item>RSHIFT</item>
0288       <item>LSHIFT</item>
0289       <item>RCTRL</item>
0290       <item>LCTRL</item>
0291       <item>RALT</item>
0292       <item>LALT</item>
0293       <item>RMETA</item>
0294       <item>LMETA</item>
0295       <item>LSUPER</item>
0296       <item>RSUPER</item>
0297       <item>MODE</item>
0298       <item>COMPOSE</item>
0299       <item>HELP</item>
0300       <item>PRINT</item>
0301       <item>SYSREQ</item>
0302       <item>BREAK</item>
0303       <item>MENU</item>
0304     </list>
0305     <!-- Reserved aliases. -->
0306     <list name="aliases">
0307       <item>commandbuf</item>
0308       <item>editing</item>
0309       <item>mainmenu</item>
0310       <item>numargs</item>
0311     </list>
0312     <!--
0313         TODO list for Cubescript contexts
0314         1) Add GLSL support for shader commands, It's vanilla GLSL, the cubescript witchcraft aside.
0315         2) Improve alias highlighting eg foo@[bar]baz; do not highlight baz, but make sure to still highlight all of $foo[bar]baz, will probably need a special context.
0316 
0317     -->
0318 
0319     <contexts>
0320       <context name="Normal" attribute="Normal" lineEndContext="#stay">
0321         <AnyChar attribute="Error" context="#stay" String="])"/>
0322         <IncludeRules context="__Basic" />
0323       </context>
0324 
0325       <context name="Block" attribute="Normal" lineEndContext="#stay">
0326         <DetectChar attribute="Brackets" context="#pop" char="]" endRegion="Block" />
0327         <DetectChar attribute="Error" context="#stay" char=")"/>
0328         <IncludeRules context="__Basic" />
0329       </context>
0330 
0331       <context name="Brackets" attribute="Normal" lineEndContext="#stay">
0332         <DetectChar attribute="Error" context="#stay" char="]"/>
0333         <DetectChar attribute="Brackets" context="#pop" char=")"/>
0334         <IncludeRules context="__Basic" />
0335       </context>
0336 
0337       <context name="__Basic" attribute="Normal" lineEndContext="#stay">
0338         <Detect2Chars attribute="Comment" context="Comment" char="/" char1="/"/>
0339         <DetectChar attribute="Brackets" context="Block" char="[" beginRegion="Block" />
0340         <DetectChar attribute="Brackets" context="Brackets" char="(" />
0341         <DetectChar attribute="String" context="String" char="&quot;" />
0342         <AnyChar lookAhead="true" context="Lookup" String="$@" />
0343         <keyword attribute="Keyword" context="#stay" String="commands"/>
0344         <keyword attribute="Operator" context="#stay" String="operators"/>
0345         <keyword attribute="Keyword" context="Bind" String="bindcommands" />
0346         <HlCHex attribute="IntOther" context="#stay"/>
0347         <HlCOct attribute="IntOther" context="#stay"/>
0348         <Float attribute="Float" context="#stay" />
0349         <Int attribute="Int10" context="#stay"/>
0350       </context>
0351 
0352       <context name="Comment" attribute="Comment" lineEndContext="#pop">
0353         <IncludeRules context="##Comments" />
0354       </context>
0355 
0356       <context name="__Lookup" attribute="Lookup" lineEndContext="#pop">
0357         <DetectChar attribute="String" context="String" char="&quot;" />
0358         <DetectChar attribute="LookupBrackets" context="LookupEncBlock" char="[" />
0359         <DetectChar attribute="LookupBrackets" context="LookupEncBrackets" char="(" />
0360         <RegExpr attribute="Error" context="#stay" String="[^\$\s]+\$[^\[\]\(\)\s]*|\S+(?![\s\[\(])[^\$@](?=[\[\(])" />
0361         <RegExpr attribute="Key" context="#stay" String="[@\$]*arg[0-9]+" />
0362       </context>
0363 
0364       <context name="Lookup" attribute="Lookup" lineEndContext="#pop">
0365         <DetectSpaces attribute="Normal" context="#pop" />
0366         <AnyChar lookAhead="true" context="#pop" String=")];" />
0367         <Detect2Chars lookAhead="true" context="#pop" char="/" char1="/"/>
0368         <keyword attribute="Key" context="#stay" String="aliases" />
0369         <IncludeRules context="__Lookup" />
0370       </context>
0371 
0372       <context name="LookupEncBrackets" attribute="Normal" lineEndContext="#stay">
0373         <DetectChar attribute="LookupBrackets" context="#pop" char=")" />
0374         <DetectChar attribute="Error" context="#stay" char="]" />
0375         <Detect2Chars attribute="Comment" context="Comment" char="/" char1="/"/>
0376         <IncludeRules context="__Basic" />
0377       </context>
0378 
0379       <context name="LookupEncBlock" attribute="Lookup" lineEndContext="#stay">
0380         <Detect2Chars attribute="Comment" context="Comment" char="/" char1="/"/>
0381         <DetectChar attribute="Error" context="#stay" char=")" />
0382         <DetectChar attribute="LookupBrackets" context="#pop" char="]" />
0383         <keyword attribute="Key" context="#stay" String="aliases" />
0384         <IncludeRules context="__Lookup" />
0385       </context>
0386 
0387       <context name="String" attribute="String" lineEndContext="#pop">
0388         <DetectChar attribute="String" context="#pop" char="&quot;" />
0389         <!-- Escape newlines. -->
0390         <LineContinue attribute="Escaped" context="#stay" char="^" />
0391         <DetectChar attribute="Escaped" context="Escaped" char="^" />
0392       </context>
0393 
0394       <context name="Escaped" attribute="Escaped" lineEndContext="#stay" >
0395         <!-- Cubescript treats any character following a "^" in a string is escaped. -->
0396         <Detect2Chars char="f" char1="0" attribute="String0" context="#pop"/>
0397         <Detect2Chars char="f" char1="1" attribute="String1" context="#pop"/>
0398         <Detect2Chars char="f" char1="2" attribute="String2" context="#pop"/>
0399         <Detect2Chars char="f" char1="3" attribute="String3" context="#pop"/>
0400         <Detect2Chars char="f" char1="4" attribute="String4" context="#pop"/>
0401         <Detect2Chars char="f" char1="5" attribute="String5" context="#pop"/>
0402         <Detect2Chars char="f" char1="6" attribute="String6" context="#pop"/>
0403         <Detect2Chars char="f" char1="7" attribute="String7" context="#pop"/>
0404         <RegExpr String="f?." attribute="Escaped" context="#pop"/>
0405       </context>
0406 
0407       <context name="Bind" attribute="Error" lineEndContext="#pop">
0408         <DetectSpaces attribute="Normal" />
0409         <AnyChar lookAhead="true" context="#pop" String="[]();&quot;$@" />
0410         <keyword insensitive="true" attribute="Key" context="#pop" String="keys" />
0411         <Detect2Chars lookAhead="true" context="#pop" char="/" char1="/"/>
0412       </context>
0413     </contexts>
0414 
0415     <itemDatas>
0416       <itemData name="Normal"      defStyleNum="dsNormal" spellChecking="false"/>
0417       <itemData name="Lookup"      defStyleNum="dsDataType" spellChecking="false"/>
0418       <itemData name="Error"       defStyleNum="dsError" spellChecking="false"/>
0419       <itemData name="Int10"       defStyleNum="dsDecVal" spellChecking="false"/>
0420       <itemData name="IntOther"    defStyleNum="dsBaseN" spellChecking="false"/>
0421       <itemData name="Float"       defStyleNum="dsFloat" spellChecking="false"/>
0422       <itemData name="String"      defStyleNum="dsString"/>
0423       <itemData name="Escaped"     defStyleNum="dsChar" spellChecking="false"/>
0424       <itemData name="Comment"     defStyleNum="dsComment"/>
0425       <itemData name="Keyword"     defStyleNum="dsFunction" spellChecking="false"/>
0426       <itemData name="Operator"    defStyleNum="dsOperator" spellChecking="false"/>
0427       <itemData name="Key"         defStyleNum="dsOthers" spellChecking="false"/>
0428       <itemData name="LookupBrackets"    defStyleNum="dsRegionMarker" spellChecking="false"/>
0429       <itemData name="Brackets"    defStyleNum="dsNormal" bold="1" spellChecking="false"/>
0430       <!-- These are for the ^f# format tokens, the background colour is explicitly set to try and guarantee visibility at all times -->
0431       <itemData name="String0"     defStyleNum="dsString" bold="1" color="#40FF80" backgroundColor="#3F3F3F" spellChecking="false"/>
0432       <itemData name="String1"     defStyleNum="dsString" bold="1" color="#60A0FF" backgroundColor="#DFDFDF" spellChecking="false"/>
0433       <itemData name="String2"     defStyleNum="dsString" bold="1" color="#FFC040" backgroundColor="#3F3F3F" spellChecking="false"/>
0434       <itemData name="String3"     defStyleNum="dsString" bold="1" color="#FF4040" backgroundColor="#DFDFDF" spellChecking="false"/>
0435       <itemData name="String4"     defStyleNum="dsString" bold="1" color="#808080" backgroundColor="#DFDFDF" spellChecking="false"/>
0436       <itemData name="String5"     defStyleNum="dsString" bold="1" color="#A040A0" backgroundColor="#DFDFDF" spellChecking="false"/>
0437       <itemData name="String6"     defStyleNum="dsString" bold="1" color="#FF8000" backgroundColor="#DFDFDF" spellChecking="false"/>
0438       <itemData name="String7"     defStyleNum="dsString" bold="1" color="#FFFFFF" backgroundColor="#3F3F3F" spellChecking="false"/>
0439     </itemDatas>
0440   </highlighting>
0441   <general>
0442     <keywords casesensitive="true" wordWrapDeliminator="[(;" additionalDeliminator="$@" weakDeliminator="!=&lt;&gt;|&amp;^~+*"/>
0443     <comments>
0444       <comment name="singleLine" start="//" />
0445     </comments>
0446   </general>
0447 </language>
0448 <!--
0449 // kate: space-indent on; indent-width 2; replace-tabs on;
0450 -->