Warning, /frameworks/syntax-highlighting/data/syntax/template-toolkit.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 var1    "\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\.\-]*(\[[a-zA-Z0-9_]*\])*">
0005           <!ENTITY varwithbraces "\$\{[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\.\-]*(\[[a-zA-Z0-9_]*\])*\}">
0006 ]>
0007 <!--
0008     Copyright (C) 2007 Красимир Беров <k.berov@gmail.com>
0009     Put this file in your $KDEDIR/share/apps/katepart/syntax,
0010     then restart Кate/KDevelop/Quanta... whatever using katepart.
0011     That's it. You have Template Toolkit Syntax highliting.
0012     Enjoy!!!
0013     
0014     -->
0015     <!--
0016     Changelog :)
0017     0.02 Added highliting for interpolated variables
0018         -->
0019 <language version="10" kateversion="5.0"
0020           author="Красимир Беров (k.berov@gmail.com)" license="Artistic"
0021           name="TT2" section="Markup" extensions="*.tt*;" casesensitive="true">
0022 <highlighting>
0023     <list name="control structures">
0024         <!-- Template directives -->
0025         <item>SET</item>
0026         <item>GET</item>
0027         <item>CALL</item>
0028         <item>DEFAULT</item>
0029         <item>IF</item>
0030         <item>ELSIF</item>
0031         <item>ELSE</item>
0032         <item>UNLESS</item>
0033         <item>LAST</item>
0034         <item>NEXT</item>
0035         <item>FOR</item>
0036         <item>FOREACH</item>
0037         <item>WHILE</item>
0038         <item>SWITCH</item>
0039         <item>CASE</item>
0040         <item>PROCESS</item>
0041         <item>INCLUDE</item>
0042         <item>INSERT</item>
0043         <item>WRAPPER</item>
0044         <item>BLOCK</item>
0045         <item>MACRO</item>
0046         <item>END</item>
0047         <item>USE</item>
0048         <item>IN</item>
0049         <item>FILTER</item>
0050         <item>TRY</item>
0051         <item>THROW</item>
0052         <item>CATCH</item>
0053         <item>FINAL</item>
0054         <item>META</item>
0055         <item>TAGS</item>
0056         <item>DEBUG</item>
0057         <item>PERL</item>
0058     </list>
0059     <list name="keywords">
0060         <!-- Compile Time Constant Folding -->
0061         <item>constants</item>
0062         <!-- Special Variables -->
0063         <item>template</item>
0064         <item>component</item>
0065         <item>loop</item>
0066         <item>error</item>
0067         <item>content</item>
0068     </list>
0069     <list name="functions">
0070         <!-- VMethods -->
0071         <!-- Scalar Virtual Methods -->
0072         <item>defined</item>
0073         <item>length</item>
0074         <item>repeat</item>
0075         <item>replace</item>
0076         <item>match</item>
0077         <item>search</item>
0078         <item>split</item>
0079         <item>chunk</item>
0080         <item>list</item>
0081         <item>hash</item>
0082         <item>size</item>
0083         <!-- Hash Virtual Methods -->
0084         <item>keys</item>
0085         <item>values</item>
0086         <item>each</item>
0087         <item>sort</item>
0088         <item>nsort</item>
0089         <item>import</item>
0090         <item>defined</item>
0091         <item>exists</item>
0092         <item>item</item>
0093         <!-- List Virtual Methods -->
0094         <item>first</item>
0095         <item>last</item>
0096         <item>max</item>
0097         <item>reverse</item>
0098         <item>join</item>
0099         <item>grep</item>
0100         
0101         <item>unshift</item>
0102         <item>push</item>
0103         <item>shift</item>
0104         <item>pop</item>
0105         <item>unique</item>
0106         <item>merge</item>
0107         <item>slice</item>
0108         <item>splice</item>
0109         <item>count</item>
0110         <!-- Standard filters -->
0111         <item>format</item>
0112         <item>upper</item>
0113         <item>lower</item>
0114         <item>ucfirst</item>
0115         <item>lcfirst</item>
0116         <item>trim</item>
0117         <item>collapse</item>
0118         <item>html</item>
0119         <item>html_entity</item>
0120         <item>html_para</item>
0121         <item>html_break</item>
0122         <item>html_para_break</item>
0123         <item>html_line_break</item>
0124         <item>uri</item>
0125         <item>url</item>
0126         <item>indent</item>
0127         <item>truncate</item>
0128         <item>repeat</item>
0129         <item>remove</item>
0130         <item>replace</item>
0131         <item>redirect</item>
0132         <item>eval</item>
0133         <item>evaltt</item>
0134         <item>perl</item>
0135         <item>evalperl</item>
0136         <item>stdout</item>
0137         <item>stderr</item>
0138         <item>null</item>
0139         <item>latex</item>
0140     </list>
0141     <list name="operators">
0142         <item>=</item>
0143         <item>!=</item>
0144         <item>~=</item>
0145         <item>+=</item>
0146         <item>-=</item>
0147         <item>*=</item>
0148         <item>/=</item>
0149         <item>**=</item>
0150         <item>|=</item>
0151         <item>||=</item>
0152         <item>&amp;=</item>
0153         <item>&amp;&amp;=</item>
0154         <item>?=</item>
0155         <item>+</item>
0156         <item>-</item>
0157         <item>*</item>
0158         <!-- <item>/</item>//-->
0159         <item>%</item>
0160         <item>||</item>
0161         <item>&amp;&amp;</item>
0162         <item>|</item>
0163         <item>&amp;</item>
0164         <item>&lt;</item>
0165         <item>&lt;&lt;</item>
0166         <item>&gt;</item>
0167         <item>&gt;&gt;</item>
0168         <item>^</item>
0169         <item>-&gt;</item>
0170         <item>=&gt;</item>
0171         <item>.</item>
0172         <item>,</item>
0173         <item>;</item>
0174         <item>::</item>
0175         <item>\</item>
0176         <item>and</item>
0177         <item>or</item>
0178         <item>not</item>
0179         <item>eq</item>
0180         <item>ne</item>
0181     </list>
0182 
0183     <contexts>
0184         <context name="nosource" attribute="Normal Text" lineEndContext="#stay">
0185             <Detect2Chars attribute="Keyword" context="tt2source" char="[" char1="%" />
0186             <RegExpr attribute="HTML Tag" context="scripts" String="&lt;\s*script(\s|&gt;)" insensitive="true" />
0187             <RegExpr attribute="HTML Tag" context="htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
0188             <StringDetect attribute="HTML Comment" context="htmlcomment" String="&lt;!--" beginRegion="HTMLComment"/>
0189             <!-- Interpolated variables -->
0190             <RegExpr attribute="Variable" context="#stay" String="&var1;|&varwithbraces;" />
0191         </context>
0192         
0193         <context name="tt2source" attribute="TT2 Text" lineEndContext="#stay">
0194             <Detect2Chars attribute="Keyword" context="#pop" char="%" char1="]" />
0195             <DetectChar attribute="Comment" context="tt2_onelinecomment" char="#" />
0196             <DetectChar attribute="String" context="doublequotestring" char="&quot;" />
0197             <DetectChar attribute="String" context="singlequotestring" char="&#39;" />
0198             <DetectChar attribute="Keyword" context="#stay" char="&amp;" />
0199             <keyword attribute="Operator" context="#stay" String="operators" />
0200             <keyword attribute="Function" context="#stay" String="functions" />
0201             <RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" />
0202             <HlCOct attribute="Octal" context="#stay" />
0203             <HlCHex attribute="Hex" context="#stay" />
0204             <Float attribute="Float" context="#stay" />
0205             <Int attribute="Decimal" context="#stay" />
0206             <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
0207 
0208             <WordDetect attribute="Control Structures" context="#stay" String="ELSIF" insensitive="false" beginRegion="control" endRegion="control"/>
0209             <WordDetect attribute="Control Structures" context="#stay" String="ELSE" insensitive="false" beginRegion="control" endRegion="control"/>
0210             <WordDetect attribute="Control Structures" context="#stay" String="IF" insensitive="false" beginRegion="control"/>
0211             <WordDetect attribute="Control Structures" context="#stay" String="END" insensitive="false" endRegion="control"/>
0212 
0213             <WordDetect attribute="Control Structures" context="#stay" String="FOREACH" insensitive="false" beginRegion="control"/>
0214 
0215             <keyword attribute="Keyword" context="#stay" String="keywords" />
0216             <keyword attribute="Control Structures" context="#stay" String="control structures" />
0217         </context>
0218         <context name="tt2_onelinecomment" attribute="Comment" lineEndContext="#pop">
0219             <DetectSpaces />
0220             <Detect2Chars attribute="Keyword" context="#pop#pop" char="%" char1="]" />
0221             <IncludeRules context="##Comments" />
0222         </context>
0223         <context name="doublequotestring" attribute="String" lineEndContext="#stay">
0224             <Detect2Chars attribute="Escape Code" context="#stay" char="&quot;" char1="&quot;" />
0225             <RegExpr attribute="Escape Code" context="#stay" String="\\([0-7]{1,3}|x[0-9A-Fa-f]{1,2})" />
0226             <DetectChar attribute="String" context="#pop" char="&quot;" />
0227             <!-- Interpolated variables -->
0228             <RegExpr attribute="Variable" context="#stay" String="&var1;|&varwithbraces;" />
0229         </context>
0230         <context name="singlequotestring" attribute="String" lineEndContext="#stay">
0231             <Detect2Chars attribute="Escape Code" context="#stay" char="'" char1="'"/>
0232             <DetectChar attribute="String" context="#pop" char="'" />
0233         </context>
0234         <context name="htmltag" attribute="Identifier" lineEndContext="#stay">
0235             <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
0236             <DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
0237             <Detect2Chars attribute="Keyword" context="tt2source" char="[" char1="%" />
0238             <RegExpr attribute="Identifier" context="identifiers" String="\s*=\s*"/>
0239 
0240         </context>
0241         <context name="htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
0242             <Detect2Chars attribute="Keyword" context="tt2source" char="[" char1="%" />
0243             <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" endRegion="HTMLComment" />
0244             <RegExpr attribute="Normal Text" context="identifiers" String="\s*=\s*"/>
0245             <DetectSpaces />
0246             <IncludeRules context="##Comments" />
0247         </context>
0248         <context name="identifiers" attribute="Identifier" lineEndContext="#stay">
0249             <RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
0250             <DetectChar attribute="Types" context="types1" char="'" />
0251             <DetectChar attribute="Types" context="types2" char="&quot;" />
0252         </context>
0253         
0254         <context name="types1" attribute="Types" lineEndContext="#stay">
0255             <Detect2Chars attribute="Keyword" context="tt2source" char="[" char1="%" />
0256             <DetectChar attribute="Types" context="#pop#pop" char="'" />
0257         </context>
0258         
0259         <context name="types2" attribute="Types" lineEndContext="#stay">
0260             <Detect2Chars attribute="Keyword" context="tt2source" char="[" char1="%" />
0261             <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
0262         </context>
0263         
0264         <context name="scripts" attribute="Normal Text" lineEndContext="#stay">
0265             <Detect2Chars attribute="Comment" context="scripts_onelinecomment" char="/" char1="/" />
0266             <Detect2Chars attribute="Comment" context="twolinecomment" char="/" char1="*" beginRegion="Comment" />
0267             <keyword attribute="Control Structures" context="#stay" String="control structures" />
0268             <keyword attribute="Keyword" context="#stay" String="keywords" />
0269             <keyword attribute="Function" context="#stay" String="functions" />
0270             <Detect2Chars attribute="Keyword" context="tt2source" char="[" char1="%"/>
0271             <RegExpr attribute="HTML Tag" context="#pop" String="&lt;\s*\/\s*script\s*&gt;" insensitive="true" />
0272             
0273             <DetectChar attribute="String" context="doublequotestring" char="&quot;" />
0274             <DetectChar attribute="String" context="singlequotestring" char="&#39;" />
0275             <HlCOct attribute="Octal" context="#stay" />
0276             <HlCHex attribute="Hex" context="#stay" />
0277             <Float attribute="Float" context="#stay" />
0278             <Int attribute="Decimal" context="#stay" />
0279             <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" />
0280             <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" />
0281             <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
0282         </context>
0283         <context name="scripts_onelinecomment" attribute="Comment" lineEndContext="#pop">
0284             <DetectSpaces />
0285             <RegExpr attribute="HTML Tag" context="#pop#pop" String="&lt;\s*\/\s*script\s*&gt;" insensitive="true" />
0286             <IncludeRules context="##Comments" />
0287         </context>
0288         <context name="twolinecomment" attribute="Comment" lineEndContext="#stay">
0289             <DetectSpaces />
0290             <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
0291             <IncludeRules context="##Comments" />
0292         </context>
0293         
0294     </contexts>
0295             
0296     <itemDatas>
0297         <itemData name="Normal Text" defStyleNum="dsNormal" />
0298         <itemData name="TT2 Text" defStyleNum="dsNormal" />
0299         <itemData name="Keyword" defStyleNum="dsKeyword" />
0300         <itemData name="Function" defStyleNum="dsFunction" />
0301         <itemData name="Decimal" defStyleNum="dsDecVal" />
0302         <itemData name="Octal" defStyleNum="dsBaseN" />
0303         <itemData name="Hex" defStyleNum="dsBaseN" />
0304         <itemData name="Float" defStyleNum="dsFloat" />
0305         <itemData name="String" defStyleNum="dsString" />
0306         <itemData name="Comment" defStyleNum="dsComment" />
0307         <itemData name="Variable" defStyleNum="dsVariable" />
0308         <itemData name="Control Structures" defStyleNum="dsControlFlow" />
0309         <itemData name="Escape Code" defStyleNum="dsSpecialChar" />
0310         <itemData name="Other" defStyleNum="dsOthers" />
0311         <itemData name="Operator" defStyleNum="dsOperator" />
0312         <itemData name="HTML Tag" defStyleNum="dsExtension" />
0313         <itemData name="HTML Comment" defStyleNum="dsComment" />
0314         <itemData name="Identifier" defStyleNum="dsOthers" />
0315         <itemData name="Types" defStyleNum="dsDataType" />
0316     </itemDatas>
0317 </highlighting>
0318 <general>
0319     <comments>
0320         <comment name="multiLine" start="&lt;!--" end="--&gt;" region="HTMLComment" />
0321         <comment name="singleLine" start="#" />
0322     </comments>
0323     <keywords casesensitive="1" />
0324   </general>
0325 </language>
0326 <!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->