feat: add buffer system
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
-- buffers API, loads buffers from ./buffers/*.lua
|
||||
|
||||
local M = {}
|
||||
|
||||
local buffers = {}
|
||||
|
||||
function M.setup()
|
||||
-- Init stuff
|
||||
end
|
||||
|
||||
-- should return created chai buffer
|
||||
local function resolve_buffer_path(path)
|
||||
if string.match(path, '^chai://test/?$') then
|
||||
local buffer = vim.deepcopy(require('chai.buffers.test'))
|
||||
buffer.args = {}
|
||||
|
||||
return buffer
|
||||
end
|
||||
|
||||
-- user is idiot imbecyle etc
|
||||
error("Invalid path " .. path)
|
||||
end
|
||||
|
||||
function M.create_buffer(buffer)
|
||||
buffers[buffer] = resolve_buffer_path(vim.api.nvim_buf_get_name(0))
|
||||
if type(buffers[buffer].init) == 'function' then
|
||||
buffers[buffer].init(buffer)
|
||||
end
|
||||
end
|
||||
|
||||
function M.destroy_buffer(buffer)
|
||||
if type(buffers[buffer].destroy) == 'function' then
|
||||
buffers[buffer].destroy(buffer)
|
||||
end
|
||||
buffers[buffer] = nil
|
||||
end
|
||||
|
||||
function M.on_hide(buffer)
|
||||
if type(buffers[buffer].on_hide) == 'function' then
|
||||
buffers[buffer].on_hide(buffer)
|
||||
end
|
||||
end
|
||||
|
||||
function M.on_enter(buffer)
|
||||
if type(buffers[buffer].on_enter) == 'function' then
|
||||
buffers[buffer].on_enter(buffer)
|
||||
end
|
||||
end
|
||||
|
||||
function M.on_write(buffer)
|
||||
if type(buffers[buffer].on_write) == 'function' then
|
||||
buffers[buffer].on_write(buffer)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user