aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/receipt.lua6
-rw-r--r--lua/mason/ui/components/main/package_list.lua7
-rw-r--r--lua/mason/ui/instance.lua3
3 files changed, 16 insertions, 0 deletions
diff --git a/lua/mason-core/receipt.lua b/lua/mason-core/receipt.lua
index 847b8011..ecd20a2c 100644
--- a/lua/mason-core/receipt.lua
+++ b/lua/mason-core/receipt.lua
@@ -56,6 +56,12 @@ function InstallReceipt:get_source()
return self.primary_source --[[@as InstallReceiptSource]]
end
+---@return string?
+function InstallReceipt:get_installed_purl()
+ local source = self:get_source()
+ return source.id
+end
+
function InstallReceipt:get_raw_source()
if self:is_schema_min "2.0" then
return self.source.raw
diff --git a/lua/mason/ui/components/main/package_list.lua b/lua/mason/ui/components/main/package_list.lua
index 55cbe41c..11f0d174 100644
--- a/lua/mason/ui/components/main/package_list.lua
+++ b/lua/mason/ui/components/main/package_list.lua
@@ -72,6 +72,13 @@ local function ExpandedPackageInfo(state, pkg, is_installed)
p.muted "latest version",
p.muted(pkg_state.new_version),
},
+ pkg_state.installed_purl and {
+ p.muted "installed purl",
+ p.highlight(pkg_state.installed_purl),
+ } or {
+ p.muted "purl",
+ p.highlight(pkg.spec.source.id),
+ },
{
p.muted "homepage",
pkg.spec.homepage and p.highlight(pkg.spec.homepage) or p.muted "-",
diff --git a/lua/mason/ui/instance.lua b/lua/mason/ui/instance.lua
index a49c585b..0c68b032 100644
--- a/lua/mason/ui/instance.lua
+++ b/lua/mason/ui/instance.lua
@@ -47,6 +47,7 @@ end
---@field has_failed boolean
---@field latest_spawn string?
---@field linked_executables table<string, string>?
+---@field installed_purl string?
---@field lsp_settings_schema table?
---@field new_version string?
---@field short_tailed_output string?
@@ -213,6 +214,7 @@ local function create_initial_package_state()
has_failed = false,
latest_spawn = nil,
linked_executables = nil,
+ installed_purl = nil,
lsp_settings_schema = nil,
new_version = nil,
short_tailed_output = nil,
@@ -304,6 +306,7 @@ local function hydrate_detailed_package_state(pkg)
function(receipt)
mutate_state(function(state)
state.packages.states[pkg.name].linked_executables = receipt:get_links().bin
+ state.packages.states[pkg.name].installed_purl = receipt:get_installed_purl()
end)
end
)