You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
8.1 KiB
288 lines
8.1 KiB
<?xml version="1.0"?> |
|
<SyntaxDefinition name="C#" extensions=".cs" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008"> |
|
<!-- The named colors 'Comment' and 'String' are used in SharpDevelop to detect if a line is inside a multiline string/comment --> |
|
<Color name="Comment" foreground="Green" exampleText="// comment" /> |
|
<Color name="String" foreground="Blue" exampleText="string text = "Hello, World!""/> |
|
<Color name="Char" foreground="Magenta" exampleText="char linefeed = '\n';"/> |
|
<Color name="Preprocessor" foreground="Green" exampleText="#region Title" /> |
|
<Color name="Punctuation" foreground="DarkGreen" exampleText="a(b.c);" /> |
|
<Color name="ValueTypes" fontWeight="bold" foreground="Red" exampleText="bool b = true;" /> |
|
<Color name="ReferenceTypes" foreground="Red" exampleText="object o;" /> |
|
<Color name="MethodCall" foreground="MidnightBlue" fontWeight="bold" exampleText="o.ToString();"/> |
|
<Color name="NumberLiteral" foreground="DarkBlue" exampleText="3.1415f"/> |
|
<Color name="ThisOrBaseReference" fontWeight="bold" exampleText="this.Do(); base.Do();"/> |
|
<Color name="NullOrValueKeywords" fontWeight="bold" exampleText="if (value == null)"/> |
|
<Color name="Keywords" fontWeight="bold" foreground="Blue" exampleText="if (a) {} else {}"/> |
|
<Color name="GotoKeywords" foreground="Navy" exampleText="continue; return null;"/> |
|
<Color name="ContextKeywords" foreground="Navy" exampleText="var a = from x in y select z;"/> |
|
<Color name="ExceptionKeywords" fontWeight="bold" foreground="Teal" exampleText="try {} catch {} finally {}"/> |
|
<Color name="CheckedKeyword" fontWeight="bold" foreground="DarkGray" exampleText="checked {}"/> |
|
<Color name="UnsafeKeywords" foreground="Olive" exampleText="unsafe { fixed (..) {} }"/> |
|
<Color name="OperatorKeywords" fontWeight="bold" foreground="Pink" exampleText="public static implicit operator..."/> |
|
<Color name="ParameterModifiers" fontWeight="bold" foreground="DeepPink" exampleText="(ref int a, params int[] b)"/> |
|
<Color name="Modifiers" foreground="Brown" exampleText="static readonly int a;"/> |
|
<Color name="Visibility" fontWeight="bold" foreground="Blue" exampleText="public override void ToString();"/> |
|
<Color name="NamespaceKeywords" fontWeight="bold" foreground="Green" exampleText="namespace A.B { using System; }"/> |
|
<Color name="GetSetAddRemove" foreground="SaddleBrown" exampleText="int Prop { get; set; }"/> |
|
<Color name="TrueFalse" fontWeight="bold" foreground="DarkCyan" exampleText="b = false; a = true;" /> |
|
<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(); }"/> |
|
|
|
<RuleSet name="CommentMarkerSet"> |
|
<Keywords fontWeight="bold" foreground="Red"> |
|
<Word>TODO</Word> |
|
<Word>FIXME</Word> |
|
</Keywords> |
|
<Keywords fontWeight="bold" foreground="#E0E000"> |
|
<Word>HACK</Word> |
|
<Word>UNDONE</Word> |
|
</Keywords> |
|
</RuleSet> |
|
|
|
<!-- This is the main ruleset. --> |
|
<RuleSet> |
|
<Span color="Preprocessor"> |
|
<Begin>\#</Begin> |
|
<RuleSet name="PreprocessorSet"> |
|
<Span> <!-- preprocessor directives that allow comments --> |
|
<Begin fontWeight="bold"> |
|
(define|undef|if|elif|else|endif|line)\b |
|
</Begin> |
|
<RuleSet> |
|
<Span color="Comment" ruleSet="CommentMarkerSet"> |
|
<Begin>//</Begin> |
|
</Span> |
|
</RuleSet> |
|
</Span> |
|
<Span> <!-- preprocessor directives that don't allow comments --> |
|
<Begin fontWeight="bold"> |
|
(region|endregion|error|warning|pragma)\b |
|
</Begin> |
|
</Span> |
|
</RuleSet> |
|
</Span> |
|
|
|
<Span color="Comment"> |
|
<Begin color="XmlDoc/DocComment">///</Begin> |
|
<RuleSet> |
|
<Import ruleSet="XmlDoc/DocCommentSet"/> |
|
<Import ruleSet="CommentMarkerSet"/> |
|
</RuleSet> |
|
</Span> |
|
|
|
<Span color="Comment" ruleSet="CommentMarkerSet"> |
|
<Begin>//</Begin> |
|
</Span> |
|
|
|
<Span color="Comment" ruleSet="CommentMarkerSet" multiline="true"> |
|
<Begin>/\*</Begin> |
|
<End>\*/</End> |
|
</Span> |
|
|
|
<Span color="String"> |
|
<Begin>"</Begin> |
|
<End>"</End> |
|
<RuleSet> |
|
<!-- span for escape sequences --> |
|
<Span begin="\\" end="."/> |
|
</RuleSet> |
|
</Span> |
|
|
|
<Span color="Char"> |
|
<Begin>'</Begin> |
|
<End>'</End> |
|
<RuleSet> |
|
<!-- span for escape sequences --> |
|
<Span begin="\\" end="."/> |
|
</RuleSet> |
|
</Span> |
|
|
|
<Span color="String" multiline="true"> |
|
<Begin color="String">@"</Begin> |
|
<End>"</End> |
|
<RuleSet> |
|
<!-- span for escape sequences --> |
|
<Span begin='""' end=""/> |
|
</RuleSet> |
|
</Span> |
|
|
|
<!-- don't highlight "@int" as keyword --> |
|
<Rule> |
|
@[\w\d_]+ |
|
</Rule> |
|
|
|
<Keywords color="ThisOrBaseReference"> |
|
<Word>this</Word> |
|
<Word>base</Word> |
|
</Keywords> |
|
|
|
<Keywords color="TypeKeywords"> |
|
<Word>as</Word> |
|
<Word>is</Word> |
|
<Word>new</Word> |
|
<Word>sizeof</Word> |
|
<Word>typeof</Word> |
|
<Word>stackalloc</Word> |
|
</Keywords> |
|
|
|
<Keywords color="TrueFalse"> |
|
<Word>true</Word> |
|
<Word>false</Word> |
|
</Keywords> |
|
|
|
<Keywords color="Keywords"> |
|
<Word>else</Word> |
|
<Word>if</Word> |
|
<Word>switch</Word> |
|
<Word>case</Word> |
|
<Word>default</Word> |
|
<Word>do</Word> |
|
<Word>for</Word> |
|
<Word>foreach</Word> |
|
<Word>in</Word> |
|
<Word>while</Word> |
|
<Word>lock</Word> |
|
</Keywords> |
|
|
|
<Keywords color="GotoKeywords"> |
|
<Word>break</Word> |
|
<Word>continue</Word> |
|
<Word>goto</Word> |
|
<Word>return</Word> |
|
</Keywords> |
|
|
|
<Keywords color="ContextKeywords"> |
|
<Word>yield</Word> |
|
<Word>partial</Word> |
|
<Word>global</Word> |
|
<Word>where</Word> |
|
<Word>select</Word> |
|
<Word>group</Word> |
|
<Word>by</Word> |
|
<Word>into</Word> |
|
<Word>from</Word> |
|
<Word>ascending</Word> |
|
<Word>descending</Word> |
|
<Word>orderby</Word> |
|
<Word>let</Word> |
|
<Word>join</Word> |
|
<Word>on</Word> |
|
<Word>equals</Word> |
|
<Word>var</Word> |
|
<Word>dynamic</Word> |
|
</Keywords> |
|
|
|
<Keywords color="ExceptionKeywords"> |
|
<Word>try</Word> |
|
<Word>throw</Word> |
|
<Word>catch</Word> |
|
<Word>finally</Word> |
|
</Keywords> |
|
|
|
<Keywords color="CheckedKeyword"> |
|
<Word>checked</Word> |
|
<Word>unchecked</Word> |
|
</Keywords> |
|
|
|
<Keywords color="UnsafeKeywords"> |
|
<Word>fixed</Word> |
|
<Word>unsafe</Word> |
|
</Keywords> |
|
|
|
<Keywords color="ValueTypes"> |
|
<Word>bool</Word> |
|
<Word>byte</Word> |
|
<Word>char</Word> |
|
<Word>decimal</Word> |
|
<Word>double</Word> |
|
<Word>enum</Word> |
|
<Word>float</Word> |
|
<Word>int</Word> |
|
<Word>long</Word> |
|
<Word>sbyte</Word> |
|
<Word>short</Word> |
|
<Word>struct</Word> |
|
<Word>uint</Word> |
|
<Word>ushort</Word> |
|
<Word>ulong</Word> |
|
</Keywords> |
|
|
|
<Keywords color="ReferenceTypes"> |
|
<Word>class</Word> |
|
<Word>interface</Word> |
|
<Word>delegate</Word> |
|
<Word>object</Word> |
|
<Word>string</Word> |
|
<Word>void</Word> |
|
</Keywords> |
|
|
|
<Keywords color="OperatorKeywords"> |
|
<Word>explicit</Word> |
|
<Word>implicit</Word> |
|
<Word>operator</Word> |
|
</Keywords> |
|
|
|
<Keywords color="ParameterModifiers"> |
|
<Word>params</Word> |
|
<Word>ref</Word> |
|
<Word>out</Word> |
|
</Keywords> |
|
|
|
<Keywords color="Modifiers"> |
|
<Word>abstract</Word> |
|
<Word>const</Word> |
|
<Word>event</Word> |
|
<Word>extern</Word> |
|
<Word>override</Word> |
|
<Word>readonly</Word> |
|
<Word>sealed</Word> |
|
<Word>static</Word> |
|
<Word>virtual</Word> |
|
<Word>volatile</Word> |
|
</Keywords> |
|
|
|
<Keywords color="Visibility"> |
|
<Word>public</Word> |
|
<Word>protected</Word> |
|
<Word>private</Word> |
|
<Word>internal</Word> |
|
</Keywords> |
|
|
|
<Keywords color="NamespaceKeywords"> |
|
<Word>namespace</Word> |
|
<Word>using</Word> |
|
</Keywords> |
|
|
|
<Keywords color="GetSetAddRemove"> |
|
<Word>get</Word> |
|
<Word>set</Word> |
|
<Word>add</Word> |
|
<Word>remove</Word> |
|
</Keywords> |
|
|
|
<Keywords color="NullOrValueKeywords"> |
|
<Word>null</Word> |
|
<Word>value</Word> |
|
</Keywords> |
|
|
|
<!-- Mark previous rule--> |
|
<Rule color="MethodCall"> |
|
\b |
|
[\d\w_]+ # an identifier |
|
(?=\s*\() # followed by ( |
|
</Rule> |
|
|
|
<!-- Digits --> |
|
<Rule color="NumberLiteral"> |
|
\b0[xX][0-9a-fA-F]+ # hex number |
|
| |
|
( \b\d+(\.[0-9]+)? #number with optional floating point |
|
| \.[0-9]+ #or just starting with floating point |
|
) |
|
([eE][+-]?[0-9]+)? # optional exponent |
|
</Rule> |
|
|
|
<Rule color="Punctuation"> |
|
[?,.;()\[\]{}+\-/%*<>^+~!|&]+ |
|
</Rule> |
|
</RuleSet> |
|
</SyntaxDefinition>
|
|
|