From 76fc508f51350b2dc173ab57001b449c7f2a69cc Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Sat, 11 Oct 2025 16:01:01 +1000 Subject: [PATCH] handle overriden method docs and more modifiers --- .../CodeEditor/SymbolInfoComponents.cs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/SharpIDE.Godot/Features/CodeEditor/SymbolInfoComponents.cs b/src/SharpIDE.Godot/Features/CodeEditor/SymbolInfoComponents.cs index 79a9d50..fb17225 100644 --- a/src/SharpIDE.Godot/Features/CodeEditor/SymbolInfoComponents.cs +++ b/src/SharpIDE.Godot/Features/CodeEditor/SymbolInfoComponents.cs @@ -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);