aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/package/init.lua4
-rw-r--r--lua/mason-registry/init.lua21
-rw-r--r--lua/mason/ui/components/main/package_list.lua4
3 files changed, 28 insertions, 1 deletions
diff --git a/lua/mason-core/package/init.lua b/lua/mason-core/package/init.lua
index 4175a536..7ebac5af 100644
--- a/lua/mason-core/package/init.lua
+++ b/lua/mason-core/package/init.lua
@@ -308,4 +308,8 @@ function PackageMt.__tostring(self)
return ("Package(name=%s)"):format(self.name)
end
+function Package:get_aliases()
+ return require("mason-registry").get_package_aliases(self.name)
+end
+
return Package
diff --git a/lua/mason-registry/init.lua b/lua/mason-registry/init.lua
index 0f1805a4..e798ac92 100644
--- a/lua/mason-registry/init.lua
+++ b/lua/mason-registry/init.lua
@@ -193,4 +193,25 @@ function M.refresh(cb)
end
end
+---@type table<string, string[]>
+local aliases = {}
+
+---Register aliases for the specified packages
+---@param new_aliases table<string, string[]>
+function M.register_package_aliases(new_aliases)
+ for pkg_name, pkg_aliases in pairs(new_aliases) do
+ aliases[pkg_name] = aliases[pkg_name] or {}
+ for _, alias in pairs(pkg_aliases) do
+ if alias ~= pkg_name then
+ table.insert(aliases[pkg_name], alias)
+ end
+ end
+ end
+end
+
+---@param name string
+function M.get_package_aliases(name)
+ return aliases[name] or {}
+end
+
return M
diff --git a/lua/mason/ui/components/main/package_list.lua b/lua/mason/ui/components/main/package_list.lua
index 1c9212aa..b0f633e6 100644
--- a/lua/mason/ui/components/main/package_list.lua
+++ b/lua/mason/ui/components/main/package_list.lua
@@ -124,7 +124,9 @@ local function PackageComponent(state, pkg, opts)
local label = (is_expanded or pkg_state.has_transitioned) and p.Bold(" " .. pkg.name) or p.none(" " .. pkg.name)
return Ui.Node {
- Ui.HlTextNode { { opts.icon, label } },
+ Ui.HlTextNode {
+ { opts.icon, label, p.none " ", p.Comment(table.concat(pkg:get_aliases(), ", ")) },
+ },
opts.sticky or Ui.Node {},
Ui.When(pkg_state.is_checking_new_version, function()
return Ui.VirtualTextNode { p.Comment " checking for new version…" }