aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/util.lua
diff options
context:
space:
mode:
authorAlvaro Muñoz <alvaro@pwntester.com>2020-01-03 23:35:09 +0100
committerJustin M. Keyes <justinkz@gmail.com>2020-01-08 08:50:02 -0800
commite616ec439436816bb39b1d5e720593e6c66580c9 (patch)
tree3132ee1679ce1953a00a9cdd1011c5018bd2f7c4 /runtime/lua/vim/lsp/util.lua
parent831fa45ad84e2f41730db3350289e660006139d6 (diff)
downloadrneovim-e616ec439436816bb39b1d5e720593e6c66580c9.tar.gz
rneovim-e616ec439436816bb39b1d5e720593e6c66580c9.tar.bz2
rneovim-e616ec439436816bb39b1d5e720593e6c66580c9.zip
LSP: differentiate diagnostic underline by severity
Diffstat (limited to 'runtime/lua/vim/lsp/util.lua')
-rw-r--r--runtime/lua/vim/lsp/util.lua21
1 files changed, 16 insertions, 5 deletions
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index 0de5fdad46..338aedb4e0 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -547,7 +547,10 @@ do
local diagnostic_ns = api.nvim_create_namespace("vim_lsp_diagnostics")
local underline_highlight_name = "LspDiagnosticsUnderline"
- api.nvim_command(string.format("highlight default %s gui=underline cterm=underline", underline_highlight_name))
+ vim.cmd(string.format("highlight default %s gui=underline cterm=underline", underline_highlight_name))
+ for kind, _ in pairs(protocol.DiagnosticSeverity) do
+ vim.cmd(string.format("highlight default link %s%s %s", underline_highlight_name, kind, underline_highlight_name))
+ end
local severity_highlights = {}
@@ -657,13 +660,21 @@ do
function M.buf_diagnostics_underline(bufnr, diagnostics)
for _, diagnostic in ipairs(diagnostics) do
- local start = diagnostic.range.start
+ local start = diagnostic.range["start"]
local finish = diagnostic.range["end"]
+ local hlmap = {
+ [protocol.DiagnosticSeverity.Error]='Error',
+ [protocol.DiagnosticSeverity.Warning]='Warning',
+ [protocol.DiagnosticSeverity.Information]='Information',
+ [protocol.DiagnosticSeverity.Hint]='Hint',
+ }
+
-- TODO care about encoding here since this is in byte index?
- highlight_range(bufnr, diagnostic_ns, underline_highlight_name,
- {start.line, start.character},
- {finish.line, finish.character}
+ highlight_range(bufnr, diagnostic_ns,
+ underline_highlight_name..hlmap[diagnostic.severity],
+ {start.line, start.character},
+ {finish.line, finish.character}
)
end
end