1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE language SYSTEM "language.dtd"
4 <!-- FIXME: Kate's regex engine has very limited support for
5 predefined char classes, so making rustIdent consistent with actual
6 Rust identifiers will be a bit difficult -->
7 <!ENTITY rustIdent "[a-zA-Z_][a-zA-Z_0-9]*">
8 <!ENTITY rustIntSuf "([iu](8|16|32|64)?)?">
10 <language name="Rust" version="1.0.0" kateversion="2.4" section="Sources" extensions="*.rs" mimetype="text/x-rust" priority="15">
18 <list name="reserved">
19 <item> abstract </item>
20 <item> alignof </item>
24 <item> offsetof </item>
25 <item> override </item>
30 <item> unsized </item>
33 <list name="keywords">
38 <item> continue </item>
62 <item> virtual </item>
108 <item> Option </item>
109 <item> Result </item>
113 <item> c_float </item>
114 <item> c_double </item>
115 <item> c_void </item>
117 <item> fpos_t </item>
119 <item> dirent </item>
120 <item> c_char </item>
121 <item> c_schar </item>
122 <item> c_uchar </item>
123 <item> c_short </item>
124 <item> c_ushort </item>
126 <item> c_uint </item>
127 <item> c_long </item>
128 <item> c_ulong </item>
129 <item> size_t </item>
130 <item> ptrdiff_t </item>
131 <item> clock_t </item>
132 <item> time_t </item>
133 <item> c_longlong </item>
134 <item> c_ulonglong </item>
135 <item> intptr_t </item>
136 <item> uintptr_t </item>
141 <item> mode_t </item>
142 <item> ssize_t </item>
147 <list name="constants">
154 <item> Success </item>
155 <item> Failure </item>
159 <list name="cconstants">
160 <item> EXIT_FAILURE </item>
161 <item> EXIT_SUCCESS </item>
162 <item> RAND_MAX </item>
164 <item> SEEK_SET </item>
165 <item> SEEK_CUR </item>
166 <item> SEEK_END </item>
167 <item> _IOFBF </item>
168 <item> _IONBF </item>
169 <item> _IOLBF </item>
170 <item> BUFSIZ </item>
171 <item> FOPEN_MAX </item>
172 <item> FILENAME_MAX </item>
173 <item> L_tmpnam </item>
174 <item> TMP_MAX </item>
175 <item> O_RDONLY </item>
176 <item> O_WRONLY </item>
177 <item> O_RDWR </item>
178 <item> O_APPEND </item>
179 <item> O_CREAT </item>
180 <item> O_EXCL </item>
181 <item> O_TRUNC </item>
182 <item> S_IFIFO </item>
183 <item> S_IFCHR </item>
184 <item> S_IFBLK </item>
185 <item> S_IFDIR </item>
186 <item> S_IFREG </item>
187 <item> S_IFMT </item>
188 <item> S_IEXEC </item>
189 <item> S_IWRITE </item>
190 <item> S_IREAD </item>
191 <item> S_IRWXU </item>
192 <item> S_IXUSR </item>
193 <item> S_IWUSR </item>
194 <item> S_IRUSR </item>
199 <item> STDIN_FILENO </item>
200 <item> STDOUT_FILENO </item>
201 <item> STDERR_FILENO </item>
204 <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
206 <keyword String="fn" attribute="Keyword" context="Function"/>
207 <keyword String="type" attribute="Keyword" context="Type"/>
208 <keyword String="reserved" attribute="Keyword" context="#stay"/>
209 <keyword String="keywords" attribute="Keyword" context="#stay"/>
210 <keyword String="types" attribute="Type" context="#stay"/>
211 <keyword String="traits" attribute="Trait" context="#stay"/>
212 <keyword String="ctypes" attribute="CType" context="#stay"/>
213 <keyword String="self" attribute="Self" context="#stay"/>
214 <keyword String="constants" attribute="Constant" context="#stay"/>
215 <keyword String="cconstants" attribute="CConstant" context="#stay"/>
216 <Detect2Chars char="/" char1="/" attribute="Comment" context="Commentar 1"/>
217 <Detect2Chars char="/" char1="*" attribute="Comment" context="Commentar 2" beginRegion="Comment"/>
218 <RegExpr String="0x[0-9a-fA-F_]+&rustIntSuf;" attribute="Number" context="#stay"/>
219 <RegExpr String="0o[0-7_]+&rustIntSuf;" attribute="Number" context="#stay"/>
220 <RegExpr String="0b[0-1_]+&rustIntSuf;" attribute="Number" context="#stay"/>
221 <RegExpr String="[0-9][0-9_]*\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?" attribute="Number" context="#stay"/>
222 <RegExpr String="[0-9][0-9_]*&rustIntSuf;" attribute="Number" context="#stay"/>
223 <Detect2Chars char="#" char1="[" attribute="Attribute" context="Attribute" beginRegion="Attribute"/>
224 <StringDetect String="#![" attribute="Attribute" context="Attribute" beginRegion="Attribute"/>
225 <RegExpr String="&rustIdent;::" attribute="Scope"/>
226 <RegExpr String="&rustIdent;!" attribute="Macro"/>
227 <RegExpr String="'&rustIdent;(?!')" attribute="Lifetime"/>
228 <DetectChar char="{" attribute="Symbol" context="#stay" beginRegion="Brace" />
229 <DetectChar char="}" attribute="Symbol" context="#stay" endRegion="Brace" />
230 <DetectChar char=""" attribute="String" context="String"/>
231 <DetectChar char="'" attribute="Character" context="Character"/>
232 <DetectChar char="[" attribute="Symbol" context="#stay" beginRegion="Bracket" />
233 <DetectChar char="]" attribute="Symbol" context="#stay" endRegion="Bracket" />
236 <context attribute="Attribute" lineEndContext="#stay" name="Attribute">
237 <DetectChar char="]" attribute="Attribute" context="#pop" endRegion="Attribute"/>
238 <IncludeRules context="Normal"/>
240 <context attribute="Definition" lineEndContext="#stay" name="Function">
242 <DetectChar char="(" attribute="Normal Text" context="#pop"/>
243 <DetectChar char="<" attribute="Normal Text" context="#pop"/>
245 <context attribute="Definition" lineEndContext="#stay" name="Type">
247 <DetectChar char="=" attribute="Normal Text" context="#pop"/>
248 <DetectChar char="<" attribute="Normal Text" context="#pop"/>
250 <context attribute="String" lineEndContext="#stay" name="String">
251 <LineContinue attribute="String" context="#stay"/>
252 <DetectChar char="\" attribute="CharEscape" context="CharEscape"/>
253 <DetectChar attribute="String" context="#pop" char="""/>
255 <context attribute="Character" lineEndContext="#pop" name="Character">
256 <DetectChar char="\" attribute="CharEscape" context="CharEscape"/>
257 <DetectChar attribute="Character" context="#pop" char="'"/>
259 <context attribute="CharEscape" lineEndContext="#pop" name="CharEscape">
260 <AnyChar String="nrt\'"" attribute="CharEscape" context="#pop"/>
261 <RegExpr String="x[0-9a-fA-F]{2}" attribute="CharEscape" context="#pop"/>
262 <RegExpr String="u\{[0-9a-fA-F]{1,6}\}" attribute="CharEscape" context="#pop"/>
263 <RegExpr String="u[0-9a-fA-F]{4}" attribute="CharEscape" context="#pop"/>
264 <RegExpr String="U[0-9a-fA-F]{8}" attribute="CharEscape" context="#pop"/>
265 <RegExpr String="." attribute="Error" context="#pop"/>
267 <context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
268 <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
270 <Detect2Chars char="*" char1="/" attribute="Comment" context="#pop" endRegion="Comment"/>
274 <itemData name="Normal Text" defStyleNum="dsNormal"/>
275 <itemData name="Keyword" defStyleNum="dsKeyword" color="#770088" bold="1"/>
276 <itemData name="Self" defStyleNum="dsKeyword" color="#FF0000" bold="1"/>
277 <itemData name="Type" defStyleNum="dsKeyword" color="#4e9a06" bold="1"/>
278 <itemData name="Trait" defStyleNum="dsKeyword" color="#4e9a06" bold="1"/>
279 <itemData name="CType" defStyleNum="dsNormal" color="#4e9a06"/>
280 <itemData name="Constant" defStyleNum="dsKeyword" color="#116644"/>
281 <itemData name="CConstant" defStyleNum="dsNormal" color="#116644"/>
282 <itemData name="Definition" defStyleNum="dsNormal" color="#0000FF"/>
283 <itemData name="Comment" defStyleNum="dsComment" color="#AA5500"/>
284 <itemData name="Scope" defStyleNum="dsNormal" color="#0055AA"/>
285 <itemData name="Number" defStyleNum="dsDecVal" color="#116644"/>
286 <itemData name="String" defStyleNum="dsString" color="#FF0000"/>
287 <itemData name="CharEscape" defStyleNum="dsChar" color="#FF0000" bold="1"/>
288 <itemData name="Character" defStyleNum="dsChar" color="#FF0000"/>
289 <itemData name="Macro" defStyleNum="dsOthers"/>
290 <itemData name="Attribute" defStyleNum="dsOthers"/>
291 <itemData name="Lifetime" defStyleNum="dsOthers" bold="1"/>
292 <itemData name="Error" defStyleNum="dsError"/>
297 <comment name="singleLine" start="//" />
298 <comment name="multiLine" start="/*" end="*/" region="Comment"/>
300 <keywords casesensitive="1" />