]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/csharp.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / csharp.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
11                 <!-- Auto indent -->
12                 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
13                 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
14                 <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
15                 <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
16                 <PROPERTY NAME="indentNextLine"
17                         VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
18                 <PROPERTY NAME="unindentThisLine"
19                         VALUE="^.*(default:\s*|case.*:.*)$" />
20                 <PROPERTY NAME="electricKeys" VALUE=":" />
21         </PROPS>
22         <RULES IGNORE_CASE="FALSE"
23                 HIGHLIGHT_DIGITS="TRUE"
24                 DIGIT_RE="(0x[\p{XDigit}]+[lL]?|[\p{Digit}]+(e[\p{Digit}]*)?[lLdDfF]?)">
25
26                 <SPAN TYPE="COMMENT1">
27                         <BEGIN>/*</BEGIN>
28                         <END>*/</END>
29                 </SPAN>
30
31                 <!-- DocComments may have XML in them -->
32                 <EOL_SPAN TYPE="COMMENT3" DELEGATE="DOC_COMMENT">///</EOL_SPAN>
33
34                 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
35
36                 <!-- verbatim strings -->
37                 <SPAN TYPE="LITERAL3" NO_LINE_BREAK="FALSE">
38                         <BEGIN>@"</BEGIN>
39                         <END>"</END>
40                 </SPAN>
41
42                 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
43                         <BEGIN>"</BEGIN>
44                         <END>"</END>
45                 </SPAN>
46
47                 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
48                         <BEGIN>'</BEGIN>
49                         <END>'</END>
50                 </SPAN>
51
52                 <EOL_SPAN TYPE="KEYWORD2">#if</EOL_SPAN>
53                 <EOL_SPAN TYPE="KEYWORD2">#else</EOL_SPAN>
54                 <EOL_SPAN TYPE="KEYWORD2">#elif</EOL_SPAN>
55                 <EOL_SPAN TYPE="KEYWORD2">#endif</EOL_SPAN>
56                 <EOL_SPAN TYPE="KEYWORD2">#define</EOL_SPAN>
57                 <EOL_SPAN TYPE="KEYWORD2">#undef</EOL_SPAN>
58                 <EOL_SPAN TYPE="KEYWORD2">#warning</EOL_SPAN>
59                 <EOL_SPAN TYPE="KEYWORD2">#error</EOL_SPAN>
60                 <EOL_SPAN TYPE="KEYWORD2">#line</EOL_SPAN>
61                 <EOL_SPAN TYPE="KEYWORD2">#region</EOL_SPAN>
62                 <EOL_SPAN TYPE="KEYWORD2">#endregion</EOL_SPAN>
63
64                 <SEQ TYPE="OPERATOR">~</SEQ>
65                 <SEQ TYPE="OPERATOR">!</SEQ>
66                 <SEQ TYPE="OPERATOR">:</SEQ>
67                 <SEQ TYPE="OPERATOR">;</SEQ>
68                 <SEQ TYPE="OPERATOR">{</SEQ>
69                 <SEQ TYPE="OPERATOR">}</SEQ>
70                 <SEQ TYPE="OPERATOR">,</SEQ>
71                 <SEQ TYPE="OPERATOR">.</SEQ>
72                 <SEQ TYPE="OPERATOR">!</SEQ>
73                 <SEQ TYPE="OPERATOR">[</SEQ>
74                 <SEQ TYPE="OPERATOR">]</SEQ>
75                 <SEQ TYPE="OPERATOR">+</SEQ>
76                 <SEQ TYPE="OPERATOR">-</SEQ>
77                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
78                 <SEQ TYPE="OPERATOR">&lt;</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>
85                 <SEQ TYPE="OPERATOR">&amp;</SEQ>
86                 <SEQ TYPE="OPERATOR">%</SEQ>
87                 <SEQ TYPE="OPERATOR">?</SEQ>
88
89                 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
90                 <SEQ TYPE="OPERATOR">)</SEQ>
91
92                 <KEYWORDS>
93                         <KEYWORD1>abstract</KEYWORD1>
94                         <KEYWORD1>alias</KEYWORD1>
95                         <KEYWORD1>as</KEYWORD1>
96                         <KEYWORD1>base</KEYWORD1>
97                         <KEYWORD1>break</KEYWORD1>
98                         <KEYWORD1>case</KEYWORD1>
99                         <KEYWORD1>catch</KEYWORD1>
100                         <KEYWORD1>checked</KEYWORD1>
101                         <KEYWORD1>const</KEYWORD1>
102                         <KEYWORD1>continue</KEYWORD1>
103                         <KEYWORD1>decimal</KEYWORD1>
104                         <KEYWORD1>default</KEYWORD1>
105                         <KEYWORD1>delegate</KEYWORD1>
106                         <KEYWORD1>do</KEYWORD1>
107                         <KEYWORD1>else</KEYWORD1>
108                         <KEYWORD1>explicit</KEYWORD1>
109                         <KEYWORD1>extern</KEYWORD1>
110                         <KEYWORD1>finally</KEYWORD1>
111                         <KEYWORD1>fixed</KEYWORD1>
112                         <KEYWORD1>for</KEYWORD1>
113                         <KEYWORD1>foreach</KEYWORD1>
114                         <KEYWORD1>from</KEYWORD1>
115                         <KEYWORD1>goto</KEYWORD1>
116                         <KEYWORD1>if</KEYWORD1>
117                         <KEYWORD1>implicit</KEYWORD1>
118                         <KEYWORD1>in</KEYWORD1>
119                         <KEYWORD1>internal</KEYWORD1>
120                         <KEYWORD1>is</KEYWORD1>
121                         <KEYWORD1>lock</KEYWORD1>
122                         <KEYWORD1>new</KEYWORD1>
123                         <KEYWORD1>operator</KEYWORD1>
124                         <KEYWORD1>out</KEYWORD1>
125                         <KEYWORD1>override</KEYWORD1>
126                         <KEYWORD1>params</KEYWORD1>
127                         <KEYWORD1>partial</KEYWORD1>
128                         <KEYWORD1>private</KEYWORD1>
129                         <KEYWORD1>protected</KEYWORD1>
130                         <KEYWORD1>public</KEYWORD1>
131                         <KEYWORD1>readonly</KEYWORD1>
132                         <KEYWORD1>ref</KEYWORD1>
133                         <KEYWORD1>return</KEYWORD1>
134                         <KEYWORD1>sealed</KEYWORD1>
135                         <KEYWORD1>select</KEYWORD1>
136                         <KEYWORD1>sizeof</KEYWORD1>
137                         <KEYWORD1>stackalloc</KEYWORD1>
138                         <KEYWORD1>static</KEYWORD1>
139                         <KEYWORD1>switch</KEYWORD1>
140                         <KEYWORD1>throw</KEYWORD1>
141                         <KEYWORD1>try</KEYWORD1>
142                         <KEYWORD1>typeof</KEYWORD1>
143                         <KEYWORD1>unchecked</KEYWORD1>
144                         <KEYWORD1>unsafe</KEYWORD1>
145                         <KEYWORD1>virtual</KEYWORD1>
146                         <KEYWORD1>while</KEYWORD1>
147                         <KEYWORD1>where</KEYWORD1>
148                         <KEYWORD1>yield</KEYWORD1>
149
150                         <KEYWORD2>using</KEYWORD2>
151                         <KEYWORD2>namespace</KEYWORD2>
152
153                         <KEYWORD3>bool</KEYWORD3>
154                         <KEYWORD3>byte</KEYWORD3>
155                         <KEYWORD3>char</KEYWORD3>
156                         <KEYWORD3>class</KEYWORD3>
157                         <KEYWORD3>double</KEYWORD3>
158                         <KEYWORD3>dynamic</KEYWORD3>
159                         <KEYWORD3>enum</KEYWORD3>
160                         <KEYWORD3>event</KEYWORD3>
161                         <KEYWORD3>float</KEYWORD3>
162                         <KEYWORD3>int</KEYWORD3>
163                         <KEYWORD3>interface</KEYWORD3>
164                         <KEYWORD3>long</KEYWORD3>
165                         <KEYWORD3>object</KEYWORD3>
166                         <KEYWORD3>sbyte</KEYWORD3>
167                         <KEYWORD3>short</KEYWORD3>
168                         <KEYWORD3>string</KEYWORD3>
169                         <KEYWORD3>struct</KEYWORD3>
170                         <KEYWORD3>uint</KEYWORD3>
171                         <KEYWORD3>ulong</KEYWORD3>
172                         <KEYWORD3>ushort</KEYWORD3>
173                         <KEYWORD3>var</KEYWORD3>
174                         <KEYWORD3>void</KEYWORD3>
175
176                         <LITERAL2>false</LITERAL2>
177                         <LITERAL2>null</LITERAL2>
178                         <LITERAL2>this</LITERAL2>
179                         <LITERAL2>true</LITERAL2>
180                 </KEYWORDS>
181         </RULES>
182
183         <RULES SET="DOC_COMMENT" DEFAULT="COMMENT3" IGNORE_CASE="TRUE">
184                 <!-- XML comments -->
185                 <SPAN TYPE="COMMENT1">
186                         <BEGIN>&lt;--</BEGIN>
187                         <END>--&gt;</END>
188                 </SPAN>
189                 <!-- XML tags -->
190                 <SPAN TYPE="MARKUP" DELEGATE="xml::TAGS">
191                         <BEGIN>&lt;</BEGIN>
192                         <END>&gt;</END>
193                 </SPAN>
194         </RULES>
195 </MODE>
196