diff options
| author | William Boman <william@redwill.se> | 2023-04-22 22:35:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-22 22:35:14 +0200 |
| commit | 54c9176cb82fe1c227978c6df2e2b29f985cbd02 (patch) | |
| tree | e329148d6211513feec0e02ef8610883f55a9e0f /lua/mason-core/package/init.lua | |
| parent | feat(registry): add .get_all_package_specs() (#1247) (diff) | |
| download | mason-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.lua | 16 |
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 |
