diff options
| author | William Boman <william@redwill.se> | 2023-02-20 22:19:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-20 22:19:39 +0100 |
| commit | b8a6632a0f2d263199d5d480ca85477fe0f414ab (patch) | |
| tree | 57e1ee0f3cef078ec144ecdf1b2fa861acf47755 /lua/mason-registry/sources/lua.lua | |
| parent | chore: autogenerate (#1015) (diff) | |
| download | mason-b8a6632a0f2d263199d5d480ca85477fe0f414ab.tar mason-b8a6632a0f2d263199d5d480ca85477fe0f414ab.tar.gz mason-b8a6632a0f2d263199d5d480ca85477fe0f414ab.tar.bz2 mason-b8a6632a0f2d263199d5d480ca85477fe0f414ab.tar.lz mason-b8a6632a0f2d263199d5d480ca85477fe0f414ab.tar.xz mason-b8a6632a0f2d263199d5d480ca85477fe0f414ab.tar.zst mason-b8a6632a0f2d263199d5d480ca85477fe0f414ab.zip | |
feat: configurable registries (#1016)
Diffstat (limited to 'lua/mason-registry/sources/lua.lua')
| -rw-r--r-- | lua/mason-registry/sources/lua.lua | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lua/mason-registry/sources/lua.lua b/lua/mason-registry/sources/lua.lua new file mode 100644 index 00000000..94b4e4f8 --- /dev/null +++ b/lua/mason-registry/sources/lua.lua @@ -0,0 +1,43 @@ +---@class LuaRegistrySourceSpec +---@field id string +---@field mod string + +---@class LuaRegistrySource : RegistrySource +---@field private spec LuaRegistrySourceSpec +local LuaRegistrySource = {} +LuaRegistrySource.__index = LuaRegistrySource + +---@param spec LuaRegistrySourceSpec +function LuaRegistrySource.new(spec) + return setmetatable({ + spec = spec, + }, LuaRegistrySource) +end + +function LuaRegistrySource:get_package(pkg_name) + local index = require(self.spec.mod) + if index[pkg_name] then + return require(index[pkg_name]) + end +end + +function LuaRegistrySource:get_all_package_names() + local index = require(self.spec.mod) + return vim.tbl_keys(index) +end + +function LuaRegistrySource:is_installed() + local ok = pcall(require, self.spec.mod) + return ok +end + +function LuaRegistrySource:install() + local Result = require "mason-core.result" + return Result.success() +end + +function LuaRegistrySource:__tostring() + return ("LuaRegistry(mod=%s)"):format(self.spec.mod) +end + +return LuaRegistrySource |
