This commit is contained in:
Matt Parker
2025-11-03 19:20:58 +10:00
parent 29ce4a3db1
commit d67219cd60
2 changed files with 5 additions and 6 deletions

View File

@@ -9,7 +9,7 @@ using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence;
namespace SharpIDE.Application.Features.Nuget;
public record InstalledNugetPackageInfo(List<ProjectPackageReference> ProjectPackageReferences);
public record InstalledNugetPackageInfo(bool IsTransitive, List<ProjectPackageReference> ProjectPackageReferences);
public record IdePackageResult(string PackageId, List<IdePackageFromSourceResult> PackageFromSources, InstalledNugetPackageInfo? InstalledNugetPackageInfo);
public record struct IdePackageFromSourceResult(IPackageSearchMetadata PackageSearchMetadata, PackageSource Source);
public class NugetClientService
@@ -118,7 +118,8 @@ public class NugetClientService
var packagesResult = new List<IdePackageResult>();
foreach (var installedPackage in installedPackages)
{
var installedNugetPackageInfo = new InstalledNugetPackageInfo(installedPackage.ProjectPackageReferences);
var isTransitive = installedPackage.ProjectPackageReferences.Any(p => p.IsTransitive);
var installedNugetPackageInfo = new InstalledNugetPackageInfo(isTransitive, installedPackage.ProjectPackageReferences);
var idePackageResult = new IdePackageResult(installedPackage.Name, [], installedNugetPackageInfo);
foreach (var source in packageSources)

View File

@@ -52,8 +52,7 @@ public partial class PackageEntry : MarginContainer
if (PackageResult is null) return;
_packageNameLabel.Text = PackageResult.PackageId;
var installedPackagedInfo = PackageResult.InstalledNugetPackageInfo;
var isTransitive = installedPackagedInfo?.ProjectPackageReferences.Any(p => p.IsTransitive) ?? false;
if (isTransitive && installedPackagedInfo?.ProjectPackageReferences.Any(p => p.DependentPackages?.Count is not 0) is true)
if (installedPackagedInfo?.IsTransitive is true && installedPackagedInfo.ProjectPackageReferences.Any(p => p.DependentPackages?.Count is not 0) is true)
{
var transitiveOriginsGroupedByVersion = installedPackagedInfo.ProjectPackageReferences.SelectMany(s => s.DependentPackages ?? [])
.GroupBy(t => t.RequestedVersion)
@@ -104,8 +103,7 @@ public partial class PackageEntry : MarginContainer
.Select(p => p.InstalledVersion.ToNormalizedString())
.Distinct()
.ToList();
var isTransitive = packageInfo.ProjectPackageReferences.Any(p => p.IsTransitive);
var text = isTransitive ? $"({string.Join(", ", versions)})" : string.Join(", ", versions);
var text = packageInfo.IsTransitive ? $"({string.Join(", ", versions)})" : string.Join(", ", versions);
return text;
}
}