mirror of
https://github.com/neovim/neovim.git
synced 2026-06-30 15:01:13 +00:00
[Backport release-0.7] fix(lsp): fix unnecessary buffers being added on empty diagnostics (#18469)
* fix(lsp): fix unnecessary buffers being added on empty diagnostics Some language servers send empty `textDocument/publishDiagnostics` messages after indexing the project, sometimes resulting in creation of a lot of unnecessary buffers. As a workaround, skip empty messages for nonexistent buffers before resolving the filename to a bufnr. (cherry picked from commit26eb6785eb) * Add test (cherry picked from commitd2e9dab377) Co-authored-by: ii14 <ii14@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
9e040acfa3
commit
35075dcc22
@@ -185,7 +185,12 @@ end
|
||||
function M.on_publish_diagnostics(_, result, ctx, config)
|
||||
local client_id = ctx.client_id
|
||||
local uri = result.uri
|
||||
local bufnr = vim.uri_to_bufnr(uri)
|
||||
local fname = vim.uri_to_fname(uri)
|
||||
local diagnostics = result.diagnostics
|
||||
if #diagnostics == 0 and vim.fn.bufexists(fname) == 0 then
|
||||
return
|
||||
end
|
||||
local bufnr = vim.fn.bufadd(fname)
|
||||
|
||||
if not bufnr then
|
||||
return
|
||||
@@ -193,7 +198,6 @@ function M.on_publish_diagnostics(_, result, ctx, config)
|
||||
|
||||
client_id = get_client_id(client_id)
|
||||
local namespace = M.get_namespace(client_id)
|
||||
local diagnostics = result.diagnostics
|
||||
|
||||
if config then
|
||||
for _, opt in pairs(config) do
|
||||
|
||||
Reference in New Issue
Block a user