display requested versions of packages

This commit is contained in:
Matt Parker
2025-11-02 15:47:54 +10:00
parent ac3ac3bcfc
commit 45ba5a03a4
4 changed files with 79 additions and 8 deletions

View File

@@ -53,6 +53,21 @@ public partial class PackageEntry : MarginContainer
if (PackageResult is null) return;
_packageNameLabel.Text = PackageResult.PackageId;
var installedPackagedInfo = PackageResult.InstalledNugetPackageInfo;
if (installedPackagedInfo?.DependentPackages is not null)
{
var transitiveOriginsGroupedByVersion = installedPackagedInfo.DependentPackages
.GroupBy(t => t.RequestedVersion)
.Select(g => new
{
RequestedVersion = g.Key,
PackageNames = g.Select(t => t.PackageName).ToList()
})
.ToList();
_button.TooltipText = $"""
Implicitly Referenced Versions
{string.Join("\n", transitiveOriginsGroupedByVersion.Select(t => $"{t.RequestedVersion} by {string.Join(", ", t.PackageNames)}"))}
""";
}
_installedVersionLabel.Text = installedPackagedInfo?.IsTransitive is true ? $"({installedPackagedInfo?.Version.ToNormalizedString()})" : installedPackagedInfo?.Version.ToNormalizedString();
var highestVersionPackageFromSource = PackageResult.PackageFromSources
.MaxBy(p => p.PackageSearchMetadata.Identity.Version);