Merge branch '1396_with_search_engine'
[midnight-commander.git] / syntax / d.syntax
blob66449810e1492ef481168fde4ccc5a64a0e81627
1 # -------------------------------
3 # D programming language syntax highlighting
4 # for CoolEdit
6 # Homepage of D: http://www.digitalmars.com/d/
8 # Author: Witold Baryluk < baryluk at smp if uj edu pl >
9 # Date: 23-08-2007
11 # -------------------------------
13 context default
15 # sh bang
16     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
17     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
18     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
19     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/bin/dmd brightcyan black
20     keyword whole linestart #!\[\s\]/bin/dmd brightcyan black
21     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
22     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
23     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
24     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
25     keyword whole linestart #!\[\s\]/dmd brightcyan black
26     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/gdmd brightcyan black
27     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/gdmd brightcyan black
28     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/\[abcdefghijklmnopqrstuvwxyz\]/gdmd brightcyan black
29     keyword whole linestart #!\[\s\]/\[abcdefghijklmnopqrstuvwxyz\]/dmd brightcyan black
30     keyword whole linestart #!\[\s\]/gdmd brightcyan black
32 # keywords
33         keyword whole abstract yellow
34         keyword whole alias yellow
35         keyword whole align yellow
36         keyword whole assert yellow
37         keyword whole body yellow
38         keyword whole bool yellow
39         keyword whole byte yellow
40         keyword whole cast yellow
41         keyword whole catch yellow
42         keyword whole cdouble yellow
43         keyword whole cent yellow
44         keyword whole cfloat yellow
45         keyword whole class yellow
46         keyword whole creal yellow
47         keyword whole dchar yellow
48         keyword whole debug yellow
49         keyword whole delegate yellow
50         keyword whole delete yellow
51         keyword whole deprecated yellow
52         keyword whole dstring yellow
53         keyword whole false brightred
54         keyword whole finally yellow
55         keyword whole final yellow
56         keyword whole foreach_reverse yellow
57         keyword whole function yellow
58         keyword whole idouble yellow
59         keyword whole ifloat yellow
60         keyword whole inout yellow
61         keyword whole interface yellow
62         keyword whole invariant yellow
63         keyword whole in yellow
64         keyword whole is yellow
65         keyword whole ireal yellow
66         keyword whole lazy yellow
67         keyword whole long yellow
68         keyword whole macro yellow
69         keyword whole mixin yellow
70         keyword whole module yellow
71         keyword whole new yellow
72         keyword whole null brightred
73         keyword whole out yellow
74         keyword whole override yellow
75         keyword whole package yellow
76         keyword whole pragma yellow
77         keyword whole private yellow
78         keyword whole protected yellow
79         keyword whole public yellow
80         keyword whole real yellow
81         keyword whole ref yellow
82         keyword whole scope yellow
83         keyword whole string yellow
84         keyword whole super brightred
85         keyword whole synchronized yellow
86         keyword whole template yellow
87         keyword whole this brightred
88         keyword whole throw yellow
89         keyword whole true brightred
90         keyword whole try yellow
91         keyword whole typedef yellow
92         keyword whole typeid yellow
93         keyword whole typeof yellow
94         keyword whole ubyte yellow
95         keyword whole ucent yellow
96         keyword whole ulong yellow
97         keyword whole unittest yellow
98         keyword whole ushort yellow
99         keyword whole version yellow
100         keyword whole volatile yellow
101         keyword whole wchar yellow
102         keyword whole with yellow
103         keyword whole wstring yellow
104         keyword whole asm yellow
105         keyword whole auto yellow
106         keyword whole break yellow
107         keyword whole case yellow
108         keyword whole char yellow
109         keyword whole const yellow
110         keyword whole continue yellow
111         keyword whole default yellow
112         keyword whole double yellow
113         keyword whole do yellow
114         keyword whole else yellow
115         keyword whole enum yellow
116         keyword whole export yellow
117         keyword whole extern yellow
118         keyword whole float yellow
119         keyword whole foreach yellow
120         keyword whole for yellow
121         keyword whole goto yellow
122         keyword whole if yellow
123         keyword whole import magenta
124         keyword whole inline yellow
125         keyword whole int yellow
126         keyword whole return yellow
127         keyword whole short yellow
128         keyword whole signed yellow
129         keyword whole sizeof yellow
130         keyword whole static yellow
131         keyword whole struct yellow
132         keyword whole switch yellow
133         keyword whole typedef yellow
134         keyword whole uint yellow
135         keyword whole union yellow
136         keyword whole unsigned yellow
137         keyword whole void yellow
138         keyword whole while yellow
140 # predefined aliases (deprecated)
141         keyword whole bit yellow
142 # predefined aliases (2.0)
143         keyword whole string yellow
144         keyword whole dstring yellow
145         keyword whole wstring yellow
147 # D array atributes
148         keyword wholeright .sizeof yellow
149         keyword wholeright .length yellow
150         keyword wholeright .ptr yellow
151         keyword wholeright .dup yellow
152         keyword wholeright .reverse yellow
153         keyword wholeright .sort yellow
154         keyword wholeright .keys yellow
155         keyword wholeright .values yellow
156         keyword wholeright .rehash yellow
157 # D types atributes
158         keyword wholeright .init yellow
159         keyword wholeright .alignof yellow
160         keyword wholeright .mangleof yellow
161         keyword wholeright .stringof yellow
162 # +integer
163         keyword wholeright .min yellow
164         keyword wholeright .max yellow
165 # +floating point
166         keyword wholeright .infinity yellow
167         keyword wholeright .nan yellow
168         keyword wholeright .dig yellow
169         keyword wholeright .epsilon yellow
170         keyword wholeright .mant_dig yellow
171         keyword wholeright .max_10_exp yellow
172         keyword wholeright .max_exp yellow
173         keyword wholeright .min_10_exp yellow
174         keyword wholeright .min_exp yellow
175         keyword wholeright .re yellow
176         keyword wholeright .im yellow
177         keyword wholeright .im yellow
178 # union
179         keyword wholeright .offsetof yellow
181 # D 2.0 atributes
182         keyword wholeright .idup yellow
184 # unary operators
185         keyword whole opNeg gray
186         keyword whole opPos gray
187         keyword whole opCom gray
188         keyword whole opPostInc gray
189         keyword whole opPostDec gray
190         keyword whole opCast gray
192 # binary operators
193         keyword whole opAdd gray
194         keyword whole opAdd_r gray
195         keyword whole opSub gray
196         keyword whole opSub_r gray
197         keyword whole opMul gray
198         keyword whole opMul_r gray
199         keyword whole opDiv gray
200         keyword whole opDiv_r gray
201         keyword whole opMod gray
202         keyword whole opMod_r gray
203         keyword whole opAnd gray
204         keyword whole opAnd_r gray
205         keyword whole opOr gray
206         keyword whole opOr_r gray
207         keyword whole opXor gray
208         keyword whole opXor_r gray
209         keyword whole opShl gray
210         keyword whole opShl_r gray
211         keyword whole opShr gray
212         keyword whole opShr_r gray
213         keyword whole opUShr gray
214         keyword whole opUShr_r gray
215         keyword whole opCat gray
216         keyword whole opCat_r gray
217         keyword whole opEquals gray
218         keyword whole opCmp gray
219         keyword whole opAssign gray
220         keyword whole opAddAssign gray
221         keyword whole opSubAssign gray
222         keyword whole opMulAssign gray
223         keyword whole opDivAssign gray
224         keyword whole opModAssign gray
225         keyword whole opAndAssign gray
226         keyword whole opOrAssign gray
227         keyword whole opXorAssign gray
228         keyword whole opShlAssign gray
229         keyword whole opShrAssign gray
230         keyword whole opUShrAssign gray
231         keyword whole opCatAssign gray
232         keyword whole opIn gray
233         keyword whole opIn_r gray
235 # special operators
236         keyword whole opCall gray
237         keyword whole opIndex gray
238         keyword whole opIndexAssign gray
239         keyword whole opSlice gray
240         keyword whole opSliceAssign gray
241         keyword whole opAssign gray
242         keyword whole opApply gray
244         keyword whole ... yellow
245         keyword whole .. yellow
246 #       keyword whole linestart \{\s\t\}\[\s\t\]#*\n brightmagenta # C preprocesor
248 # special objects
250 # hidden argument of variadic functions
251         keyword whole _argptr brightred
252         keyword whole _arguments brightred
254 # object
255         keyword whole Object brightmagenta
256         keyword whole Interface brightmagenta
257         keyword whole ClassInfo brightmagenta
258         keyword whole OffsetTypeInfo brightmagenta
259         keyword whole TypeInfo brightmagenta
260         keyword whole Exception brightmagenta
261         keyword whole Error brightmagenta
263 # common functions
265 # object methods
266         keyword whole toString cyan
267         keyword whole toHash cyan
268 # std.stdio
269         keyword whole writefln cyan
270         keyword whole writef cyan
271 # std.gc
272         keyword whole addRoot cyan
273         keyword whole removeRoot cyan
274         keyword whole addRange cyan
275         keyword whole hasPointers cyan
276         keyword whole hasNoPointers cyan
277         keyword whole setTypeInfo cyan
278         keyword whole malloc cyan
279         keyword whole realoc cyan
280         keyword whole extend cyan
281         keyword whole capacity cyan
282         keyword whole setV1_0 cyan
283         keyword whole fullCollect cyan
284         keyword whole genCollect cyan
285 # std.string
286         keyword whole iswhite cyan
287         keyword whole atoi cyan
288         keyword whole atof cyan
289         keyword whole toStringz cyan
290         keyword whole tolower cyan
291         keyword whole toupper cyan
292         keyword whole repeat cyan
293         keyword whole join cyan
294         keyword whole split cyan
295         keyword whole stripl cyan
296         keyword whole stripr cyan
297         keyword whole strip cyan
298         keyword whole chomp cyan
299         keyword whole chop cyan
300         keyword whole isNumeric cyan
301         keyword whole isEmail cyan
302         keyword whole isURL cyan
303 # std.math
304         keyword whole abs cyan
305         keyword whole conj cyan
306         keyword whole cos cyan
307         keyword whole sin cyan
308         keyword whole tan cyan
309         keyword whole acos cyan
310         keyword whole asin cyan
311         keyword whole atan cyan
312         keyword whole atan2 cyan
313         keyword whole cosh cyan
314         keyword whole sinh cyan
315         keyword whole tanh cyan
316         keyword whole acosh cyan
317         keyword whole asinh cyan
318         keyword whole atanh cyan
319         keyword whole rndtol cyan
320         keyword whole rndtonl cyan
321         keyword whole sqrt cyan
322         keyword whole exp cyan
323         keyword whole exp2 cyan
324         keyword whole expm1 cyan
325         keyword whole frexp cyan
326         keyword whole ilogb cyan
327         keyword whole ldexp cyan
328         keyword whole log cyan
329         keyword whole log10 cyan
330         keyword whole log1p cyan
331         keyword whole log2 cyan
332         keyword whole logb cyan
333         keyword whole modf cyan
334         keyword whole scalbn cyan
335         keyword whole cbrt cyan
336         keyword whole fabs cyan
337         keyword whole hypot cyan
338         keyword whole erf cyan
339         keyword whole erfc cyan
340         keyword whole lgamma cyan
341         keyword whole tgamma cyan
342         keyword whole ceil cyan
343         keyword whole floor cyan
344         keyword whole nearbyint cyan
345         keyword whole rint cyan
346         keyword whole lrint cyan
347         keyword whole round cyan
348         keyword whole lround cyan
349         keyword whole trunc cyan
350         keyword whole remainder cyan
351         keyword whole remquo cyan
352         keyword whole isnan cyan
353         keyword whole isfinite cyan
354         keyword whole isnormal cyan
355         keyword whole issubnormal cyan
356         keyword whole isinf cyan
357         keyword whole signbit cyan
358         keyword whole copysign cyan
359         keyword whole nan cyan
360         keyword whole nextafter cyan
361         keyword whole fdim cyan
362         keyword whole fmax cyan
363         keyword whole fmin cyan
364         keyword whole fma cyan
365         keyword whole pow cyan
366         keyword whole feqrel cyan
367         keyword whole poly cyan
369 # comments
370         keyword /\*\* brown
371         keyword /\* brown
372         keyword \*/ brown
373         keyword // brown
375         keyword /\+\+\+\+\+\+\+\+\+\+ brown
376         keyword /\+\+\+\+\+\+\+\+\+ brown
377         keyword /\+\+\+\+\+\+\+\+ brown
378         keyword /\+\+\+\+\+\+\+ brown
379         keyword /\+\+\+\+\+\+ brown
380         keyword /\+\+\+\+\+ brown
381         keyword /\+\+\+\+ brown
382         keyword /\+\+\+ brown
383         keyword /\+\+ brown
384         keyword /\+ brown
385         keyword \+\+\+\+\+\+\+\+\+\+/ brown
386         keyword \+\+\+\+\+\+\+\+\+/ brown
387         keyword \+\+\+\+\+\+\+\+/ brown
388         keyword \+\+\+\+\+\+\+/ brown
389         keyword \+\+\+\+\+\+/ brown
390         keyword \+\+\+\+\+/ brown
391         keyword \+\+\+\+/ brown
392         keyword \+\+\+/ brown
393         keyword \+\+/ brown
394         keyword \+/ brown
396 # chars, 'x' and entities
397         keyword '\\\{"abtnvfr\}' brightgreen
398         keyword \\\{"abtnvfr\} brightmagenta
399         keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen
400         keyword \\\{0123\}\{01234567\}\{01234567\} brightmagenta
401         keyword '\\\{01234567\}\{01234567\}' brightgreen
402         keyword \\\{01234567\}\{01234567\} brightmagenta
403         keyword '\\\{01234567\}' brightgreen
404         keyword \\\{01234567\} brightmagenta
405         keyword '\\'' brightgreen
406         keyword '\\\\' brightgreen
407         keyword '\\0' brightgreen
408         keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\}' brightgreen
409         keyword '\\&*;' brightgreen
410         keyword \\&*; brightmagenta
411         keyword '\\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
412         keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
413         keyword '\\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
414         keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
415         keyword '\\u\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
416         keyword \\u\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
417         keyword '\\U\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}' brightgreen
418         keyword \\U\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightmagenta
420 # hexstring
421         keyword x"\[0123456789abcdefABCDEF\t\s\]"\{cwd\} brightgreen
422         keyword x"\[0123456789abcdefABCDEF\t\s\]" brightgreen
424 # start of wyswig string
425 #       keyword "\{cwd\} green  # imposible in cooledit
426         keyword " green
427         keyword r" green
428 #       keyword `\{cwd\} green  # imposible in cooledit
429         keyword ` green
431 # operators
432         keyword !<>= yellow
433         keyword !<> yellow
434         keyword !>= yellow
435         keyword !> yellow
436         keyword !<= yellow
437         keyword !< yellow
438         keyword != yellow
439         keyword ! yellow
440         keyword %= yellow
441         keyword % yellow
442         keyword && yellow
443         keyword &= yellow
444         keyword & yellow
445         keyword ( brightcyan
446         keyword ) brightcyan
447         keyword \+\+ yellow
448         keyword -- yellow
449         keyword \*= yellow
450         keyword \* yellow
451         keyword \+= yellow
452         keyword \+ yellow
453         keyword , brightcyan
454         keyword -= yellow
455         keyword - yellow
456         keyword /= yellow
457         keyword / yellow
458         keyword : brightcyan
459         keyword ; brightmagenta
460         keyword <>= yellow
461         keyword <> yellow
462         keyword <<= yellow
463         keyword << yellow
464         keyword <= yellow
465         keyword < yellow
466         keyword = yellow
467         keyword >>>= yellow
468         keyword >>> yellow
469         keyword >>= yellow
470         keyword >> yellow
471         keyword >= yellow
472         keyword > yellow
473         keyword ? brightcyan
474         keyword [ brightcyan
475         keyword ] brightcyan
476         keyword ^= yellow
477         keyword ^ yellow
478         keyword || yellow
479         keyword |= yellow
480         keyword | yellow
481         keyword { brightcyan
482         keyword } brightcyan
483         keyword $ brightcyan
484         keyword ~= yellow
485         keyword ~ yellow
487 # predefined lexer entities
488         keyword whole __FILE__ red
489         keyword whole __LINE__ red
490         keyword whole __DATE__ red
491         keyword whole __TIME__ red
492         keyword whole __TIMESTAMP__ red
493 # 1.017 ?
494         keyword whole __VENDOR__ red
495         keyword whole __VERSION__ red
497         keyword #line*"*" red
499 context exclusive /\*\* \*/ brown
500         keyword \*/ brown
501         spellcheck
502 # ddoc
503         keyword Authors: red
504         keyword Author: red
505         keyword BUGS: red
506         keyword Bugs: red
507         keyword Date: red
508         keyword Deprecated: red
509         keyword Examples: red
510         keyword History: red
511         keyword License: red
512         keyword Returns: red
513         keyword See_Also: red
514         keyword Standards: red
515         keyword Throws: red
516         keyword Version: red
517 # sections
518         keyword Copyright: red
519         keyword Params: red
520         keyword Macros: red
521 # non standard
522         keyword TODO: red
523         keyword FIXME: red
524         keyword Note: red
526 context exclusive /\+\+\+\+\+\+\+\+\+ \+\+\+\+\+\+\+\+\+/ brown
527 context exclusive /\+\+\+\+\+\+\+\+ \+\+\+\+\+\+\+\+/ brown
528 context exclusive /\+\+\+\+\+\+\+ \+\+\+\+\+\+\+/ brown
529 context exclusive /\+\+\+\+\+\+ \+\+\+\+\+\+/ brown
530 context exclusive /\+\+\+\+\+ \+\+\+\+\+/ brown
531 context exclusive /\+\+\+\+ \+\+\+\+/ brown
532 context exclusive /\+\+\+ \+\+\+/ brown
533 context exclusive /\+\+ \+\+/ brown
534 context exclusive /\+ \+/ brown
536 context exclusive /\* \*/ brown
537         spellcheck
539 context exclusive // \n brown
540         spellcheck
542 context exclusive ` ` green
544 context exclusive r" " green
546 context exclusive " " green
547         spellcheck
548         keyword \\" brightgreen
549         keyword %% brightgreen
550         keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen
551         keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen
552         keyword %\[hl\]n brightgreen
553         keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen
554         keyword %[*] brightgreen
555         keyword %c brightgreen
556         keyword %p brightgreen
557         keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen
558         keyword \\\\ brightgreen
559         keyword \\' brightgreen
560         keyword \\\{abtnvfr\} brightgreen
561         keyword \\&*; brightgreen