fix(diagnostic): use nvim_exec_autocmds to trigger DiagnosticChanged

Use nvim_exec_autocmds to issue the DiagnosticChanged autocommand,
rather than nvim_buf_call, which has some side effects when drawing
statuslines.
This commit is contained in:
Gregory Anders
2022-04-20 07:21:48 -06:00
parent 81f1e33d15
commit 4a64ce140f
2 changed files with 21 additions and 22 deletions

View File

@@ -668,14 +668,10 @@ function M.set(namespace, bufnr, diagnostics, opts)
M.show(namespace, bufnr, nil, opts)
end
vim.api.nvim_buf_call(bufnr, function()
vim.api.nvim_command(
string.format(
"doautocmd <nomodeline> DiagnosticChanged %s",
vim.fn.fnameescape(vim.api.nvim_buf_get_name(bufnr))
)
)
end)
vim.api.nvim_exec_autocmds("DiagnosticChanged", {
modeline = false,
buffer = bufnr,
})
end
--- Get namespace metadata.
@@ -1382,14 +1378,10 @@ function M.reset(namespace, bufnr)
M.hide(iter_namespace, iter_bufnr)
end
vim.api.nvim_buf_call(iter_bufnr, function()
vim.api.nvim_command(
string.format(
"doautocmd <nomodeline> DiagnosticChanged %s",
vim.fn.fnameescape(vim.api.nvim_buf_get_name(iter_bufnr))
)
)
end)
vim.api.nvim_exec_autocmds("DiagnosticChanged", {
modeline = false,
buffer = iter_bufnr,
})
end
end