mirror of
https://github.com/gosticks/bookmarks.nvim.git
synced 2026-04-18 18:44:28 +00:00
53 lines
1.1 KiB
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
|