[prev in list] [next in list] [prev in thread] [next in thread]
List: quanta
Subject: Re: [Quanta] Smarty
From: Greg Rundlett <greg.rundlett () gmail ! com>
Date: 2005-08-03 22:28:29
Message-ID: 5e2aaca405080315282836363f () mail ! gmail ! com
[Download RAW message or body]
Way back when[1], I found a definition file that could be used for
EZPublish's notion of a template, which is nearly the same as Smarty
template (I believe they forked it to suit their own needs). Anyway,
if you install this file in either your home directory
(~/.kde/share/apps/katepart/syntax), or the application directory, and
restart QuantaPlus, you'll have tpl syntax highlighting in Quanta (and
of course Kate too). Not sure if you have to twiddle with mime-types
to get this automatically applied to .tpl files.
Maybe later on I'll have a chance to review the actual definitions,
and post it to the Kate team for inclusion in their download site.
I claim no copyright over this file, and I can not find the original
author/copyright, but *if* I do have copyrights then it is licensed
under the GPL v 2, or subsequent versions.
[1] http://mail.kde.org/pipermail/quanta/2005-February/006404.html
["tpl.xml" (text/xml)]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Smarty Template" version="1.0" kateversion="2.1" section="Scripts" \
extensions="*.tpl" mimetype="text/html"> <highlighting>
<list name="others">
<item> ; </item>
<item> / </item>
<item> ( </item>
<item> ) </item>
<item> : </item>
<item> , </item>
<item> [ </item>
<item> ] </item>
</list>
<list name="operators">
<item> array </item>
<item> attribute </item>
<item> autolink </item>
<item> concat </item>
<item> currentdate </item>
<item> datetime </item>
<item> false </item>
<item> fetch </item>
<item> hash </item>
<item> l10n </item>
<item> si </item>
<item> true </item>
<item> wash </item>
<item> cond </item>
<item> first_set </item>
<item> lt </item>
<item> gt </item>
<item> le </item>
<item> ge </item>
<item> eq </item>
<item> null </item>
<item> not </item>
<item> or </item>
<item> and </item>
<item> choose </item>
<item> contains </item>
<item> is_array </item>
<item> is_boolean </item>
<item> is_integer </item>
<item> is_float </item>
<item> is_numeric </item>
<item> is_string </item>
<item> is_object </item>
<item> is_class </item>
<item> is_null </item>
<item> is_set </item>
<item> is_unset </item>
<item> get_type </item>
<item> get_class </item>
<item> sum </item>
<item> sub </item>
<item> inc </item>
<item> dec </item>
<item> div </item>
<item> mod </item>
<item> mul </item>
<item> max </item>
<item> min </item>
<item> abs </item>
<item> ceil </item>
<item> floor </item>
<item> count </item>
<item> round </item>
<item> image </item>
<item> imagefile </item>
<item> texttoimage </item>
<item> ezurl </item>
<item> ezroot </item>
<item> ezsys </item>
<item> ezdesign </item>
<item> ezimage </item>
<item> exturl </item>
<item> i18n </item>
<item> x18n </item>
</list>
<list name="functions">
<item> append-block </item>
<item> attribute_edit_gui </item>
<item> attribute_view_gui </item>
<item> cache-block </item>
<item> case </item>
<item> class_attribute_edit_gui </item>
<item> collaboration_icon </item>
<item> collaboration_participation_view </item>
<item> collaboration_simple_message_view </item>
<item> collaboration_view_gui </item>
<item> content_version_view_gui </item>
<item> content_view_gui </item>
<item> default </item>
<item> delimiter </item>
<item> event_edit_gui </item>
<item> include </item>
<item> ldelim </item>
<item> let </item>
<item> node_view_gui </item>
<item> rdelim </item>
<item> run-once </item>
<item> section </item>
<item> section-exclude </item>
<item> section-include </item>
<item> sequence </item>
<item> set </item>
<item> set-block </item>
<item> shop_account_view_gui </item>
<item> switch </item>
</list>
<contexts>
<context name="nosource" attribute="Normal Text" lineEndContext="#stay">
<StringDetect attribute="Comment" context="twolinecomment" \
String="{*" />
<StringDetect attribute="Keyword" context="eztplsource" 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="<!--" /> </context>
<context name="eztplsource" attribute="eZ Template" \
lineEndContext="#stay">
<StringDetect attribute="Keyword" context="#pop" String="}" />
<DetectChar attribute="Comment" context="onelinecomment" char="*" />
<Detect2Chars attribute="Comment" context="twolinecomment" char="/" \
char1="*" />
<keyword attribute="Keyword" context="#stay" String="keywords" />
<DetectChar attribute="String" context="doblequotestring" \
char=""" />
<DetectChar attribute="String" context="singlequotestring" \
char="'" /> <RegExpr attribute="String" context="" String="" />
<RegExpr attribute="Variable" context="#stay" \
String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z\.0-9_\x7f-\xff]*" /> <HlCOct attribute="Octal" \
context="#stay" /> <HlCHex attribute="Hex" context="#stay" />
<Float attribute="Float" context="#stay" />
<Int attribute="Decimal" context="#stay" />
<AnyChar attribute="Operator" context="#stay" \
String="=+*.%&|!^{}" />
<keyword attribute="Operator" context="#stay" String="operators" />
<AnyChar attribute="Other" context="#stay" String=";():,[]" />
<keyword attribute="Other" context="#stay" String="Others" />
<StringDetect attribute="Function" context="#stay" \
String="append-block" />
<StringDetect attribute="Function" context="#stay" \
String="cache-block" />
<StringDetect attribute="Function" context="#stay" String="run-once" \
/>
<StringDetect attribute="Function" context="#stay" String="set-block" \
/>
<StringDetect attribute="Function" context="#stay" \
String="section-else" />
<StringDetect attribute="Function" context="#stay" \
String="section-exclude" />
<StringDetect attribute="Function" context="#stay" \
String="section-include" />
<StringDetect attribute="Function" context="#stay" String="/section" \
/>
<StringDetect attribute="Function" context="#stay" String="/let" />
<StringDetect attribute="Function" context="#stay" String="/default" \
/>
<keyword attribute="Function" context="#stay" String="functions" />
</context>
<context name="onelinecomment" attribute="Comment" lineEndContext="#pop" \
/>
<context name="twolinecomment" attribute="Comment" \
lineEndContext="#stay">
<StringDetect attribute="Comment" context="#pop" String="*}" />
</context>
<context name="onelinecomment_2" attribute="Comment" \
lineEndContext="#pop" />
<context name="doblequotestring" attribute="String" \
lineEndContext="#stay">
<Detect2Chars attribute="Backslash Code" context="#stay" char="\" \
char1=""" />
<Detect2Chars attribute="Backslash Code" context="#stay" char="\" \
char1="\" />
<Detect2Chars attribute="Backslash Code" context="#stay" char="\" \
char1="n" />
<Detect2Chars attribute="Backslash Code" context="#stay" char="\" \
char1="r" />
<Detect2Chars attribute="Backslash Code" context="#stay" char="\" \
char1="t" />
<Detect2Chars attribute="Backslash Code" context="#stay" char="\" \
char1="$" />
<RegExpr attribute="Backslash Code" context="#stay" \
String="\\[0-7]{1,3}" />
<RegExpr attribute="Backslash Code" \
context="#stay"String="\\x[0-9A-Fa-f]{1,2}" />
<RegExpr attribute="Variable" context="#stay" \
String="\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*" \
/>
<RegExpr attribute="Variable" context="#stay" \
String="\$\{[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*\}" /> \
<RegExpr attribute="Variable" context="#stay" \
String="\{\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[([0-9]*|"[a-zA-Z_]*") \
|'[a-zA-Z_]*'|\])*(->[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*(\[([0-9]*|"[a-zA-Z_]*")|'[a-zA-Z_]*'|\])*)*\}" \
/>
<DetectChar attribute="String" context="#pop" char=""" />
</context>
<context name="singlequotestring" attribute="String" \
lineEndContext="#stay">
<Detect2Chars attribute="Backslash Code" context="#stay" char="\" \
char1="'"/>
<Detect2Chars attribute="Backslash 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="eztplsource" String="{" />
<RegExpr attribute="Identifier" context="identifiers" \
String="\s*=\s*"/> </context>
<context name="htmlcomment" attribute="HTML Comment" \
lineEndContext="#stay">
<StringDetect attribute="Keyword" context="eztplsource" String="{" />
<StringDetect attribute="HTML Comment" context="#pop" String="-->" \
/> </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=""" />
<DetectChar attribute="Keyword" context="eztplsourceinidentifier" \
char="{" /> </context>
<context name="types1" attribute="Types" lineEndContext="#stay">
<StringDetect attribute="Keyword" context="eztplsource" String="{" />
<DetectChar attribute="Types" context="#pop#pop" char="'" />
</context>
<context name="types2" attribute="Types" lineEndContext="#stay">
<StringDetect attribute="Keyword" context="eztplsource" String="{" />
<DetectChar attribute="Types" context="#pop#pop" char=""" />
</context>
<context name="eztplsourceinidentifier" attribute="eZ Template" \
lineEndContext="#stay">
<StringDetect attribute="Keyword" context="#pop#pop" String="}" />
<DetectChar attribute="Comment" context="onelinecomment" char="*" />
<Detect2Chars attribute="Comment" context="twolinecomment" char="/" \
char1="*" />
<keyword attribute="Keyword" context="#stay" String="keywords" />
<DetectChar attribute="String" context="doblequotestring" \
char=""" />
<DetectChar attribute="String" context="singlequotestring" \
char="'" /> <RegExpr attribute="String" context="" String="" />
<RegExpr attribute="Variable" context="#stay" \
String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z\.0-9_\x7f-\xff]*" /> <HlCOct attribute="Octal" \
context="#stay" /> <HlCHex attribute="Hex" context="#stay" />
<Float attribute="Float" context="#stay" />
<Int attribute="Decimal" context="#stay" />
<AnyChar attribute="Operator" context="#stay" \
String="=+*.%&|!^{}" />
<keyword attribute="Operator" context="#stay" String="operators" />
<AnyChar attribute="Other" context="#stay" String=";():,[]" />
<keyword attribute="Other" context="#stay" String="Others" />
<StringDetect attribute="Function" context="#stay" \
String="append-block" />
<StringDetect attribute="Function" context="#stay" \
String="cache-block" />
<StringDetect attribute="Function" context="#stay" String="run-once" \
/>
<StringDetect attribute="Function" context="#stay" String="set-block" \
/>
<StringDetect attribute="Function" context="#stay" \
String="section-else" />
<StringDetect attribute="Function" context="#stay" \
String="section-exclude" />
<StringDetect attribute="Function" context="#stay" \
String="section-include" />
<StringDetect attribute="Function" context="#stay" String="/section" \
/>
<StringDetect attribute="Function" context="#stay" String="/let" />
<StringDetect attribute="Function" context="#stay" String="/default" \
/>
<keyword attribute="Function" context="#stay" String="functions" />
</context>
<context name="scripts" attribute="Normal Text" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="onelinecomment" char="/" \
char1="/" />
<Detect2Chars attribute="Comment" context="twolinecomment" char="/" \
char1="*" />
<keyword attribute="Keyword" context="#stay" String="keywords" />
<keyword attribute="Function" context="#stay" String="functions" />
<StringDetect attribute="Keyword" context="eztplsource" String="{"/>
<RegExpr attribute="HTML Tag" context="#pop" \
String="{\s*\/\s*script\s*}" insensitive="TRUE" />
<DetectChar attribute="String" context="doblequotestring" \
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" />
<AnyChar attribute="Operator" context="#stay" \
String="=+-*/.%&|!^}{" />
<keyword attribute="Operator" context="#stay" String="operators" />
<AnyChar attribute="Other" context="#stay" String=";():,[]" />
<keyword attribute="Other" context="#stay" String="Others" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Keyword" defStyleNum="dsKeyword" />
<itemData name="Function" defStyleNum="dsKeyword" color="#0000FF" \
selColor="#00ffff" bold="0" italic="0"/>
<itemData name="Operator" defStyleNum="dsKeyword" color="#00F000" \
selColor="#ffffff" bold="1" 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" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Variable" defStyleNum="dsKeyword" color="#5555FF" \
selColor="#ffffff" bold="0" italic="0" />
<itemData name="Backslash Code" defStyleNum="dsKeyword" color="#0F0F8F" \
selColor="#ffffff" bold="1" italic="0" /> <itemData name="Other" \
defStyleNum="dsOthers" />
<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="singleLine" start="{*" end="*}" />
<comment name="multiLine" start="{*" end="*}" />
</comments>
<keywords casesensitive="0" weakDeliminator=""/>
</general>
</language>
_______________________________________________
Quanta mailing list
Quanta@mail.kde.org
https://mail.kde.org/mailman/listinfo/quanta
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic