add parameter symbol
This commit is contained in:
@@ -130,7 +130,7 @@ public partial class SharpIdeCodeEdit : CodeEdit
|
|||||||
INamedTypeSymbol namedTypeSymbol => new Control(),
|
INamedTypeSymbol namedTypeSymbol => new Control(),
|
||||||
IPropertySymbol propertySymbol => SymbolInfoComponents.GetPropertySymbolInfo(propertySymbol),
|
IPropertySymbol propertySymbol => SymbolInfoComponents.GetPropertySymbolInfo(propertySymbol),
|
||||||
IFieldSymbol fieldSymbol => SymbolInfoComponents.GetFieldSymbolInfo(fieldSymbol),
|
IFieldSymbol fieldSymbol => SymbolInfoComponents.GetFieldSymbolInfo(fieldSymbol),
|
||||||
IParameterSymbol parameterSymbol => new Control(),
|
IParameterSymbol parameterSymbol => SymbolInfoComponents.GetsParameterSymbolInfo(parameterSymbol),
|
||||||
_ => new Control()
|
_ => new Control()
|
||||||
};
|
};
|
||||||
popupPanel.AddChild(symbolInfoNode);
|
popupPanel.AddChild(symbolInfoNode);
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ public static partial class SymbolInfoComponents
|
|||||||
label.PushFont(MonospaceFont);
|
label.PushFont(MonospaceFont);
|
||||||
label.AddAttributes(methodSymbol);
|
label.AddAttributes(methodSymbol);
|
||||||
label.AddAccessibilityModifier(methodSymbol);
|
label.AddAccessibilityModifier(methodSymbol);
|
||||||
label.AddText(" ");
|
|
||||||
label.AddMethodStaticModifier(methodSymbol);
|
label.AddMethodStaticModifier(methodSymbol);
|
||||||
label.AddVirtualModifier(methodSymbol);
|
label.AddVirtualModifier(methodSymbol);
|
||||||
label.AddAbstractModifier(methodSymbol);
|
label.AddAbstractModifier(methodSymbol);
|
||||||
@@ -42,13 +41,14 @@ public static partial class SymbolInfoComponents
|
|||||||
|
|
||||||
private static string GetAccessibilityString(this Accessibility accessibility) => accessibility switch
|
private static string GetAccessibilityString(this Accessibility accessibility) => accessibility switch
|
||||||
{
|
{
|
||||||
Accessibility.Public => "public",
|
Accessibility.Public => "public ",
|
||||||
Accessibility.Private => "private",
|
Accessibility.Private => "private ",
|
||||||
Accessibility.Protected => "protected",
|
Accessibility.Protected => "protected ",
|
||||||
Accessibility.Internal => "internal",
|
Accessibility.Internal => "internal ",
|
||||||
Accessibility.ProtectedOrInternal => "protected internal",
|
Accessibility.ProtectedOrInternal => "protected internal ",
|
||||||
Accessibility.ProtectedAndInternal => "private protected",
|
Accessibility.ProtectedAndInternal => "private protected ",
|
||||||
_ => "unknown"
|
Accessibility.NotApplicable => string.Empty,
|
||||||
|
_ => "unknown "
|
||||||
};
|
};
|
||||||
|
|
||||||
private static void AddAccessibilityModifier(this RichTextLabel label, ISymbol methodSymbol)
|
private static void AddAccessibilityModifier(this RichTextLabel label, ISymbol methodSymbol)
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ public static partial class SymbolInfoComponents
|
|||||||
label.PushFont(MonospaceFont);
|
label.PushFont(MonospaceFont);
|
||||||
label.AddAttributes(symbol);
|
label.AddAttributes(symbol);
|
||||||
label.AddAccessibilityModifier(symbol);
|
label.AddAccessibilityModifier(symbol);
|
||||||
label.AddText(" ");
|
|
||||||
label.AddStaticModifier(symbol);
|
label.AddStaticModifier(symbol);
|
||||||
label.AddReadonlyModifier(symbol);
|
label.AddReadonlyModifier(symbol);
|
||||||
label.AddVirtualModifier(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.PushFont(MonospaceFont);
|
||||||
label.AddAttributes(symbol);
|
label.AddAttributes(symbol);
|
||||||
label.AddAccessibilityModifier(symbol);
|
label.AddAccessibilityModifier(symbol);
|
||||||
label.AddText(" ");
|
|
||||||
label.AddStaticModifier(symbol);
|
label.AddStaticModifier(symbol);
|
||||||
label.AddReadonlyModifier(symbol);
|
label.AddReadonlyModifier(symbol);
|
||||||
label.AddVirtualModifier(symbol);
|
label.AddVirtualModifier(symbol);
|
||||||
|
|||||||
Reference in New Issue
Block a user