diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason-core/async/init.lua | 3 | ||||
| -rw-r--r-- | lua/mason-core/installer/registry/init.lua | 2 | ||||
| -rw-r--r-- | lua/mason-registry/init.lua | 82 | ||||
| -rw-r--r-- | lua/mason-registry/sources/init.lua | 23 | ||||
| -rw-r--r-- | lua/mason/api/command.lua | 2 | ||||
| -rw-r--r-- | lua/mason/ui/init.lua | 1 |
6 files changed, 97 insertions, 16 deletions
diff --git a/lua/mason-core/async/init.lua b/lua/mason-core/async/init.lua index 3c88eef0..0b327218 100644 --- a/lua/mason-core/async/init.lua +++ b/lua/mason-core/async/init.lua @@ -125,7 +125,8 @@ exports.run_blocking = function(suspend_fn, ...) end, ...) if - vim.wait(60 * 60 * 1000, function() -- the wait time is completely arbitrary + resolved + or vim.wait(60 * 60 * 1000, function() -- the wait time is completely arbitrary return resolved == true end, 50) then diff --git a/lua/mason-core/installer/registry/init.lua b/lua/mason-core/installer/registry/init.lua index 5968987b..f03f3e31 100644 --- a/lua/mason-core/installer/registry/init.lua +++ b/lua/mason-core/installer/registry/init.lua @@ -5,7 +5,6 @@ local _ = require "mason-core.functional" local a = require "mason-core.async" local link = require "mason-core.installer.registry.link" local log = require "mason-core.log" -local semver = require "mason-core.semver" local M = {} @@ -71,6 +70,7 @@ local function coalesce_source(source, version) local version_override = source.version_overrides[i] local version_type, constraint = unpack(_.split(":", version_override.constraint)) if version_type == "semver" then + local semver = require "mason-core.semver" local version_match = Result.try(function(try) local requested_version = try(semver.parse(version)) if _.starts_with("<=", constraint) then diff --git a/lua/mason-registry/init.lua b/lua/mason-registry/init.lua index 4568c54d..19a24d60 100644 --- a/lua/mason-registry/init.lua +++ b/lua/mason-registry/init.lua @@ -7,6 +7,7 @@ local path = require "mason-core.path" local sources = require "mason-registry.sources" ---@class RegistrySource +---@field id string ---@field get_package fun(self: RegistrySource, pkg_name: string): Package? ---@field get_all_package_names fun(self: RegistrySource): string[] ---@field get_display_name fun(self: RegistrySource): string @@ -118,12 +119,33 @@ function M.get_all_packages() return get_packages(M.get_all_package_names()) end ----@param cb fun(success: boolean, err: any?) -function M.update(cb) +local STATE_FILE = path.concat { vim.fn.stdpath "cache", "mason-registry-update" } + +---@param time integer +local function get_store_age(time) |
