diff options
Diffstat (limited to 'kate/data/template-toolkit.xml')
-rw-r--r-- | kate/data/template-toolkit.xml | 331 |
1 files changed, 331 insertions, 0 deletions
diff --git a/kate/data/template-toolkit.xml b/kate/data/template-toolkit.xml new file mode 100644 index 000000000..d81bcdcd2 --- /dev/null +++ b/kate/data/template-toolkit.xml @@ -0,0 +1,331 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE language SYSTEM "language.dtd" + [ + <!ENTITY var1 "\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\.\-]*(\[[a-zA-Z0-9_]*\])*"> + <!ENTITY varwithbraces "\$\{[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\.\-]*(\[[a-zA-Z0-9_]*\])*\}"> +]> +<!-- + Copyright (C) 2007 Красимир Беров <k.berov@gmail.com> + Put this file in your $TDEDIR/share/apps/katepart/syntax, + then restart Кate/KDevelop/Quanta... whatever using katepart. + That's it. You have Template Toolkit Syntax highliting. + Enjoy!!! + + --> + <!-- + Changelog :) + 0.02 Added highliting for interpolated variables + --> +<language version="0.04" kateversion="2.5" + author="Красимир Беров (k.berov@gmail.com)" license="Artistic" + name="TT2" section="Markup" extensions="*.tt*;" casesensitive="TRUE"> +<highlighting> + <list name="control structures"> + <!-- Template directives --> + <item>SET</item> + <item>GET</item> + <item>CALL</item> + <item>DEFAULT</item> + <item>IF</item> + <item>ELSIF</item> + <item>ELSE</item> + <item>UNLESS</item> + <item>LAST</item> + <item>NEXT</item> + <item>FOR</item> + <item>FOREACH</item> + <item>WHILE</item> + <item>SWITCH</item> + <item>CASE</item> + <item>PROCESS</item> + <item>INCLUDE</item> + <item>INSERT</item> + <item>WRAPPER</item> + <item>BLOCK</item> + <item>MACRO</item> + <item>END</item> + <item>USE</item> + <item>IN</item> + <item>FILTER</item> + <item>TRY</item> + <item>THROW</item> + <item>CATCH</item> + <item>FINAL</item> + <item>META</item> + <item>TAGS</item> + <item>DEBUG</item> + <item>PERL</item> + </list> + <list name="keywords"> + <!-- Compile Time Constant Folding --> + <item>constants</item> + <!-- Special Variables --> + <item>template</item> + <item>component</item> + <item>loop</item> + <item>error</item> + <item>content</item> + </list> + <list name="items"> + <!-- VMethods --> + <!-- Scalar Virtual Methods --> + <item>defined</item> + <item>length</item> + <item>repeat</item> + <item>replace</item> + <item>match</item> + <item>search</item> + <item>split</item> + <item>chunk</item> + <item>list</item> + <item>hash</item> + <item>size</item> + <!-- Hash Virtual Methods --> + <item>keys</item> + <item>values</item> + <item>each</item> + <item>sort</item> + <item>nsort</item> + <item>import</item> + <item>defined</item> + <item>exists</item> + <item>item</item> + <!-- List Virtual Methods --> + <item>first</item> + <item>last</item> + <item>max</item> + <item>reverse</item> + <item>join</item> + <item>grep</item> + + <item>unshift</item> + <item>push</item> + <item>shift</item> + <item>pop</item> + <item>unique</item> + <item>merge</item> + <item>slice</item> + <item>splice</item> + <item>count</item> + <!-- Standard filters --> + <item>format</item> + <item>upper</item> + <item>lower</item> + <item>ucfirst</item> + <item>lcfirst</item> + <item>trim</item> + <item>collapse</item> + <item>html</item> + <item>html_entity</item> + <item>html_para</item> + <item>html_break</item> + <item>html_para_break</item> + <item>html_line_break</item> + <item>uri</item> + <item>url</item> + <item>indent</item> + <item>truncate</item> + <item>repeat</item> + <item>remove</item> + <item>replace</item> + <item>redirect</item> + <item>eval</item> + <item>evaltt</item> + <item>perl</item> + <item>evalperl</item> + <item>stdout</item> + <item>stderr</item> + <item>null</item> + <item>latex</item> + </list> + <list name="operators"> + <item> = </item> + <item> != </item> + <item> ~= </item> + <item> += </item> + <item> -= </item> + <item> *= </item> + <item> /= </item> + <item> **= </item> + <item> |= </item> + <item> ||= </item> + <item> &= </item> + <item> &&= </item> + <item> ?= </item> + <item> + </item> + <item> - </item> + <item> * </item> + <!-- <item> / </item>//--> + <item> % </item> + <item> || </item> + <item> && </item> + <item> | </item> + <item> & </item> + <item> < </item> + <item> << </item> + <item> > </item> + <item> >> </item> + <item> ^ </item> + <item> -> </item> + <item> => </item> + <item> . </item> + <item> , </item> + <item> ; </item> + <item> :: </item> + <item> \ </item> + <item> and </item> + <item> or </item> + <item> not </item> + <item> eq </item> + <item> ne </item> + </list> + + <contexts> + <context name="nosource" attribute="Normal Text" lineEndContext="#stay"> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <RegExpr attribute="HTML Tag" context="scripts" String="<\s*script(\s|>)" insensitive="TRUE" /> + <RegExpr attribute="HTML Tag" context="htmltag" String="<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" /> + <StringDetect attribute="HTML Comment" context="htmlcomment" String="<!--" /> + <!-- Interpolated variables --> + <RegExpr attribute="Variable" context="#stay" String="&var1;" /> + <RegExpr attribute="Variable" context="#stay" String="&varwithbraces;" /> + </context> + + <context name="tt2source" attribute="TT2 Text" lineEndContext="#stay"> + <StringDetect attribute="Keyword" context="#pop" String="%]" /> + <DetectChar attribute="Comment" context="tt2_onelinecomment" char="#" /> + <DetectChar attribute="String" context="doublequotestring" char=""" /> + <DetectChar attribute="String" context="singlequotestring" char="'" /> + <DetectChar attribute="Keyword" context="#stay" char="&" /> + <keyword attribute="Operator" context="#stay" String="operators" /> + <keyword attribute="Function" context="#stay" String="functions" /> + <RegExpr attribute="String" context="" String="" /> + <RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" /> + <HlCOct attribute="Octal" context="#stay" /> + <HlCHex attribute="Hex" context="#stay" /> + <Float attribute="Float" context="#stay" /> + <Int attribute="Decimal" context="#stay" /> + <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" /> + <keyword attribute="Other" context="#stay" String="Others" /> + + <RegExpr attribute="Control Structures" context="#stay" String="\bELSIF\b" insensitive="FALSE" beginRegion="iffi1" endRegion="iffi1"/> + <RegExpr attribute="Control Structures" context="#stay" String="\bELSE\b" insensitive="FALSE" beginRegion="iffi1" endRegion="iffi1"/> + <RegExpr attribute="Control Structures" context="#stay" String="\bIF\b" insensitive="FALSE" beginRegion="iffi1"/> + <RegExpr attribute="Control Structures" context="#stay" String="\bEND\b" insensitive="FALSE" endRegion="iffi1"/> + + <RegExpr attribute="Control Structures" context="#stay" String="\bFOREACH\b" insensitive="FALSE" beginRegion="foreachblock"/> + <RegExpr attribute="Control Structures" context="#stay" String="\bEND\b" insensitive="FALSE" endRegion="foreachblock"/> + + + <keyword attribute="Keyword" context="#stay" String="keywords" /> + <keyword attribute="Control Structures" context="#stay" String="control structures" /> + <keyword attribute="Function" context="#stay" String="functions" /> + </context> + <context name="tt2_onelinecomment" attribute="Comment" lineEndContext="#pop"> + <StringDetect attribute="Keyword" context="#pop#pop" String="%]" /> + </context> + <context name="doublequotestring" attribute="String" lineEndContext="#stay"> + <Detect2Chars attribute="Escape Code" context="#stay" char=""" char1=""" /> + <RegExpr attribute="Escape Code" context="#stay" String="\\[0-7]{1,3}" /> + <RegExpr attribute="Escape Code" context="#stay" String="\\x[0-9A-Fa-f]{1,2}" /> + <DetectChar attribute="String" context="#pop" char=""" /> + <!-- Interpolated variables --> + <RegExpr attribute="Variable" context="#stay" String="&var1;" /> + <RegExpr attribute="Variable" context="#stay" String="&varwithbraces;" /> + </context> + <context name="singlequotestring" attribute="String" lineEndContext="#stay"> + <Detect2Chars attribute="Escape Code" context="#stay" char="'" char1="'"/> + <DetectChar attribute="String" context="#pop" char="'" /> + </context> + <context name="htmltag" attribute="Identifier" lineEndContext="#stay"> + <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1=">" /> + <DetectChar attribute="HTML Tag" context="#pop" char=">"/> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <RegExpr attribute="Identifier" context="identifiers" String="\s*=\s*"/> + + </context> + <context name="htmlcomment" attribute="HTML Comment" lineEndContext="#stay"> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <StringDetect attribute="HTML Comment" context="#pop" String="-->" /> + <RegExpr attribute="Normal Text" context="identifiers" String="\s*=\s*"/> + </context> + <context name="identifiers" attribute="Identifier" lineEndContext="#stay"> + <RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" /> + <DetectChar attribute="Types" context="types1" char="'" /> + <DetectChar attribute="Types" context="types2" char=""" /> + </context> + + <context name="types1" attribute="Types" lineEndContext="#stay"> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <DetectChar attribute="Types" context="#pop#pop" char="'" /> + </context> + + <context name="types2" attribute="Types" lineEndContext="#stay"> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <StringDetect attribute="Keyword" context="tt2source" String="[%" /> + <DetectChar attribute="Types" context="#pop#pop" char=""" /> + </context> + + <context name="scripts" attribute="Normal Text" lineEndContext="#stay"> + <Detect2Chars attribute="Comment" context="scripts_onelinecomment" char="/" char1="/" /> + <Detect2Chars attribute="Comment" context="twolinecomment" char="/" char1="*" /> + <keyword attribute="Control Structures" context="#stay" String="control structures" /> + <keyword attribute="Keyword" context="#stay" String="keywords" /> + <keyword attribute="Function" context="#stay" String="functions" /> + <StringDetect attribute="Keyword" context="tt2source" String="[%"/> + <RegExpr attribute="HTML Tag" context="#pop" String="<\s*\/\s*script\s*>" insensitive="TRUE" /> + + <DetectChar attribute="String" context="doublequotestring" char=""" /> + <DetectChar attribute="String" context="singlequotestring" char="'" /> + <HlCOct attribute="Octal" context="#stay" /> + <HlCHex attribute="Hex" context="#stay" /> + <Float attribute="Float" context="#stay" /> + <Int attribute="Decimal" context="#stay" /> + <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" /> + <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" /> + <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" /> + <keyword attribute="Other" context="#stay" String="Others" /> + </context> + <context name="scripts_onelinecomment" attribute="Comment" lineEndContext="#pop"> + <RegExpr attribute="HTML Tag" context="#pop#pop" String="<\s*\/\s*script\s*>" insensitive="TRUE" /> + </context> + <context name="twolinecomment" attribute="Comment" lineEndContext="#stay"> + <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" /> + </context> + + </contexts> + + <itemDatas> + <itemData name="Normal Text" defStyleNum="dsNormal" /> + <itemData name="TT2 Text" defStyleNum="dsNormal" /> + <itemData name="Keyword" defStyleNum="dsKeyword" /> + <itemData name="Function" defStyleNum="dsKeyword" color="#0000FF" selColor="#00ffff" bold="0" italic="0"/> + <itemData name="Decimal" defStyleNum="dsDecVal" /> + <itemData name="Octal" defStyleNum="dsBaseN" /> + <itemData name="Hex" defStyleNum="dsBaseN" /> + <itemData name="Float" defStyleNum="dsFloat" /> + <itemData name="String" defStyleNum="dsString" color="#FF6C6C" selColor="#FF6C6C" bold="0" italic="0" /> + <itemData name="Comment" defStyleNum="dsComment" /> + <itemData name="Variable" defStyleNum="dsKeyword" color="#5555FF" selColor="#ffffff" bold="1" italic="0" /> + <itemData name="Control Structures" defStyleNum="dsKeyword" color="#0000dd" selColor="#ffffff" bold="1" italic="0" /> + <itemData name="Backslash Code" defStyleNum="dsKeyword" color="#0F0F8F" selColor="#ffffff" bold="1" italic="0" /> + <itemData name="Other" defStyleNum="dsOthers" /> + <itemData name="Operator" defStyleNum="dsKeyword" color="#008000"/> + <itemData name="HTML Tag" defStyleNum="dsKeyword" color="#0F0000" selColor="#ffffff" bold="1" italic="0" /> + <itemData name="HTML Comment" defStyleNum="dsComment" /> + <itemData name="Identifier" defStyleNum="dsOthers" /> + <itemData name="Types" defStyleNum="dsDataType" /> + </itemDatas> +</highlighting> +<general> + <comments> + <comment name="multiLine" start="<!--" end="-->" /> + <comment name="singleLine" start="#" /> + <comment name="multiLine" start="[%#" end="%]"/> + </comments> + <keywords casesensitive="1" /> + </general> +</language> |