Files
SharpIDE/src/SharpIDE.Godot/Features/CodeEditor/SymbolTooltips/EventTooltip.cs
Matt Parker 826fc851c3 rename class
2026-01-31 14:24:48 +10:00

59 lines
1.7 KiB
C#

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(TextEditorDotnetColoursDark.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(TextEditorDotnetColoursDark.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(TextEditorDotnetColoursDark.White);
label.AddText(symbol.Name);
label.Pop();
}
private static void AddEventMethods(this RichTextLabel label, IEventSymbol symbol)
{
label.AddText(" { ");
label.PushColor(TextEditorDotnetColoursDark.KeywordBlue);
label.AddText("add");
label.Pop();
label.AddText("; ");
label.PushColor(TextEditorDotnetColoursDark.KeywordBlue);
label.AddText("remove");
label.Pop();
label.AddText("; }");
}
}