From 7b4b4b982ea9f68055ec703cc9a09078ae734aa5 Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Mon, 3 Nov 2025 01:02:59 +1000 Subject: [PATCH] refactor --- .../Features/Nuget/NugetPanel.cs | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs b/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs index defb50a..d643848 100644 --- a/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs +++ b/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs @@ -36,7 +36,21 @@ public partial class NugetPanel : Control _implicitlyInstalledPackagesItemList.QueueFreeChildren(); _availablePackagesItemList.QueueFreeChildren(); - _solutionOrProjectOptionButton.ItemSelected += OnSolutionOrProjectSelected; + _ = Task.GodotRun(_AsyncReady); + } + + private async Task _AsyncReady() + { + await _sharpIdeSolutionAccessor.SolutionReadyTcs.Task; + _solution = _sharpIdeSolutionAccessor.SolutionModel; + await this.InvokeAsync(() => + { + foreach (var project in _solution!.AllProjects) + { + _solutionOrProjectOptionButton.AddIconItem(_csprojIcon, project.Name); + } + _solutionOrProjectOptionButton.ItemSelected += OnSolutionOrProjectSelected; + }); OnSolutionOrProjectSelected(0); } @@ -44,18 +58,8 @@ public partial class NugetPanel : Control { _ = Task.GodotRun(async () => { - if (_solution is null) - { - await _sharpIdeSolutionAccessor.SolutionReadyTcs.Task; - _solution = _sharpIdeSolutionAccessor.SolutionModel; - } - await this.InvokeAsync(() => - { - foreach (var project in _solution!.AllProjects) - { - _solutionOrProjectOptionButton.AddIconItem(_csprojIcon, project.Name); - } - }); + if (_solution is null) throw new InvalidOperationException("Solution is null but should not be"); + var result = await _nugetClientService.GetTop100Results(_solution!.DirectoryPath); _ = Task.GodotRun(async () =>