add parameter symbol
This commit is contained in:
@@ -130,7 +130,7 @@ public partial class SharpIdeCodeEdit : CodeEdit
|
||||
INamedTypeSymbol namedTypeSymbol => new Control(),
|
||||
IPropertySymbol propertySymbol => SymbolInfoComponents.GetPropertySymbolInfo(propertySymbol),
|
||||
IFieldSymbol fieldSymbol => SymbolInfoComponents.GetFieldSymbolInfo(fieldSymbol),
|
||||
IParameterSymbol parameterSymbol => new Control(),
|
||||
IParameterSymbol parameterSymbol => SymbolInfoComponents.GetsParameterSymbolInfo(parameterSymbol),
|
||||
_ => new Control()
|
||||
};
|
||||
popupPanel.AddChild(symbolInfoNode);
|
||||
|
||||
@@ -19,7 +19,6 @@ public static partial class SymbolInfoComponents
|
||||
label.PushFont(MonospaceFont);
|
||||
label.AddAttributes(methodSymbol);
|
||||
label.AddAccessibilityModifier(methodSymbol);
|
||||
label.AddText(" ");
|
||||
label.AddMethodStaticModifier(methodSymbol);
|
||||
label.AddVirtualModifier(methodSymbol);
|
||||
label.AddAbstractModifier(methodSymbol);
|
||||
@@ -42,13 +41,14 @@ public static partial class SymbolInfoComponents
|
||||
|
||||
private static string GetAccessibilityString(this Accessibility accessibility) => accessibility switch
|
||||
{
|
||||
Accessibility.Public => "public",
|
||||
Accessibility.Private => "private",
|
||||
Accessibility.Protected => "protected",
|
||||
Accessibility.Internal => "internal",
|
||||
Accessibility.ProtectedOrInternal => "protected internal",
|
||||
Accessibility.ProtectedAndInternal => "private protected",
|
||||
_ => "unknown"
|
||||
Accessibility.Public => "public ",
|
||||
Accessibility.Private => "private ",
|
||||
Accessibility.Protected => "protected ",
|
||||
Accessibility.Internal => "internal ",
|
||||
Accessibility.ProtectedOrInternal => "protected internal ",
|
||||
Accessibility.ProtectedAndInternal => "private protected ",
|
||||
Accessibility.NotApplicable => string.Empty,
|
||||
_ => "unknown "
|
||||
};
|
||||
|
||||
private static void AddAccessibilityModifier(this RichTextLabel label, ISymbol methodSymbol)
|
||||
|
||||
@@ -15,7 +15,6 @@ public static partial class SymbolInfoComponents
|
||||
label.PushFont(MonospaceFont);
|
||||
label.AddAttributes(symbol);
|
||||
label.AddAccessibilityModifier(symbol);
|
||||
label.AddText(" ");
|
||||
label.AddStaticModifier(symbol);
|
||||
label.AddReadonlyModifier(symbol);
|
||||
label.AddVirtualModifier(symbol);
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
using Godot;
|
||||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace SharpIDE.Godot.Features.CodeEditor;
|
||||
|
||||
public static partial class SymbolInfoComponents
|
||||
{
|
||||
public static Control GetsParameterSymbolInfo(IParameterSymbol symbol)
|
||||
{
|
||||
var label = new RichTextLabel();
|
||||
label.FitContent = true;
|
||||
label.AutowrapMode = TextServer.AutowrapMode.Off;
|
||||
label.SetAnchorsPreset(Control.LayoutPreset.FullRect);
|
||||
label.PushColor(CachedColors.White);
|
||||
label.PushFont(MonospaceFont);
|
||||
label.AddAttributes(symbol);
|
||||
label.AddText("parameter ");
|
||||
label.AddAccessibilityModifier(symbol);
|
||||
label.AddStaticModifier(symbol);
|
||||
label.AddVirtualModifier(symbol);
|
||||
label.AddAbstractModifier(symbol);
|
||||
label.AddOverrideModifier(symbol);
|
||||
label.AddParameterTypeName(symbol);
|
||||
label.AddParameterName(symbol);
|
||||
label.AddContainingNamespaceAndClass(symbol);
|
||||
label.Newline();
|
||||
//label.AddTypeParameterArguments(symbol);
|
||||
label.Pop(); // font
|
||||
label.AddDocs(symbol);
|
||||
|
||||
label.Pop();
|
||||
return label;
|
||||
}
|
||||
|
||||
private static void AddParameterTypeName(this RichTextLabel label, IParameterSymbol symbol)
|
||||
{
|
||||
label.PushColor(GetSymbolColourByType(symbol.Type));
|
||||
label.AddText(symbol.Type.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat));
|
||||
label.Pop();
|
||||
label.AddText(" ");
|
||||
}
|
||||
|
||||
private static void AddParameterName(this RichTextLabel label, IParameterSymbol symbol)
|
||||
{
|
||||
label.PushColor(CachedColors.VariableBlue);
|
||||
label.AddText(symbol.Name);
|
||||
label.Pop();
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,6 @@ public partial class SymbolInfoComponents
|
||||
label.PushFont(MonospaceFont);
|
||||
label.AddAttributes(symbol);
|
||||
label.AddAccessibilityModifier(symbol);
|
||||
label.AddText(" ");
|
||||
label.AddStaticModifier(symbol);
|
||||
label.AddReadonlyModifier(symbol);
|
||||
label.AddVirtualModifier(symbol);
|
||||
|
||||
Reference in New Issue
Block a user