display installed version of package

This commit is contained in:
Matt Parker
2025-11-02 12:47:31 +10:00
parent c7d72ef226
commit a4bec0cc4f
4 changed files with 18 additions and 8 deletions

View File

@@ -9,8 +9,8 @@ using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence;
namespace SharpIDE.Application.Features.Nuget;
//public record IdePackageResult(IPackageSearchMetadata PackageSearchMetadata, List<PackageSource> PackageSources);
public record IdePackageResult(string PackageId, List<IdePackageFromSourceResult> PackageFromSources, bool? IsTransitive);
public record InstalledNugetPackageInfo(bool IsTransitive, NuGetVersion Version);
public record IdePackageResult(string PackageId, List<IdePackageFromSourceResult> PackageFromSources, InstalledNugetPackageInfo? InstalledNugetPackageInfo);
public record struct IdePackageFromSourceResult(IPackageSearchMetadata PackageSearchMetadata, PackageSource Source);
public class NugetClientService
{
@@ -119,9 +119,12 @@ public class NugetClientService
foreach (var installedPackage in installedPackages)
{
var isTransitive = installedPackage.IsTopLevel is false;
var idePackageResult = new IdePackageResult(installedPackage.Name, [], isTransitive);
var nugetVersionString = installedPackage.ResolvedVersion ?? installedPackage.RequestedVersion;
var nugetVersion = NuGetVersion.Parse(nugetVersionString);
var installedNugetPackageInfo = new InstalledNugetPackageInfo(isTransitive, nugetVersion);
var idePackageResult = new IdePackageResult(installedPackage.Name, [], installedNugetPackageInfo);
var packageIdentity = new PackageIdentity(installedPackage.Name, nugetVersion);
foreach (var source in packageSources)

View File

@@ -54,7 +54,7 @@ public partial class NugetPanel : Control
{
foreach (var scene in scenes)
{
var container = scene.PackageResult.IsTransitive!.Value ? _implicitlyInstalledPackagesItemList : _installedPackagesVboxContainer;
var container = scene.PackageResult.InstalledNugetPackageInfo!.IsTransitive ? _implicitlyInstalledPackagesItemList : _installedPackagesVboxContainer;
container.AddChild(scene);
}
});

View File

@@ -8,7 +8,8 @@ public partial class PackageEntry : MarginContainer
{
private Button _button;
private Label _packageNameLabel = null!;
private Label _currentVersionLabel = null!;
private Label _installedVersionLabel = null!;
private Label _implicitlyInstalledVersionLabel = null!;
private Label _latestVersionLabel = null!;
private HBoxContainer _sourceNamesContainer = null!;
private TextureRect _packageIconTextureRect = null!;
@@ -37,7 +38,8 @@ public partial class PackageEntry : MarginContainer
{
_button = GetNode<Button>("Button");
_packageNameLabel = GetNode<Label>("%PackageNameLabel");
_currentVersionLabel = GetNode<Label>("%CurrentVersionLabel");
_installedVersionLabel = GetNode<Label>("%InstalledVersionLabel");
_implicitlyInstalledVersionLabel = GetNode<Label>("%ImplicitlyInstalledVersionLabel");
_latestVersionLabel = GetNode<Label>("%LatestVersionLabel");
_sourceNamesContainer = GetNode<HBoxContainer>("%SourceNamesHBoxContainer");
_packageIconTextureRect = GetNode<TextureRect>("%PackageIconTextureRect");
@@ -49,7 +51,7 @@ public partial class PackageEntry : MarginContainer
{
if (PackageResult is null) return;
_packageNameLabel.Text = PackageResult.PackageId;
_currentVersionLabel.Text = string.Empty;
_installedVersionLabel.Text = PackageResult.InstalledNugetPackageInfo?.Version.ToNormalizedString();
var highestVersionPackageFromSource = PackageResult.PackageFromSources
.MaxBy(p => p.PackageSearchMetadata.Identity.Version);
_latestVersionLabel.Text = highestVersionPackageFromSource.PackageSearchMetadata.Identity.Version.ToNormalizedString();

View File

@@ -60,12 +60,17 @@ theme_override_colors/font_color = Color(0.83137256, 0.83137256, 0.83137256, 1)
theme_override_font_sizes/font_size = 16
text = "OpenTelemetry.Exporter.OpenTelemetryProtocol"
[node name="CurrentVersionLabel" type="Label" parent="MarginContainer/HBoxContainer"]
[node name="InstalledVersionLabel" type="Label" parent="MarginContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.6706895, 0.6706895, 0.6706895, 1)
text = "1.12.0"
[node name="ImplicitlyInstalledVersionLabel" type="Label" parent="MarginContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.6706895, 0.6706895, 0.6706895, 1)
[node name="SourceNamesHBoxContainer" type="HBoxContainer" parent="MarginContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2