Code Comments

Programming Forum and web based access to our favorite programming groups.
For Programmers: Free Programming Magazines | New: Database administration forum
Registration is free! Edit your profileCalendarFind other membersFrequently Asked QuestionsSearch -> 
Post New Thread











Thread
Author

Smarty Syntax Definition for Kate and KatePart
Hi!

I have already sent the syntax definition to both the Smarty and Kate
devel groups, but I'm more than happy to send it again. Oh, yes, I'm
still using Kate version 2.2.1, so pretty much everyting was made and
tested for that version. It would be nice to compare our syntax files,
to come up with a pretty decent solution (more official solution). You
are welcome to contact me personally in that regard, and we can discuss
every little bit of the syntax definition file.

Cheerios,
Werner

Following is my original message:

-----------
Please find attached my Smarty Syntax Definition.

A few notes:

1) Improvements are *very* welcome. This is my first syntax definition
(born out of necessity), I hope it helps someone out there (at least
I've been using it a lot).
2) It includes the HTML Syntax Definition (v1.93 tested) with
<IncludeRules context="##HTML" />
3) Known bug: Smarty Code is not recognized inside HTML 'Values'
(especially attributes), due to the amateur-like down-and-dirty way
which I included the HTML definition.
Not-recognized example:
<select name="{$myVar}">
If anyone knows how to solve this I would be very happy, just to escape
the Smarty Code from within an HTML 'Value', without modifying the HTML
Syntax Definition.
4) If anyone more experienced with Syntax Definitions would like to
rewrite the whole thing based on the info of my file, please go ahead,
but let me know, so I can use the improved version as well.
5) Keep me posted (feedback is welcome) if I missed something very basic
in Smarty's syntax.


----
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Smarty" version="1.00" kateversion="2.2"
section="Scripts" extensions="*.tpl" mimetype="text/smarty-src"
author="Werner Mollentze (werner@zoomsouth.com)" license="LGPL">

<highlighting>

<list name="keywords">
<item> capture </item>
<item> config_load </item>
<item> else </item>
<item> elseif </item>
<item> foreach </item>
<item> foreachelse </item>
<item> if </item>
<item> include </item>
<item> include_php </item>
<item> insert </item>
<item> ldelim </item>
<item> literal </item>
<item> php </item>
<item> rdelim </item>
<item> section </item>
<item> sectionelse </item>
<item> strip </item>
<item> /if </item>
<item> /section </item>
<item> /foreach </item>
<!-- Custom functions -->
<item> assign </item>
<item> counter </item>
<item> cycle </item>
<item> debug </item>
<item> eval </item>
<item> fetch </item>
<item> html_options </item>
<item> html_select_date </item>
<item> html_select_time </item>
<item> math </item>
<item> popup </item>
<item> popup_init </item>
<item> textformat </item>
</list>

<list name="modifiers">
<item> capitalize </item>
<item> count_characters </item>
<item> count_paragraphs </item>
<item> count_sentences </item>
<item> count_words </item>
<item> date_format </item>
<item> default </item>
<item> escape </item>
<item> indent </item>
<item> lower </item>
<item> regex_replace </item>
<item> replace </item>
<item> spacify </item>
<item> string_format </item>
<item> strip </item>
<item> strip_tags </item>
<item> truncate </item>
<item> upper </item>
<item> wordwrap </item>
</list>

