[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="&lt;\s*script(\s|&gt;)" insensitive="TRUE" />
                <RegExpr attribute="HTML Tag" context="htmltag" \
                String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
                <StringDetect attribute="HTML Comment" context="htmlcomment" \
String="&lt;!--" />  </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="&#42;" />
                <keyword attribute="Keyword" context="#stay" String="keywords" />
                <DetectChar attribute="String" context="doblequotestring" \
                char="&quot;" />
                <DetectChar attribute="String" context="singlequotestring" \
char="&#39;" />  <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="=+*.%&amp;|!^{}" />
                <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="&quot;" />
                <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]*|&quot;[a-zA-Z_]*&quot;) \
|'[a-zA-Z_]*'|\])*(->[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*(\[([0-9]*|&quot;[a-zA-Z_]*&quot;)|'[a-zA-Z_]*'|\])*)*\}" \
                />
                <DetectChar attribute="String" context="#pop" char="&quot;" />
            </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="&gt;" />
                <DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
                <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="--&gt;" \
/>  </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="&quot;" />
                <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="&quot;" />
            </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="&#42;" />
                <keyword attribute="Keyword" context="#stay" String="keywords" />
                <DetectChar attribute="String" context="doblequotestring" \
                char="&quot;" />
                <DetectChar attribute="String" context="singlequotestring" \
char="&#39;" />  <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="=+*.%&amp;|!^{}" />
                <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="&#42;" />
                <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="&quot;" />
                <DetectChar attribute="String" context="singlequotestring" \
char="&#39;" />  <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="=+-*/.%&amp;|!^}{" />
                <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