2 <!-- Scala mode by Daniel Spiewak downloaded on 2015-05-17 from https://github.com/djspiewak/jedit-modes/blob/master/scala.xml -->
4 <!DOCTYPE MODE SYSTEM "xmode.dtd">
8 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
9 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
10 <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
11 <PROPERTY NAME="indentNextLine"
12 VALUE="(.*((if|while|else\s+if|for)\s*\().*\)|\s*else|\s*case.*=>|.*(def|val|var|type).*=)\s*$"/>
13 <!-- set this to 'true' if you want to use GNU coding style -->
14 <PROPERTY NAME="doubleBracketIndent" VALUE="false" />
15 <PROPERTY NAME="commentStart" VALUE="/*" />
16 <PROPERTY NAME="commentEnd" VALUE="*/" />
17 <PROPERTY NAME="lineComment" VALUE="//" />
18 <PROPERTY NAME="noTabs" VALUE="true" />
19 <PROPERTY NAME="tabSize" VALUE="2" />
20 <PROPERTY NAME="indentSize" VALUE="2" />
21 <PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />
24 <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE"
25 DIGIT_RE="(0[lL]?|[1-9]\d{0,9}(\d{0,9}[lL])?|0[xX]\p{XDigit}{1,8}(\p{XDigit}{0,8}[lL])?|0[0-7]{1,11}([0-7]{0,11}[lL])?|([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?|[0-9]+([eE][+-]?[0-9]+[fFdD]?|([eE][+-]?[0-9]+)?[fFdD]))">
27 <MARK_FOLLOWING TYPE="LABEL">@</MARK_FOLLOWING>
29 <IMPORT DELEGATE="PRIMARY"/>
33 <!-- Silly comment -->
34 <SEQ TYPE="COMMENT1">/**/</SEQ>
36 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
38 <!-- Scaladoc comment -->
39 <SPAN TYPE="COMMENT3" DELEGATE="SCALADOC">
44 <!-- Scala comment (Java style) -->
45 <SPAN TYPE="COMMENT1" DELEGATE="COMMENT_BLOCK">
50 <SPAN MATCH_TYPE="NULL" DELEGATE="MAIN">
55 <!-- XML literals; keep this in sync with the XML_LITERAL rule set! -->
56 <IMPORT DELEGATE="XML_SHARED"/>
58 <!-- interpolated stuff -->
59 <SPAN_REGEXP DELEGATE="STRING" MATCH_TYPE="LITERAL1" NO_LINE_BREAK="FALSE" ESCAPE="">
60 <BEGIN>[0-9a-zA-Z><=+]([0-9a-zA-Z><=+]|_[0-9a-zA-Z><=+])*"""</BEGIN>
63 <SPAN_REGEXP DELEGATE="STRING" MATCH_TYPE="LITERAL1" NO_LINE_BREAK="FALSE" ESCAPE="\">
64 <BEGIN>[0-9a-zA-Z><=+]([0-9a-zA-Z><=+]|_[0-9a-zA-Z><=+])*"</BEGIN>
68 <!-- string and character literals -->
69 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE" ESCAPE="">
73 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\">
77 <SEQ_REGEXP HASH_CHAR="'" TYPE="LITERAL1">'([^'\\]|\\.)'</SEQ_REGEXP>
79 <!-- symbol literals -->
80 <SEQ_REGEXP HASH_CHAR="'" TYPE="LABEL">'[0-9a-zA-Z><=+]([0-9a-zA-Z><=+]|_[0-9a-zA-Z><=+])*</SEQ_REGEXP>
82 <SPAN MATCH_TYPE="LITERAL3" DELEGATE="TYPE_PARAMS">
87 <SPAN MATCH_TYPE="NULL">
92 <SEQ TYPE="OPERATOR">(</SEQ>
93 <SEQ TYPE="OPERATOR">)</SEQ>
94 <SEQ TYPE="OPERATOR">}</SEQ>
95 <SEQ TYPE="OPERATOR">{</SEQ>
96 <SEQ TYPE="NULL">.</SEQ>
97 <SEQ TYPE="NULL">,</SEQ>
98 <SEQ TYPE="NULL">;</SEQ>
99 <SEQ TYPE="NULL">:</SEQ>
101 <!-- Function calls -->
102 <!-- <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS> -->
104 <EOL_SPAN MATCH_TYPE="KEYWORD1" DELEGATE="TYPE">import </EOL_SPAN>
106 <!-- Function declarations (overloaded for different spacing styles)-->
107 <MARK_FOLLOWING TYPE="FUNCTION" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">def </MARK_FOLLOWING>
108 <MARK_FOLLOWING TYPE="FUNCTION" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">def </MARK_FOLLOWING>
109 <MARK_FOLLOWING TYPE="FUNCTION" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">def </MARK_FOLLOWING>
110 <MARK_FOLLOWING TYPE="FUNCTION" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">def </MARK_FOLLOWING>
111 <MARK_FOLLOWING TYPE="FUNCTION" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">def </MARK_FOLLOWING>
112 <MARK_FOLLOWING TYPE="FUNCTION" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">def </MARK_FOLLOWING>
113 <MARK_FOLLOWING TYPE="FUNCTION" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">def </MARK_FOLLOWING>
115 <!-- class declarations (overloaded for different spacing styles)-->
116 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">class </MARK_FOLLOWING>
117 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">class </MARK_FOLLOWING>
118 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">class </MARK_FOLLOWING>
119 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">class </MARK_FOLLOWING>
120 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">class </MARK_FOLLOWING>
121 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">class </MARK_FOLLOWING>
122 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">class </MARK_FOLLOWING>
124 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case class </MARK_FOLLOWING>
125 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case class </MARK_FOLLOWING>
126 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case class </MARK_FOLLOWING>
127 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case class </MARK_FOLLOWING>
128 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case class </MARK_FOLLOWING>
129 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case class </MARK_FOLLOWING>
130 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case class </MARK_FOLLOWING>
132 <!-- instantiations (overloaded for different spacing styles)-->
133 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">new </MARK_FOLLOWING>
134 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">new </MARK_FOLLOWING>
135 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">new </MARK_FOLLOWING>
136 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">new </MARK_FOLLOWING>
137 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">new </MARK_FOLLOWING>
138 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">new </MARK_FOLLOWING>
139 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">new </MARK_FOLLOWING>
141 <!-- object declarations (overloaded for different spacing styles)-->
142 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">object </MARK_FOLLOWING>
143 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">object </MARK_FOLLOWING>
144 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">object </MARK_FOLLOWING>
145 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">object </MARK_FOLLOWING>
146 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">object </MARK_FOLLOWING>
147 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">object </MARK_FOLLOWING>
148 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">object </MARK_FOLLOWING>
150 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case object </MARK_FOLLOWING>
151 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case object </MARK_FOLLOWING>
152 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case object </MARK_FOLLOWING>
153 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case object </MARK_FOLLOWING>
154 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case object </MARK_FOLLOWING>
155 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case object </MARK_FOLLOWING>
156 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">case object </MARK_FOLLOWING>
158 <!-- trait declarations (overloaded for different spacing styles)-->
159 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">trait </MARK_FOLLOWING>
160 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">trait </MARK_FOLLOWING>
161 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">trait </MARK_FOLLOWING>
162 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">trait </MARK_FOLLOWING>
163 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">trait </MARK_FOLLOWING>
164 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">trait </MARK_FOLLOWING>
165 <MARK_FOLLOWING TYPE="KEYWORD3" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">trait </MARK_FOLLOWING>
167 <!-- extends (overloaded for different spacing styles)-->
168 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">extends </MARK_FOLLOWING>
169 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">extends </MARK_FOLLOWING>
170 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">extends </MARK_FOLLOWING>
171 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">extends </MARK_FOLLOWING>
172 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">extends </MARK_FOLLOWING>
173 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">extends </MARK_FOLLOWING>
174 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">extends </MARK_FOLLOWING>
176 <!-- with (overloaded for different spacing styles)-->
177 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">with </MARK_FOLLOWING>
178 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">with </MARK_FOLLOWING>
179 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">with </MARK_FOLLOWING>
180 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">with </MARK_FOLLOWING>
181 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">with </MARK_FOLLOWING>
182 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">with </MARK_FOLLOWING>
183 <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE">with </MARK_FOLLOWING>
185 <SPAN DELEGATE="PATTERN" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE" NO_LINE_BREAK="FALSE">
190 <SPAN DELEGATE="PATTERN" MATCH_TYPE="KEYWORD1" AT_WORD_START="TRUE" NO_LINE_BREAK="TRUE">
196 <KEYWORD1>abstract</KEYWORD1>
197 <KEYWORD1>case</KEYWORD1>
198 <KEYWORD1>catch</KEYWORD1>
199 <KEYWORD1>class</KEYWORD1>
200 <KEYWORD1>def</KEYWORD1>
201 <KEYWORD1>do</KEYWORD1>
202 <KEYWORD1>else</KEYWORD1>
203 <KEYWORD1>extends</KEYWORD1>
204 <KEYWORD1>final</KEYWORD1>
205 <KEYWORD1>finally</KEYWORD1>
206 <KEYWORD1>for</KEYWORD1>
207 <KEYWORD1>forSome</KEYWORD1>
208 <KEYWORD1>if</KEYWORD1>
209 <KEYWORD1>implicit</KEYWORD1>
210 <KEYWORD1>import</KEYWORD1>
211 <KEYWORD1>lazy</KEYWORD1>
212 <KEYWORD1>macro</KEYWORD1>
213 <KEYWORD1>match</KEYWORD1>
214 <KEYWORD1>new</KEYWORD1>
215 <KEYWORD1>object</KEYWORD1>
216 <KEYWORD1>override</KEYWORD1>
217 <KEYWORD1>package</KEYWORD1>
218 <KEYWORD1>private</KEYWORD1>
219 <KEYWORD1>protected</KEYWORD1>
220 <KEYWORD1>requires</KEYWORD1>
221 <KEYWORD1>return</KEYWORD1>
222 <KEYWORD1>sealed</KEYWORD1>
223 <KEYWORD1>throw</KEYWORD1>
224 <KEYWORD1>trait</KEYWORD1>
225 <KEYWORD1>try</KEYWORD1>
226 <KEYWORD1>type</KEYWORD1>
227 <KEYWORD1>val</KEYWORD1>
228 <KEYWORD1>var</KEYWORD1>
229 <KEYWORD1>with</KEYWORD1>
230 <KEYWORD1>while</KEYWORD1>
231 <KEYWORD1>yield</KEYWORD1>
232 <KEYWORD1>=></KEYWORD1>
234 <!-- java.lang.* wrapper types -->
235 <KEYWORD2>Character</KEYWORD2>
236 <KEYWORD2>Integer</KEYWORD2>
238 <!-- scala.* primitive types -->
239 <KEYWORD2>Boolean</KEYWORD2>
240 <KEYWORD2>Byte</KEYWORD2>
241 <KEYWORD2>Char</KEYWORD2>
242 <KEYWORD2>Double</KEYWORD2>
243 <KEYWORD2>Float</KEYWORD2>
244 <KEYWORD2>Int</KEYWORD2>
245 <KEYWORD2>Long</KEYWORD2>
246 <KEYWORD2>Short</KEYWORD2>
247 <KEYWORD2>Unit</KEYWORD2>
249 <!-- scala.* predefined types -->
250 <KEYWORD3>Any</KEYWORD3>
251 <KEYWORD3>AnyRef</KEYWORD3>
252 <KEYWORD3>Nothing</KEYWORD3>
254 <LITERAL2>false</LITERAL2>
255 <LITERAL2>null</LITERAL2>
256 <LITERAL2>super</LITERAL2>
257 <LITERAL2>this</LITERAL2>
258 <LITERAL2>true</LITERAL2>
260 <INVALID>???</INVALID>
263 <INVALID>then</INVALID>
267 <RULES SET="TYPE_PARAMS" DEFAULT="LITERAL3">
268 <SPAN MATCH_TYPE="LITERAL3" DELEGATE="TYPE_PARAMS">
274 <RULES SET="PATTERN" DEFAULT="NULL" IGNORE_CASE="FALSE"
275 DIGIT_RE="(0[lL]?|[1-9]\d{0,9}(\d{0,9}[lL])?|0[xX]\p{XDigit}{1,8}(\p{XDigit}{0,8}[lL])?|0[0-7]{1,11}([0-7]{0,11}[lL])?|([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?|[0-9]+([eE][+-]?[0-9]+[fFdD]?|([eE][+-]?[0-9]+)?[fFdD]))">
277 <IMPORT DELEGATE="PRIMARY"/>
279 <SEQ TYPE="OPERATOR">@</SEQ>
281 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD4">[A-Z][^(\s:@)\[\]]*</SEQ_REGEXP>
284 <RULES SET="COMMENT_BLOCK" DEFAULT="COMMENT1">
285 <SPAN TYPE="COMMENT1" DELEGATE="COMMENT_BLOCK">
291 <RULES SET="SCALADOC" DEFAULT="COMMENT3" IGNORE_CASE="TRUE">
292 <!-- so that @link{...} is highlighted -->
293 <SEQ TYPE="COMMENT3">{</SEQ>
295 <!-- so that *@param is highlighted -->
296 <SEQ TYPE="COMMENT3">*</SEQ>
298 <!-- Javadoc ignores tags inside <pre> -->
299 <SPAN TYPE="MARKUP" DELEGATE="SCALADOC_PRE">
300 <BEGIN><pre></BEGIN>
301 <END></pre></END>
304 <!-- HTML comments -->
305 <SPAN TYPE="COMMENT1">
306 <BEGIN><!--</BEGIN>
311 <SPAN_REGEXP HASH_CHAR="<" TYPE="MARKUP" DELEGATE="xml::TAGS" NO_LINE_BREAK="TRUE">
312 <BEGIN></?[\da-zA-Z\-]+</BEGIN>
316 <!-- Javadoc allows this -->
317 <SEQ TYPE="COMMENT3"><</SEQ>
320 <LABEL>@author</LABEL>
321 <LABEL>@beaninfo</LABEL>
322 <LABEL>@history</LABEL>
324 <LABEL>@review</LABEL>
328 <LABEL>@requires</LABEL>
330 <LABEL>@ensures</LABEL>
331 <LABEL>@generates</LABEL>
332 <LABEL>@modifies</LABEL>
333 <LABEL>@invariant</LABEL>
334 <LABEL>@exception</LABEL>
335 <LABEL>@hides</LABEL>
336 <LABEL>@overrides</LABEL>
337 <LABEL>@equivalent</LABEL>
339 <LABEL>@access</LABEL>
340 <LABEL>@example</LABEL>
341 <LABEL>@design</LABEL>
342 <LABEL>@serial</LABEL>
343 <LABEL>@references</LABEL>
345 <LABEL>@guard</LABEL>
346 <LABEL>@values</LABEL>
347 <LABEL>@complexity</LABEL>
348 <LABEL>@deprecated</LABEL>
349 <LABEL>@docRoot</LABEL>
350 <LABEL>@exception</LABEL>
352 <LABEL>@param</LABEL>
353 <LABEL>@return</LABEL>
355 <LABEL>@serialData</LABEL>
356 <LABEL>@serialField</LABEL>
357 <LABEL>@since</LABEL>
358 <LABEL>@throws</LABEL>
359 <LABEL>@version</LABEL>
364 <RULES SET="SCALADOC_PRE" DEFAULT="COMMENT3" />
366 <RULES SET="XML_SHARED">
367 <SPAN TYPE="COMMENT2">
368 <BEGIN><!--</BEGIN>
372 <SPAN_REGEXP TYPE="LITERAL3" HASH_CHARS="<">
373 <BEGIN><\?[^\s]</BEGIN>
377 <SPAN MATCH_TYPE="LITERAL3" TYPE="COMMENT4">
378 <BEGIN><![CDATA[</BEGIN>
382 <SEQ_REGEXP HASH_CHAR="<" TYPE="LITERAL3"><([\d\w_\-:.]+)(\s+[\d\w_\-:.]+=('[^']*'|"[^"]*"))*\s*/\s*></SEQ_REGEXP>
384 <SPAN_REGEXP DELEGATE="XML_LITERAL" HASH_CHAR="<" MATCH_TYPE="LITERAL3" TYPE="NULL">
385 <BEGIN><([\d\w_\-:.]+)(\s+[\d\w_\-:.]+=('[^']*'|"[^"]*"))*\s*></BEGIN>
386 <END></$1></END>
390 <!-- TODO find a way to highlight attribute names as LABEL, attribute values as LITERAL1 -->
391 <RULES SET="XML_LITERAL" DEFAULT="COMMENT4">
393 <PROPERTY NAME="commentStart" VALUE="<!--" />
394 <PROPERTY NAME="commentEnd" VALUE="-->" />
395 <PROPERTY NAME="lineComment" VALUE="" />
398 <IMPORT DELEGATE="XML_SHARED"/>
400 <SPAN DELEGATE="MAIN">
405 <SPAN TYPE="LABEL" NO_WORD_BREAK="TRUE">
410 <SEQ_REGEXP HASH_CHAR="<" TYPE="INVALID"></[\d\w_\-:.]+></SEQ_REGEXP> <!-- unmatched closing tags -->
413 <RULES SET="STRING" DEFAULT="LITERAL1">
414 <SEQ TYPE="LITERAL1">$$</SEQ>
416 <SPAN DELEGATE="MAIN">
421 <MARK_FOLLOWING TYPE="NULL" MATCH_TYPE="NULL">$</MARK_FOLLOWING>
424 <RULES SET="TYPE" DEFAULT="KEYWORD4">
425 <IMPORT DELEGATE="MAIN"/>