<list name="attributes">
<item> above </item>
<item> advance </item>
<item> all_extra </item>
<item> assign </item>
<item> autostatus </item>
<item> autostatuscap </item>
<item> background </item>
<item> below </item>
<item> bgbackground </item>
<item> bgcolor </item>
<item> border </item>
<item> caparray </item>
<item> capcolor </item>
<item> capicon </item>
<item> caption </item>
<item> captionfont </item>
<item> captionsize </item>
<item> center </item>
<item> closecolor </item>
<item> closefont </item>
<item> closesize </item>
<item> closetext </item>
<item> day_extra </item>
<item> day_format </item>
<item> day_size </item>
<item> delay </item>
<item> delimiter </item>
<item> direction </item>
<item> display_days </item>
<item> display_hours </item>
<item> display_meridian </item>
<item> display_minutes </item>
<item> display_months </item>
<item> display_seconds </item>
<item> display_years </item>
<item> end_year </item>
<item> equation </item>
<item> fgbackground </item>
<item> fgcolor </item>
<item> field_array </item>
<item> field_order </item>
<item> field_separator </item>
<item> file </item>
<item> fixx </item>
<item> fixy </item>
<item> format </item>
<item> frame </item>
<item> from </item>
<item> fullhtml </item>
<item> hauto </item>
<item> height </item>
<item> hour_extra </item>
<item> inarray </item>
<item> indent </item>
<item> indent_char </item>
<item> indent_first </item>
<item> item </item>
<item> key </item>
<item> left </item>
<item> loop </item>
<item> max </item>
<item> meridian_extra </item>
<item> minute_extra </item>
<item> minute_interval </item>
<item> month_extra </item>
<item> month_format </item>
<item> month_size </item>
<item> month_value_format </item>
<item> name </item>
<item> noclose </item>
<item> offsetx </item>
<item> offsety </item>
<item> once </item>
<item> options </item>
<item> output </item>
<item> padx </item>
<item> pady </item>
<item> prefix </item>
<item> print </item>
<item> reverse_years </item>
<item> right </item>
<item> scope </item>
<item> script </item>
<item> second_extra </item>
<item> second_interval </item>
<item> section </item>
<item> selected </item>
<item> show </item>
<item> skip </item>
<item> snapx </item>
<item> snapy </item>
<item> start </item>
<item> start_year </item>
<item> status </item>
<item> step </item>
<item> sticky </item>
<item> stop </item>
<item> style </item>
<item> text </item>
<item> textcolor </item>
<item> textfont </item>
<item> textsize </item>
<item> time </item>
<item> timeout </item>
<item> trigger </item>
<item> use_24_hours </item>
<item> value </item>
<item> values </item>
<item> var </item>
<item> vauto </item>
<item> width </item>
<item> wrap </item>
<item> wrap_char </item>
<item> wrap_cut </item>
<item> year_as_text </item>
<item> year_extra </item>
<item> year_size </item>
</list>

<contexts>

<context attribute="Normal Text" lineEndContext="#stay"
name="Smarty">
<Detect2Chars attribute="Comment" context="Comment"
char="{" char1="*"/>
<DetectChar attribute="Smarty Code" context="smartycode"
char="{"/>
<IncludeRules context="##HTML" />
</context>

<context attribute="Smarty Code" lineEndContext="#stay"
name="smartycode">
<DetectChar attribute="Smarty Code" context="#pop"
char="}"/>
<DetectChar attribute="String" context="String"
char="""/>
<DetectChar attribute="String" context="String" char="'"/>
<RegExpr attribute="Reserved Variable" context="#stay"
String="[\$]+smarty[._a-zA-Z0-9\x7f-\xff]*" />
<RegExpr attribute="Variable" context="#stay"
String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />
<RegExpr attribute="Variable" context="#stay"
String="#+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*#" />
<RegExpr attribute="Associative" context="#stay"
String="\.+[a-zA-Z0-9_\x7f-\xff]*" />
<RegExpr attribute="Property" context="#stay"
String="->[\s]*[_a-zA-Z0-9\x7f-\xff]*" />
<RegExpr attribute="Brace" context="brace" String="\["/>
<!-- the usual -->
<keyword attribute="Keyword" context="#stay"
String="keywords"/>
<keyword attribute="Modifiers" context="#stay"
String="modifiers"/>
<keyword attribute="Attributes" context="#stay"
String="attributes"/>
<Float attribute="Float" context="#stay"/>
<Int attribute="Decimal" context="#stay"/>
<!-- smarty operators -->
<Detect2Chars attribute="Operator" context="#stay"
char="!" char1="="/>
<DetectChar attribute="Operator" context="#stay"
char="&gt;"/>
<Detect2Chars attribute="Operator" context="#stay"
char="&gt;" char1="="/>
<DetectChar attribute="Operator" context="#stay"
char="&lt;"/>
<Detect2Chars attribute="Operator" context="#stay"
char="&lt;" char1="="/>
<DetectChar attribute="Operator" context="#stay" char="`"/>
<DetectChar attribute="Operator" context="#stay" char="."/>
<DetectChar attribute="Operator" context="#stay" char=":"/>
<DetectChar attribute="Operator" context="#stay" char="="/>
<Detect2Chars attribute="Operator" context="#stay"
char="=" char1="="/>
<DetectChar attribute="Operator" context="#stay" char="|"/>
<RegExpr attribute="Operator" context="#stay" String="eq"/>
<RegExpr attribute="Operator" context="#stay"
String="div by"/>
<RegExpr attribute="Operator" context="#stay"
String="even by"/>
<RegExpr attribute="Operator" context="#stay" String="is
even"/>
<RegExpr attribute="Operator" context="#stay" String="is
not even"/>
<RegExpr attribute="Operator" context="#stay" String="is
not odd"/>
<RegExpr attribute="Operator" context="#stay" String="is
odd"/>
<RegExpr attribute="Operator" context="#stay"
String="odd by"/>
<RegExpr attribute="Operator" context="#stay" String="not"/>
<RegExpr attribute="Operator" context="#stay" String="and"/>
<RegExpr attribute="Operator" context="#stay" String="or"/>
</context>

<context attribute="Brace" lineEndContext="#stay" name="brace">
<DetectChar attribute="Brace" context="#pop" char="]"/>
<RegExpr attribute="Variable" context="#stay"
String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />
<RegExpr attribute="Variable" context="#stay"
String="#+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*#" />
<RegExpr attribute="ArrIndex" context="#stay"
String="[^\]]*" />
</context>

<context attribute="String" lineEndContext="#pop" name="String">
<DetectChar attribute="String" context="#pop"
char="""/>
<DetectChar attribute="String" context="#pop" char="'"/>
<RegExpr attribute="Variable" context="#stay"
String="#+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*#" />
<RegExpr attribute="Variable" context="#stay"
String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />
<RegExpr attribute="Associative" context="#stay"
String="\.+[a-zA-Z0-9_\x7f-\xff]*" />
<RegExpr attribute="Property" context="#stay"
String="->[\s]*[_a-zA-Z0-9\x7f-\xff]*" />
<RegExpr attribute="Brace" context="brace" String="\["/>
</context>

