handle extension method icon

This commit is contained in:
Matt Parker
2025-10-28 18:03:47 +10:00
parent bf053ed580
commit 7e6f3d52da
2 changed files with 4 additions and 3 deletions

View File

@@ -465,8 +465,9 @@ public partial class SharpIdeCodeEdit : CodeEdit
_ => CodeCompletionKind.PlainText
};
var isKeyword = wellKnownTags.Contains(WellKnownTags.Keyword);
var icon = GetIconForCompletion(symbolKind, typeKind, accessibilityModifier, isKeyword);
AddCodeCompletionOption(godotCompletionType, completionItem.DisplayText, completionItem.DisplayText, icon: icon, value: new RefCountedContainer<CompletionItem>(completionItem));
var isExtensionMethod = wellKnownTags.Contains(WellKnownTags.ExtensionMethod);
var icon = GetIconForCompletion(symbolKind, typeKind, accessibilityModifier, isKeyword, isExtensionMethod);
}
// partially working - displays menu only when caret is what CodeEdit determines as valid
UpdateCodeCompletionOptions(true);

View File

@@ -16,11 +16,11 @@ public partial class SharpIdeCodeEdit
private readonly Texture2D _eventIcon = ResourceLoader.Load<Texture2D>("uid://c3upo3lxmgtls");
private readonly Texture2D _enumIcon = ResourceLoader.Load<Texture2D>("uid://8mdxo65qepqv");
private readonly Texture2D _delegateIcon = ResourceLoader.Load<Texture2D>("uid://c83pv25rdescy");
// delegate
private Texture2D? GetIconForCompletion(SymbolKind? symbolKind, TypeKind? typeKind, Accessibility? accessibility, bool isKeyword)
private Texture2D? GetIconForCompletion(SymbolKind? symbolKind, TypeKind? typeKind, Accessibility? accessibility, bool isKeyword, bool isExtensionMethod)
{
if (isKeyword) return _keywordIcon;
if (isExtensionMethod) return _csharpMethodIcon;
var texture = (symbolKind, typeKind, accessibility) switch
{
(SymbolKind.Method, _, _) => _csharpMethodIcon,