1 <?xml version="1.0"?>
\r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
\r
5 <!-- A JEdit mode configuration file for FTL (FreeMarker Template Language)
\r
6 Note that this version will only work with JEdit 4.1pre6 or later.
\r
7 by Jonathan Revusky, revusky@users.sourceforge.net -->
\r
10 <RULES IGNORE_CASE="FALSE">
\r
13 <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">
\r
14 <BEGIN><script</BEGIN>
\r
15 <END></script></END>
\r
17 <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">
\r
18 <BEGIN><Script</BEGIN>
\r
19 <END></Script></END>
\r
21 <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">
\r
22 <BEGIN><SCRIPT</BEGIN>
\r
23 <END></SCRIPT></END>
\r
27 <SPAN TYPE="MARKUP" DELEGATE="html::CSS">
\r
28 <BEGIN><style</BEGIN>
\r
29 <END></style></END>
\r
31 <SPAN TYPE="MARKUP" DELEGATE="html::CSS">
\r
32 <BEGIN><Style</BEGIN>
\r
33 <END></Style></END>
\r
35 <SPAN TYPE="MARKUP" DELEGATE="html::CSS">
\r
36 <BEGIN><STYLE</BEGIN>
\r
37 <END></STYLE></END>
\r
40 <!-- XML/HTML comment -->
\r
41 <SPAN TYPE="COMMENT2" DELEGATE="xml::DTD-TAGS">
\r
42 <BEGIN><!--</BEGIN>
\r
46 <!-- DTD instructions -->
\r
47 <SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">
\r
48 <BEGIN><!</BEGIN>
\r
52 <!-- FTL markup starts here. -->
\r
54 <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
\r
59 <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
\r
64 <SPAN_REGEXP TYPE="KEYWORD1" HASH_CHAR="<#ftl" DELEGATE="EXPRESSION">
\r
65 <BEGIN><#ftl\b</BEGIN>
\r
69 <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="EXPRESSION" HASH_CHAR="<">
\r
70 <BEGIN><#?(if|elseif|switch|foreach|list|case|assign|local|global|setting|include|import|stop|escape|macro|function|transform|call|visit|recurse)(\s|/|$)</BEGIN>
\r
74 <SEQ_REGEXP TYPE="KEYWORD1" HASH_CHAR="</"
\r
75 ></#?(assign|local|global|if|switch|foreach|list|escape|macro|function|transform|compress|noescape)></SEQ_REGEXP>
\r
77 <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="INVALID" HASH_CHAR="<">
\r
78 <BEGIN><#?(else|compress|noescape|default|break|flush|nested|t|rt|lt|return|recurse)\b</BEGIN>
\r
82 <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="INVALID" HASH_CHAR="</@">
\r
83 <BEGIN></@(([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*)*?)?</BEGIN>
\r
87 <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="EXPRESSION" HASH_CHAR="<@">
\r
88 <BEGIN><@([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*?)*</BEGIN>
\r
92 <SPAN TYPE="COMMENT1">
\r
93 <BEGIN><#--</BEGIN>
\r
97 <SEQ TYPE="KEYWORD1"><stop></SEQ>
\r
98 <SPAN TYPE="COMMENT1">
\r
99 <BEGIN><comment></BEGIN>
\r
100 <END></comment></END>
\r
102 <SPAN TYPE="INVALID">
\r
103 <BEGIN><#</BEGIN>
\r
106 <SPAN TYPE="INVALID">
\r
107 <BEGIN></#</BEGIN>
\r
111 <!-- non-FTL markup -->
\r
112 <SPAN TYPE="MARKUP" DELEGATE="TAGS">
\r
113 <BEGIN><</BEGIN>
\r
118 <RULES SET="EXPRESSION"
\r
120 HIGHLIGHT_DIGITS="TRUE"
\r
122 IGNORE_CASE="FALSE"
\r
124 <SPAN TYPE="COMMENT1">
\r
125 <BEGIN><#--</BEGIN>
\r
128 <SPAN TYPE="COMMENT1">
\r
129 <BEGIN><!--</BEGIN>
\r
133 <SPAN TYPE="LITERAL1">
\r
137 <SPAN TYPE="OPERATOR" DELEGATE="EXPRESSION">
\r
138 <BEGIN>(</BEGIN><END>)</END>
\r
140 <SEQ TYPE="OPERATOR">=</SEQ>
\r
141 <SEQ TYPE="OPERATOR">!</SEQ>
\r
142 <SEQ TYPE="OPERATOR">|</SEQ>
\r
143 <SEQ TYPE="OPERATOR">&</SEQ>
\r
144 <SEQ TYPE="OPERATOR"><</SEQ>
\r
145 <SEQ TYPE="OPERATOR">></SEQ>
\r
146 <SEQ TYPE="OPERATOR">*</SEQ>
\r
147 <SEQ TYPE="OPERATOR">/</SEQ>
\r
148 <SEQ TYPE="OPERATOR">-</SEQ>
\r
149 <SEQ TYPE="OPERATOR">+</SEQ>
\r
150 <SEQ TYPE="OPERATOR">%</SEQ>
\r
151 <SEQ TYPE="OPERATOR">.</SEQ>
\r
152 <SEQ TYPE="OPERATOR">:</SEQ>
\r
153 <SEQ TYPE="OPERATOR">.</SEQ>
\r
154 <SEQ TYPE="OPERATOR">.</SEQ>
\r
155 <SEQ TYPE="OPERATOR">[</SEQ>
\r
156 <SEQ TYPE="OPERATOR">]</SEQ>
\r
157 <SEQ TYPE="OPERATOR">{</SEQ>
\r
158 <SEQ TYPE="OPERATOR">}</SEQ>
\r
159 <SEQ TYPE="OPERATOR">;</SEQ>
\r
161 <MARK_FOLLOWING TYPE="FUNCTION">?</MARK_FOLLOWING>
\r
163 <KEYWORD1>true</KEYWORD1>
\r
164 <KEYWORD1>false</KEYWORD1>
\r
165 <KEYWORD1>as</KEYWORD1>
\r
166 <KEYWORD1>in</KEYWORD1>
\r
167 <KEYWORD1>using</KEYWORD1>
\r
168 <OPERATOR>gt</OPERATOR>
\r
169 <OPERATOR>gte</OPERATOR>
\r
170 <OPERATOR>lt</OPERATOR>
\r
171 <OPERATOR>lte</OPERATOR>
\r
175 <RULES SET="TAGS" DEFAULT="MARKUP" ESCAPE="\">
\r
176 <SPAN TYPE="LITERAL1" DELEGATE="INQUOTE">
\r
181 <SPAN TYPE="LITERAL1" DELEGATE="INQUOTE">
\r
186 <SEQ TYPE="OPERATOR">=</SEQ>
\r
190 <!-- a ruleset for when we are within a quoted string within an SGML tag
\r
191 It can contain FTL interpolations -->
\r
192 <RULES SET="INQUOTE">
\r
193 <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
\r
197 <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
\r
203 <!-- empty ruleset to delegate to for spots where any non-whitespace is invalid -->
\r
204 <RULES SET="INVALID" DEFAULT="INVALID" />
\r