-- buffers API, loads buffers from ./buffers/*.lua local M = {} local buffer_list = { 'test', } local buffers = {} function M.setup() -- Init stuff end -- should return created chai buffer local function resolve_buffer_path(path) for _, value in ipairs(buffer_list) do local buf = require('chai.buffers.' .. value).check(path) if buf ~= nil then return buf end 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 buffers[buffer] == nil then return end if type(buffers[buffer].destroy) == 'function' then buffers[buffer].destroy(buffer) end buffers[buffer] = nil end function M.on_hide(buffer) if buffers[buffer] == nil then return end if type(buffers[buffer].on_hide) == 'function' then buffers[buffer].on_hide(buffer) end end function M.on_enter(buffer) if buffers[buffer] == nil then return end if type(buffers[buffer].on_enter) == 'function' then buffers[buffer].on_enter(buffer) end end function M.on_write(buffer) if buffers[buffer] == nil then return end if type(buffers[buffer].on_write) == 'function' then buffers[buffer].on_write(buffer) end end return M