3 * :tabSize=8:indentSize=8:noTabs=false:
4 * :folding=explicit:collapseFolds=1:
6 <!DOCTYPE MODE SYSTEM "xmode.dtd">
8 <!-- updated for Rust 1.0 -->
11 <PROPERTY NAME="commentStart" VALUE="/*" />
12 <PROPERTY NAME="commentEnd" VALUE="*/" />
13 <PROPERTY NAME="lineComment" VALUE="//" />
14 <PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />
17 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
18 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
19 <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
20 <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
22 <RULES IGNORE_CASE="FALSE"
23 HIGHLIGHT_DIGITS="TRUE"
24 DIGIT_RE="(0b[01_]+|0o[0-8_]+|0x[0-9a-fA-F_]+|[0-9_]+)([iu](8|16|32|64)|isize|usize)?|[0-9_]+([eE][0-9_]*)?(f32|f64)?">
26 <!-- Silly comment -->
27 <SEQ TYPE="COMMENT1">/**/</SEQ>
30 <SPAN TYPE="COMMENT3" DELEGATE="NESTED_DOC_COMMENT">
35 <!-- Range comment -->
36 <SPAN TYPE="COMMENT1" DELEGATE="NESTED_COMMENT">
41 <EOL_SPAN TYPE="COMMENT3">///</EOL_SPAN>
43 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
45 <SPAN_REGEXP TYPE="LITERAL1" HASH_CHAR="br">
46 <BEGIN>br(#*)"</BEGIN>
49 <SPAN TYPE="LITERAL1" DELEGATE="DOUBLEQUOTE_LITERAL" NO_LINE_BREAK="FALSE">
53 <SPAN_REGEXP TYPE="LITERAL1" HASH_CHAR="r">
57 <SPAN TYPE="LITERAL1" DELEGATE="DOUBLEQUOTE_LITERAL" NO_LINE_BREAK="FALSE">
61 <SEQ_REGEXP TYPE="LITERAL3" HASH_CHARS="b'">b?'(.|\\([\\'nrt0]|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'</SEQ_REGEXP>
64 <!-- I tried to use MARK_FOLLOWING here, but it breaks the char
66 <SEQ_REGEXP TYPE="KEYWORD4" HASH_CHAR="'">'\w+</SEQ_REGEXP>
69 <SPAN TYPE="KEYWORD4" DELEGATE="ATTRIBUTE" NO_LINE_BREAK="FALSE">
73 <SPAN TYPE="KEYWORD4" DELEGATE="ATTRIBUTE" NO_LINE_BREAK="FALSE">
78 <SEQ TYPE="OPERATOR">=</SEQ>
79 <SEQ TYPE="OPERATOR">!</SEQ>
80 <SEQ TYPE="OPERATOR">>=</SEQ>
81 <SEQ TYPE="OPERATOR"><=</SEQ>
82 <SEQ TYPE="OPERATOR">+</SEQ>
83 <SEQ TYPE="OPERATOR">-</SEQ>
84 <SEQ TYPE="OPERATOR">/</SEQ>
86 <!-- workaround to stop "*" from being colorized
87 in use statements. -->
88 <SEQ TYPE="NULL">::*</SEQ>
90 <SEQ TYPE="OPERATOR">*</SEQ>
91 <SEQ TYPE="OPERATOR">></SEQ>
92 <SEQ TYPE="OPERATOR"><</SEQ>
93 <SEQ TYPE="OPERATOR">%</SEQ>
94 <SEQ TYPE="OPERATOR">&</SEQ>
95 <SEQ TYPE="OPERATOR">|</SEQ>
96 <SEQ TYPE="OPERATOR">^</SEQ>
97 <SEQ TYPE="OPERATOR">}</SEQ>
98 <SEQ TYPE="OPERATOR">{</SEQ>
100 <!-- Function calls -->
101 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
102 <SEQ TYPE="OPERATOR">)</SEQ>
104 <SEQ TYPE="OPERATOR">=</SEQ>
105 <SEQ TYPE="OPERATOR">(</SEQ>
106 <SEQ TYPE="OPERATOR">)</SEQ>
107 <SEQ TYPE="OPERATOR">,</SEQ>
110 <!--{{{ stmts and exprs -->
111 <KEYWORD1>as</KEYWORD1>
112 <KEYWORD1>box</KEYWORD1>
113 <KEYWORD1>break</KEYWORD1>
114 <KEYWORD1>const</KEYWORD1>
115 <KEYWORD1>continue</KEYWORD1>
116 <KEYWORD1>else</KEYWORD1>
117 <KEYWORD1>for</KEYWORD1>
118 <KEYWORD1>if</KEYWORD1>
119 <KEYWORD1>in</KEYWORD1>
120 <KEYWORD1>let</KEYWORD1>
121 <KEYWORD1>loop</KEYWORD1>
122 <KEYWORD1>match</KEYWORD1>
123 <KEYWORD1>move</KEYWORD1>
124 <KEYWORD1>mut</KEYWORD1>
125 <KEYWORD1>ref</KEYWORD1>
126 <KEYWORD1>return</KEYWORD1>
127 <KEYWORD1>unsafe</KEYWORD1>
128 <KEYWORD1>while</KEYWORD1>
131 <!--{{{ view item keywords -->
132 <KEYWORD2>extern</KEYWORD2>
133 <KEYWORD2>crate</KEYWORD2>
134 <KEYWORD2>mod</KEYWORD2>
135 <KEYWORD2>fn</KEYWORD2>
136 <KEYWORD2>type</KEYWORD2>
137 <KEYWORD2>struct</KEYWORD2>
138 <KEYWORD2>enum</KEYWORD2>
139 <KEYWORD2>static</KEYWORD2>
140 <KEYWORD2>trait</KEYWORD2>
141 <KEYWORD2>impl</KEYWORD2>
142 <KEYWORD2>use</KEYWORD2>
143 <KEYWORD2>super</KEYWORD2>
144 <KEYWORD2>priv</KEYWORD2>
145 <KEYWORD2>pub</KEYWORD2>
146 <KEYWORD2>where</KEYWORD2>
150 <LITERAL2>false</LITERAL2>
151 <LITERAL2>true</LITERAL2>
152 <LITERAL2>self</LITERAL2>
155 <!--{{{ primitive types from libcore -->
156 <KEYWORD3>bool</KEYWORD3>
157 <KEYWORD3>char</KEYWORD3>
158 <KEYWORD3>f32</KEYWORD3>
159 <KEYWORD3>f64</KEYWORD3>
160 <KEYWORD3>i16</KEYWORD3>
161 <KEYWORD3>i32</KEYWORD3>
162 <KEYWORD3>i64</KEYWORD3>
163 <KEYWORD3>i8</KEYWORD3>
164 <KEYWORD3>isize</KEYWORD3>
165 <KEYWORD3>str</KEYWORD3>
166 <KEYWORD3>u16</KEYWORD3>
167 <KEYWORD3>u32</KEYWORD3>
168 <KEYWORD3>u64</KEYWORD3>
169 <KEYWORD3>u8</KEYWORD3>
170 <KEYWORD3>usize</KEYWORD3>
172 <KEYWORD4>Copy</KEYWORD4>
173 <KEYWORD4>Send</KEYWORD4>
174 <KEYWORD4>Sized</KEYWORD4>
175 <KEYWORD4>Sync</KEYWORD4>
176 <KEYWORD4>Drop</KEYWORD4>
177 <KEYWORD4>Fn</KEYWORD4>
178 <KEYWORD4>FnMut</KEYWORD4>
179 <KEYWORD4>FnOnce</KEYWORD4>
180 <KEYWORD4>drop</KEYWORD4>
181 <KEYWORD4>Box</KEYWORD4>
182 <KEYWORD4>Clone</KEYWORD4>
183 <KEYWORD4>PartialEq</KEYWORD4>
184 <KEYWORD4>PartialOrd</KEYWORD4>
185 <KEYWORD4>Eq</KEYWORD4>
186 <KEYWORD4>Ord</KEYWORD4>
187 <KEYWORD4>AsRef</KEYWORD4>
188 <KEYWORD4>AsMut</KEYWORD4>
189 <KEYWORD4>Into</KEYWORD4>
190 <KEYWORD4>From</KEYWORD4>
191 <KEYWORD4>DoubleEndedIterator</KEYWORD4>
192 <KEYWORD4>ExactSizeIterator</KEYWORD4>
193 <KEYWORD4>Iterator</KEYWORD4>
194 <KEYWORD4>Extend</KEYWORD4>
195 <KEYWORD4>Option</KEYWORD4>
196 <KEYWORD4>Some</KEYWORD4>
197 <KEYWORD4>None</KEYWORD4>
198 <KEYWORD4>Result</KEYWORD4>
199 <KEYWORD4>Ok</KEYWORD4>
200 <KEYWORD4>Err</KEYWORD4>
201 <KEYWORD4>String</KEYWORD4>
202 <KEYWORD4>ToString</KEYWORD4>
203 <KEYWORD4>Vec</KEYWORD4>
208 <!--{{{ DOUBLEQUOTE_LITERAL rule -->
209 <RULES SET="DOUBLEQUOTE_LITERAL" DEFAULT="LITERAL1" IGNORE_CASE="TRUE">
210 <SEQ TYPE="LITERAL4">\"</SEQ>
211 <SEQ TYPE="LITERAL4">\\</SEQ>
212 <SEQ TYPE="LITERAL4">\n</SEQ>
213 <SEQ TYPE="LITERAL4">\r</SEQ>
214 <SEQ TYPE="LITERAL4">\t</SEQ>
215 <SEQ TYPE="LITERAL4">\0</SEQ>
216 <SEQ_REGEXP HASH_CHAR="\x" TYPE="LITERAL4">\\x[a-f\d]{2}</SEQ_REGEXP>
217 <SEQ_REGEXP HASH_CHAR="\u" TYPE="LITERAL4">\\u\{[a-f\d]{1,6}\}</SEQ_REGEXP>
220 <!--{{{ ATTRIBUTE rule -->
221 <RULES SET="ATTRIBUTE" DEFAULT="KEYWORD4" IGNORE_CASE="FALSE">
223 <!-- Crate-only attributes -->
224 <KEYWORD2>crate_name</KEYWORD2>
225 <KEYWORD2>crate_type</KEYWORD2>
226 <KEYWORD2>feature</KEYWORD2>
227 <KEYWORD2>no_builtins</KEYWORD2>
228 <KEYWORD2>no_main</KEYWORD2>
229 <KEYWORD2>no_start</KEYWORD2>
230 <KEYWORD2>no_std</KEYWORD2>
231 <KEYWORD2>plugin</KEYWORD2>
233 <!-- Module-only attributes -->
234 <KEYWORD2>no_implicit_prelude</KEYWORD2>
235 <KEYWORD2>path</KEYWORD2>
237 <!-- Function-only attributes -->
238 <KEYWORD2>main</KEYWORD2>
239 <KEYWORD2>plugin_registrar</KEYWORD2>
240 <KEYWORD2>start</KEYWORD2>
241 <KEYWORD2>test</KEYWORD2>
242 <KEYWORD2>should_panic</KEYWORD2>
243 <KEYWORD2>cold</KEYWORD2>
245 <!-- Static-only attributes -->
246 <KEYWORD2>thread_local</KEYWORD2>
248 <!-- FFI attributes -->
249 <KEYWORD2>link_args</KEYWORD2>
250 <KEYWORD2>link</KEYWORD2>
251 <KEYWORD2>link_name</KEYWORD2>
252 <KEYWORD2>linkage</KEYWORD2>
253 <KEYWORD2>repr</KEYWORD2>
255 <!-- Macro-related attributes -->
256 <KEYWORD2>macro_use</KEYWORD2>
257 <KEYWORD2>macro_reexport</KEYWORD2>
258 <KEYWORD2>macro_export</KEYWORD2>
259 <KEYWORD2>no_link</KEYWORD2>
261 <!-- Miscellaneous attributes -->
262 <KEYWORD2>export_name</KEYWORD2>
263 <KEYWORD2>link_section</KEYWORD2>
264 <KEYWORD2>no_mangle</KEYWORD2>
265 <KEYWORD2>packed</KEYWORD2>
266 <KEYWORD2>simd</KEYWORD2>
267 <KEYWORD2>static_assert</KEYWORD2>
268 <KEYWORD2>unsafe_destructor</KEYWORD2>
269 <KEYWORD2>unsafe_no_drop_flag</KEYWORD2>
270 <KEYWORD2>doc</KEYWORD2>
271 <KEYWORD2>rustc_on_unimplemented</KEYWORD2>
273 <KEYWORD2>cfg</KEYWORD2>
275 <KEYWORD2>allow</KEYWORD2>
276 <KEYWORD2>deny</KEYWORD2>
277 <KEYWORD2>forbid</KEYWORD2>
278 <KEYWORD2>warn</KEYWORD2>
280 <KEYWORD2>lang</KEYWORD2>
282 <KEYWORD2>inline</KEYWORD2>
284 <KEYWORD2>derive</KEYWORD2>
288 <!--{{{ NESTED_DOC_COMMENT rule -->
289 <RULES SET="NESTED_DOC_COMMENT" DEFAULT="COMMENT3">
290 <!-- mark everything in doc comment as doc comment -->
291 <SPAN TYPE="COMMENT3" DELEGATE="NESTED_DOC_COMMENT">
297 <!--{{{ NESTED_COMMENT rule -->
298 <RULES SET="NESTED_COMMENT" DEFAULT="COMMENT1">
299 <SPAN TYPE="COMMENT1" DELEGATE="NESTED_COMMENT">