53 lines
1.5 KiB
Lua
53 lines
1.5 KiB
Lua
local blame = require("./line-blame")
|
|
|
|
local defaultList = "one,two"
|
|
local defaultBlameTextColor = "#bcb8b1"
|
|
local defaultBlameText = "- Monkey alert 🐒"
|
|
local defaultBlamePosition = "eol"
|
|
|
|
local function clearBlame()
|
|
blame.clearBlame()
|
|
end
|
|
|
|
local function blameCurrentFile()
|
|
clearBlame()
|
|
blame.fileBlame(vim.api.nvim_buf_get_name(0), vim.g.monkey_mail_list, vim.g.monkey_blame_text,
|
|
"Monkey", vim.g.monkey_blame_position)
|
|
end
|
|
|
|
local function blameCurrentLine()
|
|
clearBlame()
|
|
local row = vim.api.nvim_win_get_cursor(0)[1]
|
|
blame.lineBlame(vim.api.nvim_buf_get_name(0), tonumber(row) - 1, vim.g.monkey_mail_list,
|
|
vim.g.monkey_blame_text,
|
|
"Monkey", vim.g.monkey_blame_position)
|
|
end
|
|
|
|
local function enableOnLine()
|
|
vim.api.nvim_create_autocmd("CursorMoved", {
|
|
callback = function()
|
|
clearBlame()
|
|
blameCurrentLine()
|
|
end,
|
|
})
|
|
end
|
|
|
|
local function setup(opts)
|
|
vim.api.nvim_set_hl(0, 'Monkey', { fg = opts.blame_text_color_hex or defaultBlameTextColor, bold = false })
|
|
vim.g.monkey_mail_list = opts.monkey_mail_list or defaultList
|
|
vim.g.monkey_blame_text = opts.blame_text or defaultBlameText
|
|
vim.g.monkey_blame_position = opts.blame_position or defaultBlamePosition
|
|
|
|
if opts.auto_attach then
|
|
enableOnLine()
|
|
end
|
|
end
|
|
|
|
return {
|
|
setup = setup,
|
|
blameLine = blameCurrentLine,
|
|
blameFile = blameCurrentFile,
|
|
blameClear = clearBlame,
|
|
enable = enableOnLine
|
|
}
|