summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lua/lvim/lsp/handlers.lua13
1 files changed, 12 insertions, 1 deletions
diff --git a/lua/lvim/lsp/handlers.lua b/lua/lvim/lsp/handlers.lua
index ffb7564a..59f15c1c 100644
--- a/lua/lvim/lsp/handlers.lua
+++ b/lua/lvim/lsp/handlers.lua
@@ -125,7 +125,18 @@ function M.show_line_diagnostics()
table.sort(diagnostics, function(a, b)
return a.severity < b.severity
end)
- for i, diagnostic in ipairs(diagnostics) do
+
+ local hash = {}
+ local diagnostics_no_dupes = {}
+ for _, v in ipairs(diagnostics) do
+ if not hash[v["message"]] then
+ diagnostics_no_dupes[#diagnostics_no_dupes + 1] = v -- you could print here instead of saving to result table if you wanted
+ hash[v["message"]] = true
+ end
+ end
+ -- print(vim.inspect(diagnostics_no_dupes))
+
+ for i, diagnostic in ipairs(diagnostics_no_dupes) do
local source = diagnostic.source
diag_message = diagnostic.message:gsub("[\n\r]", " ")
if source then