mirror of
https://github.com/QL-Win/QuickLook.git
synced 2025-09-11 17:59:17 +00:00
Support dark mode C# Highlighting
This commit is contained in:
307
QuickLook.Plugin/QuickLook.Plugin.TextViewer/Syntax/Dark/C#.xshd
Normal file
307
QuickLook.Plugin/QuickLook.Plugin.TextViewer/Syntax/Dark/C#.xshd
Normal file
@@ -0,0 +1,307 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<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="#57A64A" exampleText="// comment" />
|
||||
<Color name="String" foreground="#D59D85" exampleText="string text = "Hello, World!""/>
|
||||
<Color name="StringInterpolation" foreground="#D59D85" exampleText="string text = $"Hello, {name}!""/>
|
||||
<Color name="Char" foreground="Magenta" exampleText="char linefeed = '\n';"/>
|
||||
<Color name="Preprocessor" foreground="Green" exampleText="#region Title" />
|
||||
<Color name="Punctuation" exampleText="a(b.c);" />
|
||||
<Color name="ValueTypeKeywords" foreground="#4e8cc1" exampleText="bool b = true;" />
|
||||
<Color name="ReferenceTypeKeywords" foreground="#4e8cc1" exampleText="object o;" />
|
||||
<Color name="MethodCall" foreground="#c4c498" exampleText="o.ToString();"/>
|
||||
<Color name="NumberLiteral" foreground="#B5CEA8" exampleText="3.1415f"/>
|
||||
<Color name="ThisOrBaseReference" foreground="#3C6C9E" exampleText="this.Do(); base.Do();"/>
|
||||
<Color name="NullOrValueKeywords" exampleText="if (value == null)"/>
|
||||
<Color name="Keywords" foreground="#569CD6" exampleText="if (a) {} else {}"/>
|
||||
<Color name="GotoKeywords" foreground="#569CD6" exampleText="continue; return null;"/>
|
||||
<Color name="ContextKeywords" foreground="#569CD6" exampleText="var a = from x in y select z;"/>
|
||||
<Color name="ExceptionKeywords" foreground="#569CD6" exampleText="try {} catch {} finally {}"/>
|
||||
<Color name="CheckedKeyword" foreground="#569CD6" exampleText="checked {}"/>
|
||||
<Color name="UnsafeKeywords" foreground="#569CD6" exampleText="unsafe { fixed (..) {} }"/>
|
||||
<Color name="OperatorKeywords" foreground="#569CD6" exampleText="public static implicit operator..."/>
|
||||
<Color name="ParameterModifiers" foreground="#569CD6" exampleText="(ref int a, params int[] b)"/>
|
||||
<Color name="Modifiers" foreground="#569CD6" exampleText="static readonly int a;"/>
|
||||
<Color name="Visibility" foreground="#4e8cc1" exampleText="public override void ToString();"/>
|
||||
<Color name="NamespaceKeywords" foreground="#4e8cc1" exampleText="namespace A.B { using System; }"/>
|
||||
<Color name="GetSetAddRemove" foreground="#4e8cc1" exampleText="int Prop { get; set; }"/>
|
||||
<Color name="TrueFalse" foreground="#569CD6" exampleText="b = false; a = true;" />
|
||||
<Color name="TypeKeywords" foreground="#569CD6" exampleText="if (x is int) { a = x as int; type = typeof(int); size = sizeof(int); c = new object(); }"/>
|
||||
<Color name="SemanticKeywords" foreground="#569CD6" exampleText="if (args == null) throw new ArgumentNullException(nameof(args));" />
|
||||
|
||||
<Property name="DocCommentMarker" value="///" />
|
||||
|
||||
<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 allows 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" 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>@"</Begin>
|
||||
<End>"</End>
|
||||
<RuleSet>
|
||||
<!-- span for escape sequences -->
|
||||
<Span begin='""' end=""/>
|
||||
</RuleSet>
|
||||
</Span>
|
||||
|
||||
<Span color="String">
|
||||
<Begin>\$"</Begin>
|
||||
<End>"</End>
|
||||
<RuleSet>
|
||||
<!-- span for escape sequences -->
|
||||
<Span begin="\\" end="."/>
|
||||
<Span begin="\{\{" end=""/>
|
||||
<!-- string interpolation -->
|
||||
<Span begin="{" end="}" color="StringInterpolation" ruleSet=""/>
|
||||
</RuleSet>
|
||||
</Span>
|
||||
|
||||
<!-- don't highlight "@int" as keyword -->
|
||||
<Rule>
|
||||
@[\w\d_]+
|
||||
</Rule>
|
||||
|
||||
<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>
|
||||
<Word>await</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="ValueTypeKeywords">
|
||||
<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="ReferenceTypeKeywords">
|
||||
<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>
|
||||
<Word>this</Word>
|
||||
</Keywords>
|
||||
|
||||
<Keywords color="ThisOrBaseReference">
|
||||
<Word>this</Word>
|
||||
<Word>base</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>
|
||||
<Word>async</Word>
|
||||
</Keywords>
|
||||
|
||||
<Keywords color="Visibility">
|
||||
<Word>public</Word>
|
||||
<Word>protected</Word>
|
||||
<Word>private</Word>
|
||||
<Word>internal</Word>
|
||||
<Word>file</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>
|
||||
|
||||
<Keywords color="SemanticKeywords">
|
||||
<Word>nameof</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>
|
Reference in New Issue
Block a user