refactor(diagnostic): DRY for loop #21521

Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
This commit is contained in:
Raphael 2023-01-03 18:07:27 +08:00 committed by GitHub
parent c3d8665851
commit 7b76a3e799
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -429,32 +429,31 @@ local function get_diagnostics(bufnr, opts, clamp)
end
end
---@private
local function add_all_diags(buf, diags)
for _, diagnostic in pairs(diags) do
add(buf, diagnostic)
end
end
if namespace == nil and bufnr == nil then
for b, t in pairs(diagnostic_cache) do
for _, v in pairs(t) do
for _, diagnostic in pairs(v) do
add(b, diagnostic)
end
add_all_diags(b, v)
end
end
elseif namespace == nil then
bufnr = get_bufnr(bufnr)
for iter_namespace in pairs(diagnostic_cache[bufnr]) do
for _, diagnostic in pairs(diagnostic_cache[bufnr][iter_namespace]) do
add(bufnr, diagnostic)
end
add_all_diags(bufnr, diagnostic_cache[bufnr][iter_namespace])
end
elseif bufnr == nil then
for b, t in pairs(diagnostic_cache) do
for _, diagnostic in pairs(t[namespace] or {}) do
add(b, diagnostic)
end
add_all_diags(b, t[namespace] or {})
end
else
bufnr = get_bufnr(bufnr)
for _, diagnostic in pairs(diagnostic_cache[bufnr][namespace] or {}) do
add(bufnr, diagnostic)
end
add_all_diags(bufnr, diagnostic_cache[bufnr][namespace] or {})
end
if opts.severity then