-<?xml version="1.0"?>\r
-\r
-<!DOCTYPE MODE SYSTEM "xmode.dtd">\r
-\r
-<!-- A JEdit mode configuration file for FTL (FreeMarker Template Language)\r
- Note that this version will only work with JEdit 4.1pre6 or later.\r
- by Jonathan Revusky, revusky@users.sourceforge.net -->\r
-\r
-<MODE>\r
- <RULES IGNORE_CASE="FALSE">\r
-\r
- <!-- JavaScript -->\r
- <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">\r
- <BEGIN><script</BEGIN>\r
- <END></script></END>\r
- </SPAN>\r
- <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">\r
- <BEGIN><Script</BEGIN>\r
- <END></Script></END>\r
- </SPAN>\r
- <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">\r
- <BEGIN><SCRIPT</BEGIN>\r
- <END></SCRIPT></END>\r
- </SPAN>\r
-\r
- <!-- stylesheet -->\r
- <SPAN TYPE="MARKUP" DELEGATE="html::CSS">\r
- <BEGIN><style</BEGIN>\r
- <END></style></END>\r
- </SPAN>\r
- <SPAN TYPE="MARKUP" DELEGATE="html::CSS">\r
- <BEGIN><Style</BEGIN>\r
- <END></Style></END>\r
- </SPAN>\r
- <SPAN TYPE="MARKUP" DELEGATE="html::CSS">\r
- <BEGIN><STYLE</BEGIN>\r
- <END></STYLE></END>\r
- </SPAN>\r
-\r
- <!-- XML/HTML comment -->\r
- <SPAN TYPE="COMMENT2" DELEGATE="xml::DTD-TAGS">\r
- <BEGIN><!--</BEGIN>\r
- <END>--></END>\r
- </SPAN>\r
-\r
- <!-- DTD instructions -->\r
- <SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">\r
- <BEGIN><!</BEGIN>\r
- <END>></END>\r
- </SPAN>\r
-\r
- <!-- FTL markup starts here. -->\r
-\r
- <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">\r
- <BEGIN>${</BEGIN>\r
- <END>}</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">\r
- <BEGIN>#{</BEGIN>\r
- <END>}</END>\r
- </SPAN>\r
-\r
- <SPAN_REGEXP TYPE="KEYWORD1" HASH_CHAR="<#ftl" DELEGATE="EXPRESSION">\r
- <BEGIN><#ftl\b</BEGIN>\r
- <END>></END>\r
- </SPAN_REGEXP>\r
-\r
- <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="EXPRESSION" HASH_CHAR="<">\r
- <BEGIN><#?(if|elseif|switch|foreach|list|case|assign|local|global|setting|include|import|stop|escape|macro|function|transform|call|visit|recurse)(\s|/|$)</BEGIN>\r
- <END>></END>\r
- </SPAN_REGEXP>\r
-\r
- <SEQ_REGEXP TYPE="KEYWORD1" HASH_CHAR="</"\r
- ></#?(assign|local|global|if|switch|foreach|list|escape|macro|function|transform|compress|noescape)></SEQ_REGEXP>\r
-\r
- <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="INVALID" HASH_CHAR="<">\r
- <BEGIN><#?(else|compress|noescape|default|break|flush|nested|t|rt|lt|return|recurse)\b</BEGIN>\r
- <END>></END>\r
- </SPAN_REGEXP>\r
-\r
- <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="INVALID" HASH_CHAR="</@">\r
- <BEGIN></@(([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*)*?)?</BEGIN>\r
- <END>></END>\r
- </SPAN_REGEXP>\r
-\r
- <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="EXPRESSION" HASH_CHAR="<@">\r
- <BEGIN><@([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*?)*</BEGIN>\r
- <END>></END>\r
- </SPAN_REGEXP>\r
-\r
- <SPAN TYPE="COMMENT1">\r
- <BEGIN><#--</BEGIN>\r
- <END>--></END>\r
- </SPAN>\r
-\r
- <SEQ TYPE="KEYWORD1"><stop></SEQ>\r
- <SPAN TYPE="COMMENT1">\r
- <BEGIN><comment></BEGIN>\r
- <END></comment></END>\r
- </SPAN>\r
- <SPAN TYPE="INVALID">\r
- <BEGIN><#</BEGIN>\r
- <END>></END>\r
- </SPAN>\r
- <SPAN TYPE="INVALID">\r
- <BEGIN></#</BEGIN>\r
- <END>></END>\r
- </SPAN>\r
-\r
- <!-- non-FTL markup -->\r
- <SPAN TYPE="MARKUP" DELEGATE="TAGS">\r
- <BEGIN><</BEGIN>\r
- <END>></END>\r
- </SPAN>\r
- </RULES>\r
-\r
- <RULES SET="EXPRESSION"\r
- DEFAULT="KEYWORD2"\r
- HIGHLIGHT_DIGITS="TRUE"\r
- ESCAPE="\"\r
- IGNORE_CASE="FALSE"\r
- >\r
- <SPAN TYPE="COMMENT1">\r
- <BEGIN><#--</BEGIN>\r
- <END>--></END>\r
- </SPAN>\r
- <SPAN TYPE="COMMENT1">\r
- <BEGIN><!--</BEGIN>\r
- <END>--></END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL1">\r
- <BEGIN>"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
- <SPAN TYPE="OPERATOR" DELEGATE="EXPRESSION">\r
- <BEGIN>(</BEGIN><END>)</END>\r
- </SPAN>\r
- <SEQ TYPE="OPERATOR">=</SEQ>\r
- <SEQ TYPE="OPERATOR">!</SEQ>\r
- <SEQ TYPE="OPERATOR">|</SEQ>\r
- <SEQ TYPE="OPERATOR">&</SEQ>\r
- <SEQ TYPE="OPERATOR"><</SEQ>\r
- <SEQ TYPE="OPERATOR">></SEQ>\r
- <SEQ TYPE="OPERATOR">*</SEQ>\r
- <SEQ TYPE="OPERATOR">/</SEQ>\r
- <SEQ TYPE="OPERATOR">-</SEQ>\r
- <SEQ TYPE="OPERATOR">+</SEQ>\r
- <SEQ TYPE="OPERATOR">%</SEQ>\r
- <SEQ TYPE="OPERATOR">.</SEQ>\r
- <SEQ TYPE="OPERATOR">:</SEQ>\r
- <SEQ TYPE="OPERATOR">.</SEQ>\r
- <SEQ TYPE="OPERATOR">.</SEQ>\r
- <SEQ TYPE="OPERATOR">[</SEQ>\r
- <SEQ TYPE="OPERATOR">]</SEQ>\r
- <SEQ TYPE="OPERATOR">{</SEQ>\r
- <SEQ TYPE="OPERATOR">}</SEQ>\r
- <SEQ TYPE="OPERATOR">;</SEQ>\r
- <!-- Builtins -->\r
- <MARK_FOLLOWING TYPE="FUNCTION">?</MARK_FOLLOWING>\r
- <KEYWORDS>\r
- <KEYWORD1>true</KEYWORD1>\r
- <KEYWORD1>false</KEYWORD1>\r
- <KEYWORD1>as</KEYWORD1>\r
- <KEYWORD1>in</KEYWORD1>\r
- <KEYWORD1>using</KEYWORD1>\r
- <OPERATOR>gt</OPERATOR>\r
- <OPERATOR>gte</OPERATOR>\r
- <OPERATOR>lt</OPERATOR>\r
- <OPERATOR>lte</OPERATOR>\r
- </KEYWORDS>\r
- </RULES>\r
-\r
- <RULES SET="TAGS" DEFAULT="MARKUP" ESCAPE="\">\r
- <SPAN TYPE="LITERAL1" DELEGATE="INQUOTE">\r
- <BEGIN>"</BEGIN>\r
- <END>"</END>\r
- </SPAN>\r
-\r
- <SPAN TYPE="LITERAL1" DELEGATE="INQUOTE">\r
- <BEGIN>'</BEGIN>\r
- <END>'</END>\r
- </SPAN>\r
-\r
- <SEQ TYPE="OPERATOR">=</SEQ>\r
- </RULES>\r
-\r
-\r
- <!-- a ruleset for when we are within a quoted string within an SGML tag\r
- It can contain FTL interpolations -->\r
- <RULES SET="INQUOTE">\r
- <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">\r
- <BEGIN>${</BEGIN>\r
- <END>}</END>\r
- </SPAN>\r
- <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">\r
- <BEGIN>#{</BEGIN>\r
- <END>}</END>\r
- </SPAN>\r
- </RULES>\r
-\r
- <!-- empty ruleset to delegate to for spots where any non-whitespace is invalid -->\r
- <RULES SET="INVALID" DEFAULT="INVALID" />\r
-</MODE>\r
+<?xml version="1.0"?>
+
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<!-- A JEdit mode configuration file for FTL (FreeMarker Template Language)
+ Note that this version will only work with JEdit 4.1pre6 or later.
+ by Jonathan Revusky, revusky@users.sourceforge.net -->
+
+<MODE>
+ <RULES IGNORE_CASE="FALSE">
+
+ <!-- JavaScript -->
+ <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">
+ <BEGIN><script</BEGIN>
+ <END></script></END>
+ </SPAN>
+ <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">
+ <BEGIN><Script</BEGIN>
+ <END></Script></END>
+ </SPAN>
+ <SPAN TYPE="MARKUP" DELEGATE="html::JAVASCRIPT">
+ <BEGIN><SCRIPT</BEGIN>
+ <END></SCRIPT></END>
+ </SPAN>
+
+ <!-- stylesheet -->
+ <SPAN TYPE="MARKUP" DELEGATE="html::CSS">
+ <BEGIN><style</BEGIN>
+ <END></style></END>
+ </SPAN>
+ <SPAN TYPE="MARKUP" DELEGATE="html::CSS">
+ <BEGIN><Style</BEGIN>
+ <END></Style></END>
+ </SPAN>
+ <SPAN TYPE="MARKUP" DELEGATE="html::CSS">
+ <BEGIN><STYLE</BEGIN>
+ <END></STYLE></END>
+ </SPAN>
+
+ <!-- XML/HTML comment -->
+ <SPAN TYPE="COMMENT2" DELEGATE="xml::DTD-TAGS">
+ <BEGIN><!--</BEGIN>
+ <END>--></END>
+ </SPAN>
+
+ <!-- DTD instructions -->
+ <SPAN TYPE="KEYWORD2" DELEGATE="xml::DTD-TAGS">
+ <BEGIN><!</BEGIN>
+ <END>></END>
+ </SPAN>
+
+ <!-- FTL markup starts here. -->
+
+ <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
+ <BEGIN>${</BEGIN>
+ <END>}</END>
+ </SPAN>
+
+ <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
+ <BEGIN>#{</BEGIN>
+ <END>}</END>
+ </SPAN>
+
+ <SPAN_REGEXP TYPE="KEYWORD1" HASH_CHAR="<#ftl" DELEGATE="EXPRESSION">
+ <BEGIN><#ftl\b</BEGIN>
+ <END>></END>
+ </SPAN_REGEXP>
+
+ <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="EXPRESSION" HASH_CHAR="<">
+ <BEGIN><#?(if|elseif|switch|foreach|list|case|assign|local|global|setting|include|import|stop|escape|macro|function|transform|call|visit|recurse)(\s|/|$)</BEGIN>
+ <END>></END>
+ </SPAN_REGEXP>
+
+ <SEQ_REGEXP TYPE="KEYWORD1" HASH_CHAR="</"
+ ></#?(assign|local|global|if|switch|foreach|list|escape|macro|function|transform|compress|noescape)></SEQ_REGEXP>
+
+ <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="INVALID" HASH_CHAR="<">
+ <BEGIN><#?(else|compress|noescape|default|break|flush|nested|t|rt|lt|return|recurse)\b</BEGIN>
+ <END>></END>
+ </SPAN_REGEXP>
+
+ <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="INVALID" HASH_CHAR="</@">
+ <BEGIN></@(([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*)*?)?</BEGIN>
+ <END>></END>
+ </SPAN_REGEXP>
+
+ <SPAN_REGEXP TYPE="KEYWORD1" DELEGATE="EXPRESSION" HASH_CHAR="<@">
+ <BEGIN><@([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*?)*</BEGIN>
+ <END>></END>
+ </SPAN_REGEXP>
+
+ <SPAN TYPE="COMMENT1">
+ <BEGIN><#--</BEGIN>
+ <END>--></END>
+ </SPAN>
+
+ <SEQ TYPE="KEYWORD1"><stop></SEQ>
+ <SPAN TYPE="COMMENT1">
+ <BEGIN><comment></BEGIN>
+ <END></comment></END>
+ </SPAN>
+ <SPAN TYPE="INVALID">
+ <BEGIN><#</BEGIN>
+ <END>></END>
+ </SPAN>
+ <SPAN TYPE="INVALID">
+ <BEGIN></#</BEGIN>
+ <END>></END>
+ </SPAN>
+
+ <!-- non-FTL markup -->
+ <SPAN TYPE="MARKUP" DELEGATE="TAGS">
+ <BEGIN><</BEGIN>
+ <END>></END>
+ </SPAN>
+ </RULES>
+
+ <RULES SET="EXPRESSION"
+ DEFAULT="KEYWORD2"
+ HIGHLIGHT_DIGITS="TRUE"
+ IGNORE_CASE="FALSE"
+ >
+ <SPAN TYPE="COMMENT1">
+ <BEGIN><#--</BEGIN>
+ <END>--></END>
+ </SPAN>
+ <SPAN TYPE="COMMENT1">
+ <BEGIN><!--</BEGIN>
+ <END>--></END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL1" ESCAPE="\">
+ <BEGIN>"</BEGIN>
+ <END>"</END>
+ </SPAN>
+ <SPAN TYPE="OPERATOR" DELEGATE="EXPRESSION">
+ <BEGIN>(</BEGIN><END>)</END>
+ </SPAN>
+ <SEQ TYPE="OPERATOR">=</SEQ>
+ <SEQ TYPE="OPERATOR">!</SEQ>
+ <SEQ TYPE="OPERATOR">|</SEQ>
+ <SEQ TYPE="OPERATOR">&</SEQ>
+ <SEQ TYPE="OPERATOR"><</SEQ>
+ <SEQ TYPE="OPERATOR">></SEQ>
+ <SEQ TYPE="OPERATOR">*</SEQ>
+ <SEQ TYPE="OPERATOR">/</SEQ>
+ <SEQ TYPE="OPERATOR">-</SEQ>
+ <SEQ TYPE="OPERATOR">+</SEQ>
+ <SEQ TYPE="OPERATOR">%</SEQ>
+ <SEQ TYPE="OPERATOR">.</SEQ>
+ <SEQ TYPE="OPERATOR">:</SEQ>
+ <SEQ TYPE="OPERATOR">.</SEQ>
+ <SEQ TYPE="OPERATOR">.</SEQ>
+ <SEQ TYPE="OPERATOR">[</SEQ>
+ <SEQ TYPE="OPERATOR">]</SEQ>
+ <SEQ TYPE="OPERATOR">{</SEQ>
+ <SEQ TYPE="OPERATOR">}</SEQ>
+ <SEQ TYPE="OPERATOR">;</SEQ>
+ <!-- Builtins -->
+ <MARK_FOLLOWING TYPE="FUNCTION">?</MARK_FOLLOWING>
+ <KEYWORDS>
+ <KEYWORD1>true</KEYWORD1>
+ <KEYWORD1>false</KEYWORD1>
+ <KEYWORD1>as</KEYWORD1>
+ <KEYWORD1>in</KEYWORD1>
+ <KEYWORD1>using</KEYWORD1>
+ <OPERATOR>gt</OPERATOR>
+ <OPERATOR>gte</OPERATOR>
+ <OPERATOR>lt</OPERATOR>
+ <OPERATOR>lte</OPERATOR>
+ </KEYWORDS>
+ </RULES>
+
+ <RULES SET="TAGS" DEFAULT="MARKUP">
+ <SPAN TYPE="LITERAL1" DELEGATE="INQUOTE">
+ <BEGIN>"</BEGIN>
+ <END>"</END>
+ </SPAN>
+
+ <SPAN TYPE="LITERAL1" DELEGATE="INQUOTE">
+ <BEGIN>'</BEGIN>
+ <END>'</END>
+ </SPAN>
+
+ <SEQ TYPE="OPERATOR">=</SEQ>
+ </RULES>
+
+
+ <!-- a ruleset for when we are within a quoted string within an SGML tag
+ It can contain FTL interpolations -->
+ <RULES SET="INQUOTE" ESCAPE="\">
+ <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
+ <BEGIN>${</BEGIN>
+ <END>}</END>
+ </SPAN>
+ <SPAN TYPE="KEYWORD1" DELEGATE="EXPRESSION">
+ <BEGIN>#{</BEGIN>
+ <END>}</END>
+ </SPAN>
+ </RULES>
+
+ <!-- empty ruleset to delegate to for spots where any non-whitespace is invalid -->
+ <RULES SET="INVALID" DEFAULT="INVALID" />
+</MODE>