diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason-core/package/init.lua | 4 | ||||
| -rw-r--r-- | lua/mason-registry/init.lua | 21 | ||||
| -rw-r--r-- | lua/mason/ui/components/main/package_list.lua | 4 |
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…" } |
