feat(checker): checker will now save last check time and only check at configured frequency even after restarting Neovim

This commit is contained in:
Folke Lemaitre 2023-01-18 08:24:43 +01:00
parent 835731f102
commit 813fc944d7
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040
3 changed files with 59 additions and 3 deletions

45
lua/lazy/state.lua Normal file
View file

@ -0,0 +1,45 @@
local Util = require("lazy.util")
local Config = require("lazy.core.config")
---@type LazyState
local M = {}
---@class LazyState
local defaults = {
checker = {
last_check = 0,
},
}
---@type LazyState
local data = nil
function M.read()
pcall(function()
---@diagnostic disable-next-line: cast-local-type
data = vim.json.decode(Util.read_file(Config.options.state))
end)
data = vim.tbl_deep_extend("force", {}, defaults, data or {})
end
function M.write()
vim.fn.mkdir(vim.fn.fnamemodify(Config.options.state, ":p:h"), "p")
Util.write_file(Config.options.state, vim.json.encode(data))
end
function M.__index(_, key)
if not data then
M.read()
end
return data[key]
end
function M.__setindex(_, key, value)
if not data then
M.read()
end
---@diagnostic disable-next-line: no-unknown
data[key] = value
end
return setmetatable(M, M)