mirror of
https://github.com/folke/lazy.nvim.git
synced 2025-04-19 12:56:46 +00:00
feat(checker): checker will now save last check time and only check at configured frequency even after restarting Neovim
This commit is contained in:
parent
835731f102
commit
813fc944d7
3 changed files with 59 additions and 3 deletions
45
lua/lazy/state.lua
Normal file
45
lua/lazy/state.lua
Normal 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)
|
Loading…
Add table
Add a link
Reference in a new issue