mirror of
https://github.com/Myzel394/jsonfly.nvim.git
synced 2025-06-18 04:05:26 +02:00
43 lines
729 B
Lua
43 lines
729 B
Lua
local M = {}
|
|
|
|
local _cache = {}
|
|
|
|
---@param buffer integer
|
|
function M:cache_buffer(buffer, value)
|
|
_cache[buffer] = value
|
|
end
|
|
|
|
---@param buffer integer
|
|
function M:invalidate_buffer(buffer)
|
|
_cache[buffer] = nil
|
|
end
|
|
|
|
---@param buffer integer
|
|
---@return string[]|nil
|
|
function M:get_cache(buffer)
|
|
return _cache[buffer]
|
|
end
|
|
|
|
local _listening_buffers = {}
|
|
|
|
---@param buffer integer
|
|
function M:register_listeners(buffer)
|
|
if _listening_buffers[buffer] then
|
|
return
|
|
end
|
|
|
|
_listening_buffers[buffer] = true
|
|
|
|
vim.api.nvim_buf_attach(buffer, false, {
|
|
on_lines = function()
|
|
self:invalidate_buffer(buffer)
|
|
end,
|
|
on_detach = function()
|
|
self:invalidate_buffer(buffer)
|
|
_listening_buffers[buffer] = nil
|
|
end,
|
|
})
|
|
end
|
|
|
|
return M
|