]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/d.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / d.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <MODE>
6     <PROPS>
7         <PROPERTY NAME="commentStart" VALUE="/*" />
8         <PROPERTY NAME="commentEnd" VALUE="*/" />
9         <PROPERTY NAME="lineComment" VALUE="//" />
10         <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
11
12         <!-- Auto indent -->
13         <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
14         <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
15         <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
16         <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
17         <PROPERTY NAME="indentNextLine"
18                 VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
19         <PROPERTY NAME="unindentThisLine"
20                 VALUE="^.*(default:\s*|case.*:.*)$" />
21         <PROPERTY NAME="electricKeys" VALUE=":" />
22     </PROPS>
23
24     <RULES IGNORE_CASE="FALSE"
25         HIGHLIGHT_DIGITS="TRUE"
26         DIGIT_RE="(0x[0-9a-fA-F_]+[uUlL]?|[0-9_]+(e[0-9_]*)?[uUlLdDfF]?)">
27
28         <!-- Silly comment -->
29         <SEQ TYPE="COMMENT1">/**/</SEQ>
30
31         <!-- Doxygen comment, Javadoc style -->
32         <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">
33             <BEGIN>/**</BEGIN>
34             <END>*/</END>
35         </SPAN>
36
37         <!-- Doxygen comment, Qt style -->
38         <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">
39             <BEGIN>/*!</BEGIN>
40             <END>*/</END>
41         </SPAN>
42
43         <!-- C style comment -->
44         <SPAN TYPE="COMMENT1">
45             <BEGIN>/*</BEGIN>
46             <END>*/</END>
47         </SPAN>
48
49         <!-- Nested comment -->
50         <SPAN TYPE="COMMENT1" DELEGATE="NESTED_COMMENT">
51             <BEGIN>/+</BEGIN>
52             <END>+/</END>
53         </SPAN>
54
55         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
56
57         <!-- Wysiwyg string literal -->
58         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
59             <BEGIN>r"</BEGIN>
60             <END>"</END>
61         </SPAN>
62         <!-- Alternate Wysiwyg string literal -->
63         <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
64             <BEGIN>`</BEGIN>
65             <END>`</END>
66         </SPAN>
67         <!-- Doublequoted string literal -->
68         <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
69             <BEGIN>"</BEGIN>
70             <END>"</END>
71         </SPAN>
72         <!-- Hex string literal -->
73         <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
74             <BEGIN>x"</BEGIN>
75             <END>"</END>
76         </SPAN>
77         <!-- Character literal -->
78         <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
79             <BEGIN>'</BEGIN>
80             <END>'</END>
81         </SPAN>
82
83         <SEQ TYPE="OPERATOR">=</SEQ>
84         <SEQ TYPE="OPERATOR">!</SEQ>
85         <SEQ TYPE="OPERATOR">&gt;=</SEQ>
86         <SEQ TYPE="OPERATOR">&lt;=</SEQ>
87         <SEQ TYPE="OPERATOR">+</SEQ>
88         <SEQ TYPE="OPERATOR">-</SEQ>
89         <SEQ TYPE="OPERATOR">/</SEQ>
90
91         <SEQ TYPE="OPERATOR">*</SEQ>
92         <SEQ TYPE="OPERATOR">&gt;</SEQ>
93         <SEQ TYPE="OPERATOR">&lt;</SEQ>
94         <SEQ TYPE="OPERATOR">%</SEQ>
95         <SEQ TYPE="OPERATOR">&amp;</SEQ>
96         <SEQ TYPE="OPERATOR">|</SEQ>
97         <SEQ TYPE="OPERATOR">^</SEQ>
98         <SEQ TYPE="OPERATOR">~</SEQ>
99         <SEQ TYPE="OPERATOR">}</SEQ>
100         <SEQ TYPE="OPERATOR">{</SEQ>
101
102         <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR"
103             AT_WHITESPACE_END="TRUE">:</MARK_PREVIOUS>
104
105         <!-- Function calls -->
106         <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
107                 <SEQ TYPE="OPERATOR">)</SEQ>
108
109         <!-- Annotation types -->
110         <MARK_FOLLOWING TYPE="KEYWORD4">@</MARK_FOLLOWING>
111
112         <KEYWORDS>
113             <KEYWORD2>abstract</KEYWORD2>
114             <KEYWORD4>alias</KEYWORD4> 
115             <KEYWORD4>align</KEYWORD4> 
116             <KEYWORD4>asm</KEYWORD4> 
117             <KEYWORD4>assert</KEYWORD4> 
118             <KEYWORD3>auto</KEYWORD3> 
119             <KEYWORD1>body</KEYWORD1> 
120             <KEYWORD3>bool</KEYWORD3> 
121             <KEYWORD1>break</KEYWORD1> 
122             <KEYWORD3>byte</KEYWORD3> 
123             <KEYWORD1>case</KEYWORD1> 
124             <KEYWORD4>cast</KEYWORD4> 
125             <KEYWORD1>catch</KEYWORD1> 
126             <KEYWORD3>cdouble</KEYWORD3> 
127             <KEYWORD3>cent</KEYWORD3> 
128             <KEYWORD3>cfloat</KEYWORD3> 
129             <KEYWORD3>char</KEYWORD3> 
130             <KEYWORD1>class</KEYWORD1> 
131             <KEYWORD2>const</KEYWORD2> 
132             <KEYWORD1>continue</KEYWORD1> 
133             <KEYWORD3>creal</KEYWORD3> 
134             <KEYWORD3>dchar</KEYWORD3> 
135             <KEYWORD1>debug</KEYWORD1> 
136             <KEYWORD1>default</KEYWORD1> 
137             <KEYWORD4>delegate</KEYWORD4> 
138             <KEYWORD4>delete</KEYWORD4>
139             <KEYWORD2>deprecated</KEYWORD2> 
140             <KEYWORD1>do</KEYWORD1> 
141             <KEYWORD3>double</KEYWORD3> 
142             <KEYWORD1>else</KEYWORD1> 
143             <KEYWORD3>enum</KEYWORD3> 
144             <KEYWORD4>export</KEYWORD4> 
145             <KEYWORD2>extern</KEYWORD2> 
146             <LITERAL1>false</LITERAL1> 
147             <KEYWORD2>final</KEYWORD2> 
148             <KEYWORD1>finally</KEYWORD1> 
149             <KEYWORD3>float</KEYWORD3> 
150             <KEYWORD1>for</KEYWORD1> 
151             <KEYWORD1>foreach</KEYWORD1> 
152             <KEYWORD1>foreach_reverse</KEYWORD1> 
153             <KEYWORD4>function</KEYWORD4> 
154             <KEYWORD1>goto</KEYWORD1> 
155             <KEYWORD3>idouble</KEYWORD3> 
156             <KEYWORD1>if</KEYWORD1> 
157             <KEYWORD3>ifloat</KEYWORD3> 
158             <KEYWORD2>immutable</KEYWORD2> 
159             <KEYWORD4>import</KEYWORD4> 
160             <KEYWORD2>in</KEYWORD2> 
161             <KEYWORD2>inout</KEYWORD2> 
162             <KEYWORD3>int</KEYWORD3> 
163             <KEYWORD3>interface</KEYWORD3> 
164             <KEYWORD4>invariant</KEYWORD4> 
165             <KEYWORD3>ireal</KEYWORD3> 
166             <KEYWORD4>is</KEYWORD4> 
167             <KEYWORD2>lazy</KEYWORD2> 
168             <KEYWORD3>long</KEYWORD3>
169             <INVALID>macro</INVALID> 
170             <KEYWORD4>mixin</KEYWORD4> 
171             <KEYWORD4>module</KEYWORD4> 
172             <KEYWORD4>new</KEYWORD4> 
173             <KEYWORD2>nothrow</KEYWORD2> 
174             <LITERAL1>null</LITERAL1> 
175             <KEYWORD2>out</KEYWORD2> 
176             <KEYWORD2>override</KEYWORD2>
177             <KEYWORD4>package</KEYWORD4> 
178             <KEYWORD4>pragma</KEYWORD4> 
179             <KEYWORD2>private</KEYWORD2> 
180             <KEYWORD2>protected</KEYWORD2> 
181             <KEYWORD2>public</KEYWORD2> 
182             <KEYWORD2>pure</KEYWORD2> 
183             <KEYWORD3>real</KEYWORD3> 
184             <KEYWORD2>ref</KEYWORD2> 
185             <KEYWORD1>return</KEYWORD1> 
186             <KEYWORD1>scope</KEYWORD1> 
187             <KEYWORD2>shared</KEYWORD2> 
188             <KEYWORD3>short</KEYWORD3> 
189             <KEYWORD2>static</KEYWORD2> 
190             <KEYWORD3>struct</KEYWORD3> 
191             <KEYWORD4>super</KEYWORD4> 
192             <KEYWORD1>switch</KEYWORD1> 
193             <KEYWORD2>synchronized</KEYWORD2> 
194             <KEYWORD4>template</KEYWORD4> 
195             <LITERAL1>this</LITERAL1> 
196             <KEYWORD1>throw</KEYWORD1> 
197             <LITERAL1>true</LITERAL1> 
198             <KEYWORD1>try</KEYWORD1> 
199             <KEYWORD4>typedef</KEYWORD4> 
200             <KEYWORD4>typeid</KEYWORD4> 
201             <KEYWORD4>typeof</KEYWORD4> 
202             <KEYWORD3>ubyte</KEYWORD3> 
203             <KEYWORD3>ucent</KEYWORD3> 
204             <KEYWORD3>uint</KEYWORD3> 
205             <KEYWORD3>ulong</KEYWORD3> 
206             <KEYWORD3>union</KEYWORD3> 
207             <KEYWORD1>unittest</KEYWORD1> 
208             <KEYWORD3>ushort</KEYWORD3> 
209             <KEYWORD1>version</KEYWORD1> 
210             <KEYWORD3>void</KEYWORD3> 
211             <KEYWORD2>volatile</KEYWORD2> 
212             <KEYWORD3>wchar</KEYWORD3> 
213             <KEYWORD1>while</KEYWORD1> 
214             <KEYWORD1>with</KEYWORD1> 
215             <KEYWORD1>__FILE__</KEYWORD1> 
216             <KEYWORD1>__LINE__</KEYWORD1> 
217             <KEYWORD2>__gshared</KEYWORD2> 
218             <KEYWORD1>__thread</KEYWORD1> 
219             <KEYWORD1>__traits</KEYWORD1>
220         </KEYWORDS>
221     </RULES>
222     <RULES SET="NESTED_COMMENT" DEFAULT="COMMENT1">
223         <SPAN TYPE="COMMENT1" DELEGATE="NESTED_COMMENT">
224             <BEGIN>/+</BEGIN>
225             <END>+/</END>
226         </SPAN>
227     </RULES>
228 </MODE>