<context attribute="Comment" lineEndContext="#stay"
name="Comment">
<Detect2Chars attribute="Comment" context="#pop"
char="*" char1="}" />
<RegExpr attribute="Alert" context="#stay"
String="(FIXME|TODO)" />
</context>

</contexts>

<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Smarty Code" defStyleNum="dsKeyword"
color="#000080" selColor="#ffffff" italic="0" bold="1" />
<itemData name="Variable" defStyleNum="dsOthers"
color="#800000" selColor="#ffffff" italic="0" bold="0" />
<itemData name="Reserved Variable" defStyleNum="dsOthers"
color="#800000" selColor="#ffffff" italic="1" bold="0" />
<itemData name="Associative" defStyleNum="dsKeyword"
color="#800080" selColor="#ffffff" italic="0" bold="0" />
<itemData name="Operator" defStyleNum="dsOthers"
color="#0000ff" selColor="#ffffff" italic="0" bold="0" />
<itemData name="Brace" defStyleNum="dsOthers"
color="#000080" selColor="#ffffff" italic="0" bold="0" />
<itemData name="ArrIndex" defStyleNum="dsOthers"
color="#800080" selColor="#ffffff" italic="0" bold="0" />
<itemData name="Property" defStyleNum="dsOthers"
color="#800080" selColor="#ffffff" italic="0" bold="0" />
<itemData name="Keyword" defStyleNum="dsKeyword"
color="#0000ff" selColor="#ffffff" italic="0" bold="1" />
<itemData name="Modifiers" defStyleNum="dsOthers"
color="#AC8312" selColor="#ffffff" italic="0" bold="0" />
<itemData name="Attributes" defStyleNum="dsOthers"
color="#0000ff" selColor="#ffffff" italic="0" bold="0" />
<itemData name="String" defStyleNum="dsString"
color="#008000" selColor="#ffffff" italic="0" bold="0" />
<itemData name="Decimal" defStyleNum="dsDecVal" />
<itemData name="Float" defStyleNum="dsFloat" />
<itemData name="Char" defStyleNum="dsChar" color="#008000"
selColor="#ffffff" italic="0" bold="0" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Alert" defStyleNum="dsNormal" bold="1"
color="white" backgroundColor="red" />
</itemDatas>

</highlighting>

<general>
<comments>
<comment name="multiLine" start="{*" end="*}" />
</comments>
<keywords casesensitive="1" />
</general>

</language>

----

Riviere Informatique SARL wrote:

> Hi Werner,
> 
>
>
>
> Would you care to share these? I'm working on one which isn't complete
> yet, because I couldn't find any, but I'm totally new to both Smarty
> and syntax highlighting - if your file is well-accomplished you may
> even want to share it with the 'Kate' download website?
>
> Regards,
> Steven.
>



Report this thread to moderator Post Follow-up to this message
Old Post
Werner
04-13-05 02:01 AM


Sponsored Links




Last Thread Next Thread Next
Search this forum -> 
Post New Thread

PHP Smarty Templates archive

Show a Printable Version Send to friend Email This Page to Someone! subscribe to this thread Receive updates to this thread
Computer Consultants
Programming Jobs
Visual Basic Controls
SQL Server Programming
Webservices
Java Security
Visual Studio
C# Programming
Visual J++
Software engineering
Open source Software
Perl Programming
PHP Programming
ASP Programming
ASP .NET Programming
Visual Basic Programming
Windows Scripting Host
Java Programming
Java Help
Java Beans
VBScript
Cobol
MAC Applications
Unix Programming
Forum Jump:
All times are GMT. The time now is 07:06 PM.

 
Free MCSE Braindumps | Real Estate Topics

Programming forum archive

Copyrights CodeComments.com 2004 - 2006

Powered by vBulletin Copyright 2000-2006 Jelsoft Enterprises Limited.