Skip to content

Commit fa928c3

Browse files
committed
fix: Properly filter diagnostics from coc
Also, while we're at it, refactor the lsp function for consistency. There should be no functional change, just cosmetic. Signed-off-by: iusmac <[email protected]>
1 parent 4615e32 commit fa928c3

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

lua/nvim-tree/diagnostics.lua

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,9 @@ local function from_nvim_lsp()
3535
local buf = diagnostic.bufnr
3636
if vim.api.nvim_buf_is_valid(buf) then
3737
local bufname = uniformize_path(vim.api.nvim_buf_get_name(buf))
38-
local lowest_severity = buffer_severity[bufname]
39-
if not lowest_severity or diagnostic.severity < lowest_severity then
40-
buffer_severity[bufname] = diagnostic.severity
41-
end
38+
local severity = diagnostic.severity
39+
local highest_severity = buffer_severity[bufname] or severity
40+
buffer_severity[bufname] = math.min(highest_severity, severity)
4241
end
4342
end
4443
end
@@ -64,19 +63,13 @@ local function from_coc()
6463
return {}
6564
end
6665

67-
local diagnostics = {}
66+
local buffer_severity = {}
6867
for _, diagnostic in ipairs(diagnostic_list) do
69-
local bufname = diagnostic.file
68+
local bufname = uniformize_path(diagnostic.file)
7069
local coc_severity = severity_levels[diagnostic.severity]
71-
72-
local serverity = diagnostics[bufname] or vim.diagnostic.severity.HINT
73-
diagnostics[bufname] = math.min(coc_severity, serverity)
74-
end
75-
76-
local buffer_severity = {}
77-
for bufname, severity in pairs(diagnostics) do
78-
if is_severity_in_range(severity, M.severity) then
79-
buffer_severity[uniformize_path(bufname)] = severity
70+
local highest_severity = buffer_severity[bufname] or coc_severity
71+
if is_severity_in_range(highest_severity, M.severity) then
72+
buffer_severity[bufname] = math.min(highest_severity, coc_severity)
8073
end
8174
end
8275

0 commit comments

Comments
 (0)