aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/async/init.lua3
-rw-r--r--lua/mason-core/installer/registry/init.lua2
-rw-r--r--lua/mason-registry/init.lua82
-rw-r--r--lua/mason-registry/sources/init.lua23
-rw-r--r--lua/mason/api/command.lua2
-rw-r--r--lua/mason/ui/init.lua1
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)