2024-04-22 21:44:56 +02:00

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;