display installed version of package
This commit is contained in:
@@ -9,8 +9,8 @@ using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence;
|
|||||||
|
|
||||||
namespace SharpIDE.Application.Features.Nuget;
|
namespace SharpIDE.Application.Features.Nuget;
|
||||||
|
|
||||||
//public record IdePackageResult(IPackageSearchMetadata PackageSearchMetadata, List<PackageSource> PackageSources);
|
public record InstalledNugetPackageInfo(bool IsTransitive, NuGetVersion Version);
|
||||||
public record IdePackageResult(string PackageId, List<IdePackageFromSourceResult> PackageFromSources, bool? IsTransitive);
|
public record IdePackageResult(string PackageId, List<IdePackageFromSourceResult> PackageFromSources, InstalledNugetPackageInfo? InstalledNugetPackageInfo);
|
||||||
public record struct IdePackageFromSourceResult(IPackageSearchMetadata PackageSearchMetadata, PackageSource Source);
|
public record struct IdePackageFromSourceResult(IPackageSearchMetadata PackageSearchMetadata, PackageSource Source);
|
||||||
public class NugetClientService
|
public class NugetClientService
|
||||||
{
|
{
|
||||||
@@ -119,9 +119,12 @@ public class NugetClientService
|
|||||||
foreach (var installedPackage in installedPackages)
|
foreach (var installedPackage in installedPackages)
|
||||||
{
|
{
|
||||||
var isTransitive = installedPackage.IsTopLevel is false;
|
var isTransitive = installedPackage.IsTopLevel is false;
|
||||||
var idePackageResult = new IdePackageResult(installedPackage.Name, [], isTransitive);
|
|
||||||
var nugetVersionString = installedPackage.ResolvedVersion ?? installedPackage.RequestedVersion;
|
var nugetVersionString = installedPackage.ResolvedVersion ?? installedPackage.RequestedVersion;
|
||||||
var nugetVersion = NuGetVersion.Parse(nugetVersionString);
|
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);
|
var packageIdentity = new PackageIdentity(installedPackage.Name, nugetVersion);
|
||||||
|
|
||||||
foreach (var source in packageSources)
|
foreach (var source in packageSources)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public partial class NugetPanel : Control
|
|||||||
{
|
{
|
||||||
foreach (var scene in scenes)
|
foreach (var scene in scenes)
|
||||||
{
|
{
|
||||||
var container = scene.PackageResult.IsTransitive!.Value ? _implicitlyInstalledPackagesItemList : _installedPackagesVboxContainer;
|
var container = scene.PackageResult.InstalledNugetPackageInfo!.IsTransitive ? _implicitlyInstalledPackagesItemList : _installedPackagesVboxContainer;
|
||||||
container.AddChild(scene);
|
container.AddChild(scene);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ public partial class PackageEntry : MarginContainer
|
|||||||
{
|
{
|
||||||
private Button _button;
|
private Button _button;
|
||||||
private Label _packageNameLabel = null!;
|
private Label _packageNameLabel = null!;
|
||||||
private Label _currentVersionLabel = null!;
|
private Label _installedVersionLabel = null!;
|
||||||
|
private Label _implicitlyInstalledVersionLabel = null!;
|
||||||
private Label _latestVersionLabel = null!;
|
private Label _latestVersionLabel = null!;
|
||||||
private HBoxContainer _sourceNamesContainer = null!;
|
private HBoxContainer _sourceNamesContainer = null!;
|
||||||
private TextureRect _packageIconTextureRect = null!;
|
private TextureRect _packageIconTextureRect = null!;
|
||||||
@@ -37,7 +38,8 @@ public partial class PackageEntry : MarginContainer
|
|||||||
{
|
{
|
||||||
_button = GetNode<Button>("Button");
|
_button = GetNode<Button>("Button");
|
||||||
_packageNameLabel = GetNode<Label>("%PackageNameLabel");
|
_packageNameLabel = GetNode<Label>("%PackageNameLabel");
|
||||||
_currentVersionLabel = GetNode<Label>("%CurrentVersionLabel");
|
_installedVersionLabel = GetNode<Label>("%InstalledVersionLabel");
|
||||||
|
_implicitlyInstalledVersionLabel = GetNode<Label>("%ImplicitlyInstalledVersionLabel");
|
||||||
_latestVersionLabel = GetNode<Label>("%LatestVersionLabel");
|
_latestVersionLabel = GetNode<Label>("%LatestVersionLabel");
|
||||||
_sourceNamesContainer = GetNode<HBoxContainer>("%SourceNamesHBoxContainer");
|
_sourceNamesContainer = GetNode<HBoxContainer>("%SourceNamesHBoxContainer");
|
||||||
_packageIconTextureRect = GetNode<TextureRect>("%PackageIconTextureRect");
|
_packageIconTextureRect = GetNode<TextureRect>("%PackageIconTextureRect");
|
||||||
@@ -49,7 +51,7 @@ public partial class PackageEntry : MarginContainer
|
|||||||
{
|
{
|
||||||
if (PackageResult is null) return;
|
if (PackageResult is null) return;
|
||||||
_packageNameLabel.Text = PackageResult.PackageId;
|
_packageNameLabel.Text = PackageResult.PackageId;
|
||||||
_currentVersionLabel.Text = string.Empty;
|
_installedVersionLabel.Text = PackageResult.InstalledNugetPackageInfo?.Version.ToNormalizedString();
|
||||||
var highestVersionPackageFromSource = PackageResult.PackageFromSources
|
var highestVersionPackageFromSource = PackageResult.PackageFromSources
|
||||||
.MaxBy(p => p.PackageSearchMetadata.Identity.Version);
|
.MaxBy(p => p.PackageSearchMetadata.Identity.Version);
|
||||||
_latestVersionLabel.Text = highestVersionPackageFromSource.PackageSearchMetadata.Identity.Version.ToNormalizedString();
|
_latestVersionLabel.Text = highestVersionPackageFromSource.PackageSearchMetadata.Identity.Version.ToNormalizedString();
|
||||||
|
|||||||
@@ -60,12 +60,17 @@ theme_override_colors/font_color = Color(0.83137256, 0.83137256, 0.83137256, 1)
|
|||||||
theme_override_font_sizes/font_size = 16
|
theme_override_font_sizes/font_size = 16
|
||||||
text = "OpenTelemetry.Exporter.OpenTelemetryProtocol"
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_colors/font_color = Color(0.6706895, 0.6706895, 0.6706895, 1)
|
theme_override_colors/font_color = Color(0.6706895, 0.6706895, 0.6706895, 1)
|
||||||
text = "1.12.0"
|
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"]
|
[node name="SourceNamesHBoxContainer" type="HBoxContainer" parent="MarginContainer/HBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|||||||
Reference in New Issue
Block a user