Browse Source

Highlight constructors the same way as types

pull/2906/head
Lucas Trzesniewski 3 years ago
parent
commit
7221b6cc64
  1. 64
      ILSpy/Languages/CSharpHighlightingTokenWriter.cs

64
ILSpy/Languages/CSharpHighlightingTokenWriter.cs

@ -384,24 +384,7 @@ namespace ICSharpCode.ILSpy
switch (GetCurrentDefinition()) switch (GetCurrentDefinition())
{ {
case ITypeDefinition t: case ITypeDefinition t:
switch (t.Kind) ApplyTypeColor(t, ref color);
{
case TypeKind.Delegate:
color = delegateTypeColor;
break;
case TypeKind.Class:
color = referenceTypeColor;
break;
case TypeKind.Interface:
color = interfaceTypeColor;
break;
case TypeKind.Enum:
color = enumerationTypeColor;
break;
case TypeKind.Struct:
color = valueTypeColor;
break;
}
break; break;
case IMethod: case IMethod:
color = methodDeclarationColor; color = methodDeclarationColor;
@ -419,27 +402,12 @@ namespace ICSharpCode.ILSpy
switch (GetCurrentMemberReference()) switch (GetCurrentMemberReference())
{ {
case IType t: case IType t:
switch (t.Kind) ApplyTypeColor(t, ref color);
{
case TypeKind.Delegate:
color = delegateTypeColor;
break;
case TypeKind.Class:
color = referenceTypeColor;
break;
case TypeKind.Interface:
color = interfaceTypeColor;
break;
case TypeKind.Enum:
color = enumerationTypeColor;
break;
case TypeKind.Struct:
color = valueTypeColor;
break;
}
break; break;
case IMethod: case IMethod m:
color = methodCallColor; color = methodCallColor;
if (m.IsConstructor)
ApplyTypeColor(m.DeclaringType, ref color);
break; break;
case IField: case IField:
color = fieldAccessColor; color = fieldAccessColor;
@ -462,6 +430,28 @@ namespace ICSharpCode.ILSpy
} }
} }
void ApplyTypeColor(IType type, ref HighlightingColor color)
{
switch (type?.Kind)
{
case TypeKind.Delegate:
color = delegateTypeColor;
break;
case TypeKind.Class:
color = referenceTypeColor;
break;
case TypeKind.Interface:
color = interfaceTypeColor;
break;
case TypeKind.Enum:
color = enumerationTypeColor;
break;
case TypeKind.Struct:
color = valueTypeColor;
break;
}
}
public override void WritePrimitiveValue(object value, Decompiler.CSharp.Syntax.LiteralFormat format) public override void WritePrimitiveValue(object value, Decompiler.CSharp.Syntax.LiteralFormat format)
{ {
HighlightingColor color = null; HighlightingColor color = null;

Loading…
Cancel
Save