mirror of
https://github.com/Myzel394/jsonfly.nvim.git
synced 2025-06-18 04:05:26 +02:00
48 lines
884 B
Lua
48 lines
884 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;
|
|
|