Update, add tooltips for more Symbol types (#49)

Co-authored-by: Matt Parker <61717342+MattParkerDev@users.noreply.github.com>
This commit is contained in:
Manuel Gasser
2025-12-22 04:10:18 +01:00
committed by GitHub
parent 9867a5d7c9
commit 2228785a3d
15 changed files with 438 additions and 31 deletions

View File

@@ -0,0 +1,59 @@
using Godot;
using Microsoft.CodeAnalysis;
namespace SharpIDE.Godot.Features.CodeEditor;
public static partial class SymbolInfoComponents
{
public static RichTextLabel GetEventSymbolInfo(IEventSymbol symbol)
{
var label = new RichTextLabel();
label.PushColor(CachedColors.White);
label.PushFont(MonospaceFont);
label.AddAccessibilityModifier(symbol);
label.AddEventKeyword(symbol);
label.AddEventTypeName(symbol);
label.AddEventName(symbol);
label.AddEventMethods(symbol);
label.AddContainingNamespaceAndClass(symbol);
label.Newline();
label.Pop();
label.AddDocs(symbol);
label.Pop();
return label;
}
private static void AddEventKeyword(this RichTextLabel label, IEventSymbol symbol)
{
label.PushColor(CachedColors.KeywordBlue);
label.AddText("event ");
label.Pop();
}
private static void AddEventTypeName(this RichTextLabel label, IEventSymbol symbol)
{
label.AddType(symbol.Type);
label.AddText(" ");
}
private static void AddEventName(this RichTextLabel label, IEventSymbol symbol)
{
label.PushColor(CachedColors.White);
label.AddText(symbol.Name);
label.Pop();
}
private static void AddEventMethods(this RichTextLabel label, IEventSymbol symbol)
{
label.AddText(" { ");
label.PushColor(CachedColors.KeywordBlue);
label.AddText("add");
label.Pop();
label.AddText("; ");
label.PushColor(CachedColors.KeywordBlue);
label.AddText("remove");
label.Pop();
label.AddText("; }");
}
}