refactor(git): extract replace_buf_lines helper

This commit is contained in:
2026-05-06 15:00:10 +02:00
parent 3466736e17
commit 0bf6a165d2
4 changed files with 13 additions and 18 deletions
+1 -10
View File
@@ -100,16 +100,7 @@ local function run_in_split(r, args, conf)
end end
end end
vim.bo[buf].filetype = conf.ft vim.bo[buf].filetype = conf.ft
vim.bo[buf].modifiable = true util.replace_buf_lines(buf, util.split_lines(stdout))
vim.api.nvim_buf_set_lines(
buf,
0,
-1,
false,
util.split_lines(stdout)
)
vim.bo[buf].modifiable = false
vim.bo[buf].modified = false
end, end,
}) })
end end
+1 -5
View File
@@ -199,11 +199,7 @@ local function populate(buf, r, rev, state, rev_sha)
end end
end end
local was_modifiable = vim.bo[buf].modifiable util.replace_buf_lines(buf, util.split_lines(stdout))
vim.bo[buf].modifiable = true
vim.api.nvim_buf_set_lines(buf, 0, -1, false, util.split_lines(stdout))
vim.bo[buf].modifiable = was_modifiable
vim.bo[buf].modified = false
state.sha = rev_sha state.sha = rev_sha
return true return true
end end
+1 -3
View File
@@ -132,9 +132,7 @@ local function render(bufnr, status)
end end
end end
vim.bo[bufnr].modifiable = true util.replace_buf_lines(bufnr, lines)
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines)
vim.bo[bufnr].modifiable = false
vim.api.nvim_buf_clear_namespace(bufnr, ns, 0, -1) vim.api.nvim_buf_clear_namespace(bufnr, ns, 0, -1)
for _, m in ipairs(marks) do for _, m in ipairs(marks) do
vim.api.nvim_buf_set_extmark(bufnr, ns, m.row, m.col, { vim.api.nvim_buf_set_extmark(bufnr, ns, m.row, m.col, {
+10
View File
@@ -80,6 +80,16 @@ function M.debug(fmt, ...)
vim.notify(fmt:format(...), vim.log.levels.DEBUG) vim.notify(fmt:format(...), vim.log.levels.DEBUG)
end end
---@param buf integer
---@param lines string[]
function M.replace_buf_lines(buf, lines)
local was_modifiable = vim.bo[buf].modifiable
vim.bo[buf].modifiable = true
vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines)
vim.bo[buf].modifiable = was_modifiable
vim.bo[buf].modified = false
end
---@param content string ---@param content string
---@return string[] ---@return string[]
function M.split_lines(content) function M.split_lines(content)