aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorelky <kylelholzinger@gmail.com>2023-04-05 15:42:17 -0400
committerGitHub <noreply@github.com>2023-04-05 21:42:17 +0200
commit4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa (patch)
tree035180d9258e7dd0592d3211c700a6ce4ce552f1 /lua
parentfix(github): fall back to curl/wget if gh is not available (#1181) (diff)
downloadmason-4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa.tar
mason-4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa.tar.gz
mason-4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa.tar.bz2
mason-4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa.tar.lz
mason-4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa.tar.xz
mason-4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa.tar.zst
mason-4453caf0faa37f9a4b85a73d2c09d5b5bca2d3aa.zip
feat(registry): add ability to register package aliases (#1146)
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…" }