aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-registry/sources/lua.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-registry/sources/lua.lua')
-rw-r--r--lua/mason-registry/sources/lua.lua9
1 files changed, 9 insertions, 0 deletions
diff --git a/lua/mason-registry/sources/lua.lua b/lua/mason-registry/sources/lua.lua
index c3e96075..1675f232 100644
--- a/lua/mason-registry/sources/lua.lua
+++ b/lua/mason-registry/sources/lua.lua
@@ -1,3 +1,5 @@
+local Optional = require "mason-core.optional"
+local _ = require "mason-core.functional"
local log = require "mason-core.log"
---@class LuaRegistrySourceSpec
@@ -37,6 +39,13 @@ function LuaRegistrySource:get_all_package_names()
return vim.tbl_keys(index)
end
+---@return PackageSpec[]
+function LuaRegistrySource:get_all_package_specs()
+ return _.filter_map(function(name)
+ return Optional.of_nilable(self:get_package(name)):map(_.prop "spec")
+ end, self:get_all_package_names())
+end
+
function LuaRegistrySource:is_installed()
local ok = pcall(require, self.spec.mod)
return ok