aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/package/init.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-04-22 22:35:14 +0200
committerGitHub <noreply@github.com>2023-04-22 22:35:14 +0200
commit54c9176cb82fe1c227978c6df2e2b29f985cbd02 (patch)
treee329148d6211513feec0e02ef8610883f55a9e0f /lua/mason-core/package/init.lua
parentfeat(registry): add .get_all_package_specs() (#1247) (diff)
downloadmason-54c9176cb82fe1c227978c6df2e2b29f985cbd02.tar
mason-54c9176cb82fe1c227978c6df2e2b29f985cbd02.tar.gz
mason-54c9176cb82fe1c227978c6df2e2b29f985cbd02.tar.bz2
mason-54c9176cb82fe1c227978c6df2e2b29f985cbd02.tar.lz
mason-54c9176cb82fe1c227978c6df2e2b29f985cbd02.tar.xz
mason-54c9176cb82fe1c227978c6df2e2b29f985cbd02.tar.zst
mason-54c9176cb82fe1c227978c6df2e2b29f985cbd02.zip
refactor(schemas): don't vendor schemas in mason.nvim (#1248)
Instead, schemas are now defined in the package registry and downloaded during installation. See https://github.com/mason-org/mason-registry/pull/1319.
Diffstat (limited to 'lua/mason-core/package/init.lua')
-rw-r--r--lua/mason-core/package/init.lua16
1 files changed, 11 insertions, 5 deletions
diff --git a/lua/mason-core/package/init.lua b/lua/mason-core/package/init.lua
index 7ebac5af..e0a361ca 100644
--- a/lua/mason-core/package/init.lua
+++ b/lua/mason-core/package/init.lua
@@ -63,6 +63,9 @@ local PackageMt = { __index = Package }
---@field id string PURL-compliant identifier.
---@field version_overrides? RegistryPackageSourceVersionOverride[]
+---@class RegistryPackageSchemas
+---@field lsp string?
+
---@class RegistryPackageSpec
---@field schema '"registry+v1"'
---@field name string
@@ -72,6 +75,7 @@ local PackageMt = { __index = Package }
---@field languages string[]
---@field categories string[]
---@field source RegistryPackageSource
+---@field schemas RegistryPackageSchemas?
---@field bin table<string, string>?
---@field share table<string, string>?
---@field opt table<string, string>?
@@ -127,7 +131,7 @@ function Package:new_handle()
return handle
end
----@alias PackageInstallOpts { version?: string, debug?: boolean, target?: string, force?: boolean }
+---@alias PackageInstallOpts { version?: string, debug?: boolean, target?: string, force?: boolean, strict?: boolean }
---@param opts? PackageInstallOpts
---@return InstallHandle
@@ -292,11 +296,13 @@ function Package:check_new_version(callback)
end
function Package:get_lsp_settings_schema()
- local ok, schema = pcall(require, ("mason-schemas.lsp.%s"):format(self.name))
- if not ok then
- return Optional.empty()
+ local schema_file = path.share_prefix(path.concat { "mason-schemas", "lsp", ("%s.json"):format(self.name) })
+ if fs.sync.file_exists(schema_file) then
+ return Result.pcall(vim.json.decode, fs.sync.read_file(schema_file), {
+ luanil = { object = true, array = true },
+ }):ok()
end
- return Optional.of(schema)
+ return Optional.empty()
end
---@return boolean