-- 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