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