Skip to content

Commit 921b0d8

Browse files
committed
Add initial TSQL-Mode
1 parent ec27566 commit 921b0d8

2 files changed

Lines changed: 246 additions & 0 deletions

File tree

Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
<?xml version="1.0"?>
2+
<!-- The named colors 'Comment' and 'String' are used in SharpDevelop to detect if a line is inside a multiline string/comment -->
3+
<Color name="Comment" foreground="Green" exampleText="// comment" />
4+
<Color name="String" foreground="Blue" exampleText="string text = &quot;Hello, World!&quot;"/>
5+
<Color name="StringInterpolation" foreground="Black" exampleText="string text = $&quot;Hello, {name}!&quot;"/>
6+
<Color name="Char" foreground="Magenta" exampleText="char linefeed = '\n';"/>
7+
<Color name="Punctuation" exampleText="a(b.c);" />
8+
<Color name="ValueTypeKeywords" fontWeight="bold" foreground="Red" exampleText="bool b = true;" />
9+
<Color name="ReferenceTypeKeywords" foreground="Red" exampleText="object o;" />
10+
<Color name="MethodCall" foreground="MidnightBlue" fontWeight="bold" exampleText="o.ToString();"/>
11+
<Color name="NumberLiteral" foreground="DarkBlue" exampleText="3.1415f"/>
12+
<Color name="ThisOrBaseReference" fontWeight="bold" exampleText="this.Do(); base.Do();"/>
13+
<Color name="NullOrValueKeywords" fontWeight="bold" exampleText="if (value == null)"/>
14+
<Color name="Keywords" fontWeight="bold" foreground="Blue" exampleText="if (a) {} else {}"/>
15+
<Color name="GotoKeywords" foreground="Navy" exampleText="continue; return null;"/>
16+
<Color name="ContextKeywords" foreground="Navy" exampleText="var a = from x in y select z;"/>
17+
<Color name="ExceptionKeywords" fontWeight="bold" foreground="Teal" exampleText="try {} catch {} finally {}"/>
18+
<Color name="CheckedKeyword" fontWeight="bold" foreground="DarkGray" exampleText="checked {}"/>
19+
<Color name="UnsafeKeywords" foreground="Olive" exampleText="unsafe { fixed (..) {} }"/>
20+
<Color name="OperatorKeywords" fontWeight="bold" foreground="Pink" exampleText="public static implicit operator..."/>
21+
<Color name="ParameterModifiers" fontWeight="bold" foreground="DeepPink" exampleText="(ref int a, params int[] b)"/>
22+
<Color name="Modifiers" foreground="Brown" exampleText="static readonly int a;"/>
23+
<Color name="Visibility" fontWeight="bold" foreground="Blue" exampleText="public override void ToString();"/>
24+
<Color name="NamespaceKeywords" fontWeight="bold" foreground="Green" exampleText="namespace A.B { using System; }"/>
25+
<Color name="GetSetAddRemove" foreground="SaddleBrown" exampleText="int Prop { get; set; }"/>
26+
<Color name="TrueFalse" fontWeight="bold" foreground="DarkCyan" exampleText="b = false; a = true;" />
27+
<Color name="TypeKeywords" fontWeight="bold" foreground="DarkCyan" exampleText="if (x is int) { a = x as int; type = typeof(int); size = sizeof(int); c = new object(); }"/>
28+
<Property name="DocCommentMarker" value="///" />
29+
<RuleSet name="CommentMarkerSet">
30+
<Keywords fontWeight="bold" foreground="Red">
31+
<Word>TODO</Word>
32+
<Word>FIXME</Word>
33+
</Keywords>
34+
<Keywords fontWeight="bold" foreground="#E0E000">
35+
<Word>HACK</Word>
36+
<Word>UNDONE</Word>
37+
</Keywords>
38+
</RuleSet>
39+
<!-- This is the main ruleset. -->
40+
<RuleSet>
41+
<Span color="Comment" ruleSet="CommentMarkerSet">
42+
<Begin>--</Begin>
43+
</Span>
44+
<Span color="Comment" ruleSet="CommentMarkerSet" multiline="true">
45+
<Begin>/\*</Begin>
46+
<End>\*/</End>
47+
</Span>
48+
<Span color="String">
49+
<Begin>"</Begin>
50+
<End>"</End>
51+
<RuleSet>
52+
<!-- span for escape sequences -->
53+
<Span begin="\\" end="."/>
54+
</RuleSet>
55+
</Span>
56+
<Span color="Char">
57+
<Begin>'</Begin>
58+
<End>'</End>
59+
<RuleSet>
60+
<!-- span for escape sequences -->
61+
<Span begin="\\" end="."/>
62+
</RuleSet>
63+
</Span>
64+
<Span color="String" multiline="true">
65+
<Begin>@"</Begin>
66+
<End>"</End>
67+
<RuleSet>
68+
<!-- span for escape sequences -->
69+
<Span begin='""' end=""/>
70+
</RuleSet>
71+
</Span>
72+
<Span color="String">
73+
<Begin>\$"</Begin>
74+
<End>"</End>
75+
<RuleSet>
76+
<!-- span for escape sequences -->
77+
<Span begin="\\" end="."/>
78+
<Span begin="\{\{" end=""/>
79+
<!-- string interpolation -->
80+
<Span begin="{" end="}" color="StringInterpolation" ruleSet=""/>
81+
</RuleSet>
82+
</Span>
83+
<!-- don't highlight "@int" as keyword -->
84+
<Rule>
85+
@[\w\d_]+
86+
</Rule>
87+
<Keywords color="ThisOrBaseReference">
88+
<Word>this</Word>
89+
<Word>base</Word>
90+
</Keywords>
91+
<Keywords color="TypeKeywords">
92+
<Word>as</Word>
93+
<Word>is</Word>
94+
<Word>new</Word>
95+
<Word>sizeof</Word>
96+
<Word>typeof</Word>
97+
<Word>stackalloc</Word>
98+
</Keywords>
99+
<Keywords color="TrueFalse">
100+
<Word>true</Word>
101+
<Word>false</Word>
102+
</Keywords>
103+
<Keywords color="Keywords">
104+
<Word>else</Word>
105+
<Word>if</Word>
106+
<Word>switch</Word>
107+
<Word>case</Word>
108+
<Word>default</Word>
109+
<Word>do</Word>
110+
<Word>for</Word>
111+
<Word>foreach</Word>
112+
<Word>in</Word>
113+
<Word>while</Word>
114+
<Word>lock</Word>
115+
</Keywords>
116+
<Keywords color="GotoKeywords">
117+
<Word>break</Word>
118+
<Word>continue</Word>
119+
<Word>goto</Word>
120+
<Word>return</Word>
121+
</Keywords>
122+
<Keywords color="ContextKeywords">
123+
<Word>yield</Word>
124+
<Word>partial</Word>
125+
<Word>global</Word>
126+
<Word>where</Word>
127+
<Word>select</Word>
128+
<Word>group</Word>
129+
<Word>by</Word>
130+
<Word>into</Word>
131+
<Word>from</Word>
132+
<Word>ascending</Word>
133+
<Word>descending</Word>
134+
<Word>orderby</Word>
135+
<Word>let</Word>
136+
<Word>join</Word>
137+
<Word>on</Word>
138+
<Word>equals</Word>
139+
<Word>var</Word>
140+
<Word>dynamic</Word>
141+
<Word>await</Word>
142+
</Keywords>
143+
<Keywords color="ExceptionKeywords">
144+
<Word>try</Word>
145+
<Word>throw</Word>
146+
<Word>catch</Word>
147+
<Word>finally</Word>
148+
</Keywords>
149+
<Keywords color="CheckedKeyword">
150+
<Word>checked</Word>
151+
<Word>unchecked</Word>
152+
</Keywords>
153+
<Keywords color="UnsafeKeywords">
154+
<Word>fixed</Word>
155+
<Word>unsafe</Word>
156+
</Keywords>
157+
<Keywords color="ValueTypeKeywords">
158+
<Word>bool</Word>
159+
<Word>byte</Word>
160+
<Word>char</Word>
161+
<Word>decimal</Word>
162+
<Word>double</Word>
163+
<Word>enum</Word>
164+
<Word>float</Word>
165+
<Word>int</Word>
166+
<Word>long</Word>
167+
<Word>sbyte</Word>
168+
<Word>short</Word>
169+
<Word>struct</Word>
170+
<Word>uint</Word>
171+
<Word>ushort</Word>
172+
<Word>ulong</Word>
173+
</Keywords>
174+
<Keywords color="ReferenceTypeKeywords">
175+
<Word>class</Word>
176+
<Word>interface</Word>
177+
<Word>delegate</Word>
178+
<Word>object</Word>
179+
<Word>string</Word>
180+
<Word>void</Word>
181+
</Keywords>
182+
<Keywords color="OperatorKeywords">
183+
<Word>explicit</Word>
184+
<Word>implicit</Word>
185+
<Word>operator</Word>
186+
</Keywords>
187+
<Keywords color="ParameterModifiers">
188+
<Word>params</Word>
189+
<Word>ref</Word>
190+
<Word>out</Word>
191+
</Keywords>
192+
<Keywords color="Modifiers">
193+
<Word>abstract</Word>
194+
<Word>const</Word>
195+
<Word>event</Word>
196+
<Word>extern</Word>
197+
<Word>override</Word>
198+
<Word>readonly</Word>
199+
<Word>sealed</Word>
200+
<Word>static</Word>
201+
<Word>virtual</Word>
202+
<Word>volatile</Word>
203+
<Word>async</Word>
204+
</Keywords>
205+
<Keywords color="Visibility">
206+
<Word>public</Word>
207+
<Word>protected</Word>
208+
<Word>private</Word>
209+
<Word>internal</Word>
210+
</Keywords>
211+
<Keywords color="NamespaceKeywords">
212+
<Word>namespace</Word>
213+
<Word>using</Word>
214+
</Keywords>
215+
<Keywords color="GetSetAddRemove">
216+
<Word>get</Word>
217+
<Word>set</Word>
218+
<Word>add</Word>
219+
<Word>remove</Word>
220+
</Keywords>
221+
<Keywords color="NullOrValueKeywords">
222+
<Word>null</Word>
223+
<Word>value</Word>
224+
</Keywords>
225+
<!-- Mark previous rule-->
226+
<Rule color="MethodCall">
227+
\b
228+
[\d\w_]+ # an identifier
229+
(?=\s*\() # followed by (
230+
</Rule>
231+
<!-- Digits -->
232+
<Rule color="NumberLiteral">
233+
\b0[xX][0-9a-fA-F]+ # hex number
234+
( \b\d+(\.[0-9]+)? #number with optional floating point
235+
| \.[0-9]+ #or just starting with floating point
236+
)
237+
([eE][+-]?[0-9]+)? # optional exponent
238+
</Rule>
239+
<Rule color="Punctuation">
240+
[?,.;()\[\]{}+\-/%*&lt;&gt;^+~!|&amp;]+
241+
</Rule>
242+
</RuleSet>
243+
</SyntaxDefinition>

ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,4 +451,7 @@
451451
<ItemGroup>
452452
<EmbeddedResource Include="Highlighting\Resources\MarkDown-Mode.xshd" />
453453
</ItemGroup>
454+
<ItemGroup>
455+
<EmbeddedResource Include="Highlighting\Resources\TSQL-Mode.xshd" />
456+
</ItemGroup>
454457
</Project>

0 commit comments

Comments
 (0)