Browse Source

Add variable/parameter highlightings

pull/2906/head
Lucas Trzesniewski 2 years ago
parent
commit
51d430e32e
  1. 32
      ILSpy/Languages/CSharpHighlightingTokenWriter.cs
  2. 2
      ILSpy/TextView/CSharp-Mode.xshd
  3. 2
      ILSpy/Themes/Theme.Dark.xaml
  4. 2
      ILSpy/Themes/Theme.Light.xaml
  5. 2
      ILSpy/Themes/Theme.RSharpDark.xaml
  6. 2
      ILSpy/Themes/Theme.RSharpLight.xaml
  7. 2
      ILSpy/Themes/Theme.VSCodeDarkPlus.xaml
  8. 2
      ILSpy/Themes/Theme.VSCodeLightPlus.xaml

32
ILSpy/Languages/CSharpHighlightingTokenWriter.cs

@ -23,6 +23,7 @@ using ICSharpCode.AvalonEdit.Highlighting; @@ -23,6 +23,7 @@ using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.Decompiler.CSharp;
using ICSharpCode.Decompiler.CSharp.OutputVisitor;
using ICSharpCode.Decompiler.CSharp.Syntax;
using ICSharpCode.Decompiler.IL;
using ICSharpCode.Decompiler.TypeSystem;
using ICSharpCode.ILSpyX.Extensions;
@ -62,6 +63,9 @@ namespace ICSharpCode.ILSpy @@ -62,6 +63,9 @@ namespace ICSharpCode.ILSpy
HighlightingColor eventDeclarationColor;
HighlightingColor eventAccessColor;
HighlightingColor variableColor;
HighlightingColor parameterColor;
HighlightingColor valueKeywordColor;
HighlightingColor thisKeywordColor;
HighlightingColor trueKeywordColor;
@ -106,8 +110,8 @@ namespace ICSharpCode.ILSpy @@ -106,8 +110,8 @@ namespace ICSharpCode.ILSpy
this.propertyAccessColor = highlighting.GetNamedColor("PropertyAccess");
this.eventDeclarationColor = highlighting.GetNamedColor("EventDeclaration");
this.eventAccessColor = highlighting.GetNamedColor("EventAccess");
//this.variableDeclarationColor = this.variableAccessColor = defaultTextColor;
//this.parameterDeclarationColor = this.parameterAccessColor = defaultTextColor;
this.variableColor = highlighting.GetNamedColor("Variable");
this.parameterColor = highlighting.GetNamedColor("Parameter");
this.valueKeywordColor = highlighting.GetNamedColor("NullOrValueKeywords");
this.thisKeywordColor = highlighting.GetNamedColor("ThisOrBaseReference");
this.trueKeywordColor = highlighting.GetNamedColor("TrueFalse");
@ -345,13 +349,25 @@ namespace ICSharpCode.ILSpy @@ -345,13 +349,25 @@ namespace ICSharpCode.ILSpy
public override void WriteIdentifier(Identifier identifier)
{
HighlightingColor color = null;
if (identifier.Name == "value"
&& identifier.Parent?.GetResolveResult() is ILVariableResolveResult rr
&& rr.Variable.Kind == Decompiler.IL.VariableKind.Parameter
&& identifier.Ancestors.OfType<Accessor>().FirstOrDefault() is Accessor accessor
&& accessor.Role != PropertyDeclaration.GetterRole)
if (identifier.Parent?.GetResolveResult() is ILVariableResolveResult rr)
{
color = valueKeywordColor;
if (rr.Variable.Kind == VariableKind.Parameter)
{
if (identifier.Name == "value"
&& identifier.Ancestors.OfType<Accessor>().FirstOrDefault() is { } accessor
&& accessor.Role != PropertyDeclaration.GetterRole)
{
color = valueKeywordColor;
}
else
{
color = parameterColor;
}
}
else
{
color = variableColor;
}
}
if (identifier.Parent is AstType)
{

2
ILSpy/TextView/CSharp-Mode.xshd

@ -48,6 +48,8 @@ @@ -48,6 +48,8 @@
<Color name="PropertyAccess" exampleText="return this.#{#name#}#;"/>
<Color name="EventDeclaration" exampleText="private event Action #{#name#}#;"/>
<Color name="EventAccess" exampleText="this.#{#name#}#?.Invoke();"/>
<Color name="Variable" exampleText="var #{#name#}# = 42;"/>
<Color name="Parameter" exampleText="void Method(string #{#name#}#) { }"/>
<Color name="InactiveCode" foreground="Gray" exampleText="#{#Deactivated by #if#}#"/>
<Color name="SemanticError" foreground="DarkRed" exampleText="o.#{#MissingMethod#}#()"/>

2
ILSpy/Themes/Theme.Dark.xaml

@ -72,6 +72,8 @@ @@ -72,6 +72,8 @@
<themes:SyntaxColor x:Key="SyntaxColor.C#.PropertyAccess" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventDeclaration" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventAccess" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Variable" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Parameter" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.InactiveCode" Foreground="Gray" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.SemanticError" Foreground="DarkRed" />

2
ILSpy/Themes/Theme.Light.xaml

@ -72,6 +72,8 @@ @@ -72,6 +72,8 @@
<themes:SyntaxColor x:Key="SyntaxColor.C#.PropertyAccess" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventDeclaration" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventAccess" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Variable" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Parameter" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.InactiveCode" Foreground="Gray" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.SemanticError" Foreground="DarkRed" />

2
ILSpy/Themes/Theme.RSharpDark.xaml

@ -77,6 +77,8 @@ @@ -77,6 +77,8 @@
<themes:SyntaxColor x:Key="SyntaxColor.C#.PropertyAccess" Foreground="#C4ADE6" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventDeclaration" Foreground="#DDA0DD" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventAccess" Foreground="#DDA0DD" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Variable" Foreground="#9CDCFE" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Parameter" Foreground="#9CDCFE" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.InactiveCode" Foreground="#A9A9A9" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.SemanticError" Foreground="#FF3333" />

2
ILSpy/Themes/Theme.RSharpLight.xaml

@ -77,6 +77,8 @@ @@ -77,6 +77,8 @@
<themes:SyntaxColor x:Key="SyntaxColor.C#.PropertyAccess" Foreground="#660E7A" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventDeclaration" Foreground="#FF00FF" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventAccess" Foreground="#FF00FF" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Variable" Foreground="#1F377F" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Parameter" Foreground="#1F377F" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.InactiveCode" Foreground="#A9A9A9" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.SemanticError" Foreground="#FF0000" />

2
ILSpy/Themes/Theme.VSCodeDarkPlus.xaml

@ -82,6 +82,8 @@ @@ -82,6 +82,8 @@
<themes:SyntaxColor x:Key="SyntaxColor.C#.PropertyAccess" Foreground="#9CDCFE" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventDeclaration" Foreground="#9CDCFE" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventAccess" Foreground="#9CDCFE" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Variable" Foreground="#9CDCFE" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Parameter" Foreground="#9CDCFE" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.InactiveCode" Foreground="#A6A6A6" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.SemanticError" Foreground="#f44747" />

2
ILSpy/Themes/Theme.VSCodeLightPlus.xaml

@ -82,6 +82,8 @@ @@ -82,6 +82,8 @@
<themes:SyntaxColor x:Key="SyntaxColor.C#.PropertyAccess" Foreground="#001080" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventDeclaration" Foreground="#001080" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.EventAccess" Foreground="#001080" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Variable" Foreground="#001080" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.Parameter" Foreground="#001080" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.InactiveCode" Foreground="#767676" />
<themes:SyntaxColor x:Key="SyntaxColor.C#.SemanticError" Foreground="#cd3131" />

Loading…
Cancel
Save