handle overriden method docs and more modifiers

This commit is contained in:
Matt Parker
2025-10-11 16:01:01 +10:00
parent a1c7a6e9f1
commit 76fc508f51

View File

@@ -23,6 +23,9 @@ public static class SymbolInfoComponents
label.Pop();
label.AddText(" ");
label.AddStaticModifier(methodSymbol);
label.AddVirtualModifier(methodSymbol);
label.AddAbstractModifier(methodSymbol);
label.AddOverrideModifier(methodSymbol);
label.AddMethodReturnType(methodSymbol);
label.AddText(" ");
label.AddMethodName(methodSymbol);
@@ -63,6 +66,39 @@ public static class SymbolInfoComponents
}
}
private static void AddOverrideModifier(this RichTextLabel label, IMethodSymbol methodSymbol)
{
if (methodSymbol.IsOverride)
{
label.PushColor(CachedColors.KeywordBlue);
label.AddText("override");
label.Pop();
label.AddText(" ");
}
}
private static void AddAbstractModifier(this RichTextLabel label, IMethodSymbol methodSymbol)
{
if (methodSymbol.IsAbstract)
{
label.PushColor(CachedColors.KeywordBlue);
label.AddText("abstract");
label.Pop();
label.AddText(" ");
}
}
private static void AddVirtualModifier(this RichTextLabel label, IMethodSymbol methodSymbol)
{
if (methodSymbol.IsVirtual)
{
label.PushColor(CachedColors.KeywordBlue);
label.AddText("virtual");
label.Pop();
label.AddText(" ");
}
}
private static void AddMethodReturnType(this RichTextLabel label, IMethodSymbol methodSymbol)
{
if (methodSymbol.ReturnsVoid)
@@ -355,6 +391,7 @@ public static class SymbolInfoComponents
private static readonly Color HrColour = new Color("4d4d4d");
private static void AddDocs(this RichTextLabel label, IMethodSymbol methodSymbol)
{
if (methodSymbol.IsOverride) methodSymbol = methodSymbol.OverriddenMethod!;
var xmlDocs = methodSymbol.GetDocumentationCommentXml();
if (string.IsNullOrWhiteSpace(xmlDocs)) return;
label.AddHr(100, 1, HrColour);