optimise code completions
This commit is contained in:
@@ -502,8 +502,8 @@ public partial class SharpIdeCodeEdit : CodeEdit
|
||||
var linePos = new LinePosition(caretLine, caretColumn);
|
||||
|
||||
var completionsResult = await _roslynAnalysis.GetCodeCompletionsForDocumentAtPosition(_currentFile, linePos);
|
||||
await this.InvokeAsync(() =>
|
||||
{
|
||||
var completionOptions = new List<(CodeCompletionKind kind, string displayText, Texture2D? icon, RefCountedContainer<IdeCompletionItem> refCountedContainer)>(completionsResult.CompletionList.ItemsList.Count);
|
||||
|
||||
foreach (var completionItem in completionsResult.CompletionList.ItemsList)
|
||||
{
|
||||
var symbolKindString = CollectionExtensions.GetValueOrDefault(completionItem.Properties, "SymbolKind");
|
||||
@@ -527,12 +527,21 @@ public partial class SharpIdeCodeEdit : CodeEdit
|
||||
var isMethod = wellKnownTags.Contains(WellKnownTags.Method);
|
||||
if (symbolKind is null && (isMethod || isExtensionMethod)) symbolKind = SymbolKind.Method;
|
||||
var icon = GetIconForCompletion(symbolKind, typeKind, accessibilityModifier, isKeyword);
|
||||
AddCodeCompletionOption(godotCompletionType, completionItem.DisplayText, completionItem.DisplayText, icon: icon, value: new RefCountedContainer<IdeCompletionItem>(new IdeCompletionItem(completionItem, completionsResult.Document)));
|
||||
var ideItem = new IdeCompletionItem(completionItem, completionsResult.Document);
|
||||
var refContainer = new RefCountedContainer<IdeCompletionItem>(ideItem);
|
||||
|
||||
completionOptions.Add((godotCompletionType, completionItem.DisplayText, icon, refContainer));
|
||||
}
|
||||
await this.InvokeAsync(() =>
|
||||
{
|
||||
foreach (var (godotCompletionType, displayText, icon, refCountedContainer) in completionOptions)
|
||||
{
|
||||
AddCodeCompletionOption(godotCompletionType, displayText, displayText, icon: icon, value: refCountedContainer);
|
||||
}
|
||||
UpdateCodeCompletionOptions(true);
|
||||
//RequestCodeCompletion(true);
|
||||
GD.Print($"Found {completionsResult.CompletionList.ItemsList.Count} completions, displaying menu");
|
||||
});
|
||||
GD.Print($"Found {completionsResult.CompletionList.ItemsList.Count} completions, displaying menu");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user