Add function to place signs in buffer

This commit is contained in:
themodrnhakr 2025-10-02 16:12:00 -05:00
parent 5c75ec687c
commit 86241f2193

View File

@ -80,6 +80,33 @@ local function _parse_diff_output(diff_output)
return added_lines, changed_lines, deleted_lines return added_lines, changed_lines, deleted_lines
end end
-- Place signs in the current buffer
local function _place_signs_in_buffer()
local buf_nr = vim.api.nvim_get_current_buf()
vim.fn.sign_unplace("jj_mini_diff", { buffer = buf_nr }) -- Clear existing signs
local diff_output = _get_jj_diff_for_buffer()
if not diff_output then
return
end
local added, changed, deleted = _parse_diff_output(diff_output)
local sign_id = 1
for _, line_num in ipairs(added) do
vim.fn.sign_place(sign_id, "jj_mini_diff", "JjDiffAdd", buf_nr, { lnum = line_num })
sign_id = sign_id + 1
end
for _, line_num in ipairs(changed) do
vim.fn.sign_place(sign_id, "jj_mini_diff", "JjDiffChange", buf_nr, { lnum = line_num })
sign_id = sign_id + 1
end
for _, line_num in ipairs(deleted) do
vim.fn.sign_place(sign_id, "jj_mini_diff", "JjDiffDelete", buf_nr, { lnum = line_num })
sign_id = sign_id + 1
end
end
function M.setup(opts) function M.setup(opts)
opts = opts or {} opts = opts or {}