Files
bookmarks.nvim/lua/bookmarks/nvim.lua

53 lines
1.1 KiB
Lua

local M = {}
function M.autocmd(event, opts)
vim.api.nvim_create_autocmd(event, opts)
end
function M.augroup(name, opts)
vim.api.nvim_create_augroup(name, opts or {})
end
local callbacks = {}
function M._exec(id, ...)
callbacks[id](...)
end
local F = M
function M.set(fn, is_expr, args)
local id
if jit then
id = "cb" .. string.format("%p", fn)
else
id = "cb" .. tostring(fn):match "function: (.*)"
end
if is_expr then
F[id] = fn
return string.format("v:lua.require'bookmarks.nvim.callbacks'." .. id)
else
if args then
callbacks[id] = fn
return string.format('lua require("bookmarks.nvim.callbacks")._exec("%s", %s)', id, args)
else
callbacks[id] = function()
fn()
end
return string.format('lua require("bookmarks.nvim.callbacks")._exec("%s")', id)
end
end
end
function M.command(name, fn, opts)
vim.api.nvim_create_user_command(name, fn, opts)
end
function M.highlight(group, opts)
vim.api.nvim_set_hl(0, group, opts)
end
return M