diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2020-01-08 22:48:57 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-08 22:48:57 -0800 |
commit | 25afa10f9277dd6148a6abb3d7577c67f479fce2 (patch) | |
tree | f716d09f58416c4f4329743578b8aa536f20ae49 /runtime/lua/vim/lsp/util.lua | |
parent | b6276f5aee835a6d44b2957027c5399c976c6647 (diff) | |
parent | 0a1c6d9a374a0c984515d0af43b1c71af6c55eb2 (diff) | |
download | rneovim-25afa10f9277dd6148a6abb3d7577c67f479fce2.tar.gz rneovim-25afa10f9277dd6148a6abb3d7577c67f479fce2.tar.bz2 rneovim-25afa10f9277dd6148a6abb3d7577c67f479fce2.zip |
Merge #11669 'LSP: differentiate diagnostic underline by severity'
Diffstat (limited to 'runtime/lua/vim/lsp/util.lua')
-rw-r--r-- | runtime/lua/vim/lsp/util.lua | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index 0de5fdad46..df82e2d412 100644 --- a/runtime/lua/vim/lsp/util.lua +++ b/runtime/lua/vim/lsp/util.lua @@ -547,7 +547,12 @@ 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 + if type(kind) == 'string' then + vim.cmd(string.format("highlight default link %s%s %s", underline_highlight_name, kind, underline_highlight_name)) + end + end local severity_highlights = {} @@ -657,13 +662,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 |