summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-07-31 14:52:25 +0200
committerGitHub <[email protected]>2021-07-31 12:52:25 +0000
commitf36082da0dccf4cfc50dd3fec271b7a5cd41aaea (patch)
tree8e312e6cda690e5e4aaf158cef70ddc4223705cb /lua
parent679b8b69fb0ee8c5249a416845054a1734815d43 (diff)
feat: add diagnostics source name (#1147)
Diffstat (limited to 'lua')
-rw-r--r--lua/default-config.lua1
-rw-r--r--lua/lsp/handlers.lua34
2 files changed, 35 insertions, 0 deletions
diff --git a/lua/default-config.lua b/lua/default-config.lua
index 8623bc4b..4e849688 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -41,6 +41,7 @@ lvim = {
},
signs = true,
underline = true,
+ severity_sort = true,
},
override = {},
document_highlight = true,
diff --git a/lua/lsp/handlers.lua b/lua/lsp/handlers.lua
index d3a487ae..3a467d42 100644
--- a/lua/lsp/handlers.lua
+++ b/lua/lsp/handlers.lua
@@ -9,6 +9,40 @@ function M.setup()
underline = lvim.lsp.document_highlight,
})
+ vim.lsp.handlers["textDocument/publishDiagnostics"] = function(_, _, params, client_id, _)
+ local config = { -- your config
+ virtual_text = lvim.lsp.diagnostics.virtual_text,
+ signs = lvim.lsp.diagnostics.signs,
+ underline = lvim.lsp.diagnostics.underline,
+ update_in_insert = lvim.lsp.diagnostics.update_in_insert,
+ severity_sort = lvim.lsp.diagnostics.severity_sort,
+ }
+ local uri = params.uri
+ local bufnr = vim.uri_to_bufnr(uri)
+
+ if not bufnr then
+ return
+ end
+
+ local diagnostics = params.diagnostics
+
+ for i, v in ipairs(diagnostics) do
+ diagnostics[i].message = string.format("%s: %s", v.source, v.message)
+
+ if vim.tbl_contains(vim.tbl_keys(v), "code") then
+ diagnostics[i].message = diagnostics[i].message .. string.format(" [%s]", v.code)
+ end
+ end
+
+ vim.lsp.diagnostic.save(diagnostics, bufnr, client_id)
+
+ if not vim.api.nvim_buf_is_loaded(bufnr) then
+ return
+ end
+
+ vim.lsp.diagnostic.display(diagnostics, bufnr, client_id, config)
+ end
+
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
border = lvim.lsp.popup_border,
})