59 lines
1.7 KiB
C#
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("; }");
|
|
}
|
|
} |