diff options
-rw-r--r-- | runtime/doc/lsp.txt | 31 | ||||
-rw-r--r-- | runtime/lua/vim/lsp/util.lua | 7 | ||||
-rw-r--r-- | test/functional/plugin/lsp_spec.lua | 4 |
3 files changed, 33 insertions, 9 deletions
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt index 3a93390210..f81265c2c8 100644 --- a/runtime/doc/lsp.txt +++ b/runtime/doc/lsp.txt @@ -164,21 +164,36 @@ name: > LSP HIGHLIGHT *lsp-highlight* *hl-LspDiagnosticsError* -LspDiagnosticsError used for "Error" diagnostic virtual text +LspDiagnosticsError used for "Error" diagnostic virtual text *hl-LspDiagnosticsErrorSign* -LspDiagnosticsErrorSign used for "Error" diagnostic signs in sign column +LspDiagnosticsErrorSign used for "Error" diagnostic signs in sign + column + *hl-LspDiagnosticsErrorFloating* +LspDiagnosticsErrorFloating used for "Error" diagnostic messages in the + diagnostics float *hl-LspDiagnosticsWarning* -LspDiagnosticsWarning used for "Warning" diagnostic virtual text +LspDiagnosticsWarning used for "Warning" diagnostic virtual text *hl-LspDiagnosticsWarningSign* -LspDiagnosticsWarningSign used for "Warning" diagnostic signs in sign column +LspDiagnosticsWarningSign used for "Warning" diagnostic signs in sign + column + *hl-LspDiagnosticsWarningFloating* +LspDiagnosticsWarningFloating used for "Warning" diagnostic messages in the + diagnostics float *hl-LspDiagnosticsInformation* -LspDiagnosticsInformation used for "Information" diagnostic virtual text +LspDiagnosticsInformation used for "Information" diagnostic virtual text *hl-LspDiagnosticsInformationSign* -LspDiagnosticsInformationSign used for "Information" signs in sign column +LspDiagnosticsInformationSign used for "Information" signs in sign column + *hl-LspDiagnosticsInformationFloating* +LspDiagnosticsInformationFloating used for "Information" diagnostic messages in + the diagnostics float *hl-LspDiagnosticsHint* -LspDiagnosticsHint used for "Hint" diagnostic virtual text +LspDiagnosticsHint used for "Hint" diagnostic virtual text *hl-LspDiagnosticsHintSign* -LspDiagnosticsHintSign used for "Hint" diagnostic signs in sign column +LspDiagnosticsHintSign used for "Hint" diagnostic signs in sign + column + *hl-LspDiagnosticsHintFloating* +LspDiagnosticsHintFloating used for "Hint" diagnostic messages in the + diagnostics float *hl-LspReferenceText* LspReferenceText used for highlighting "text" references *hl-LspReferenceRead* diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index 4c3c4fa6cb..71ca1048e1 100644 --- a/runtime/lua/vim/lsp/util.lua +++ b/runtime/lua/vim/lsp/util.lua @@ -859,6 +859,8 @@ do local severity_highlights = {} + local severity_floating_highlights = {} + local default_severity_highlight = { [protocol.DiagnosticSeverity.Error] = { guifg = "Red" }; [protocol.DiagnosticSeverity.Warning] = { guifg = "Orange" }; @@ -870,6 +872,7 @@ do for severity, hi_info in pairs(default_severity_highlight) do local severity_name = protocol.DiagnosticSeverity[severity] local highlight_name = "LspDiagnostics"..severity_name + local floating_highlight_name = highlight_name.."Floating" -- Try to fill in the foreground color with a sane default. local cmd_parts = {"highlight", "default", highlight_name} for k, v in pairs(hi_info) do @@ -877,7 +880,9 @@ do end api.nvim_command(table.concat(cmd_parts, ' ')) api.nvim_command('highlight link ' .. highlight_name .. 'Sign ' .. highlight_name) + api.nvim_command('highlight link ' .. highlight_name .. 'Floating ' .. highlight_name) severity_highlights[severity] = highlight_name + severity_floating_highlights[severity] = floating_highlight_name end function M.buf_clear_diagnostics(bufnr) @@ -926,7 +931,7 @@ do -- TODO(ashkan) make format configurable? local prefix = string.format("%d. ", i) - local hiname = severity_highlights[diagnostic.severity] + local hiname = severity_floating_highlights[diagnostic.severity] assert(hiname, 'unknown severity: ' .. tostring(diagnostic.severity)) local message_lines = split_lines(diagnostic.message) table.insert(lines, prefix..message_lines[1]) diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua index 1ab81a0ef8..c74ed6bf3b 100644 --- a/test/functional/plugin/lsp_spec.lua +++ b/test/functional/plugin/lsp_spec.lua @@ -770,10 +770,13 @@ describe('LSP', function() it('highlight groups', function() eq({'LspDiagnosticsError', + 'LspDiagnosticsErrorFloating', 'LspDiagnosticsErrorSign', 'LspDiagnosticsHint', + 'LspDiagnosticsHintFloating', 'LspDiagnosticsHintSign', 'LspDiagnosticsInformation', + 'LspDiagnosticsInformationFloating', 'LspDiagnosticsInformationSign', 'LspDiagnosticsUnderline', 'LspDiagnosticsUnderlineError', @@ -781,6 +784,7 @@ describe('LSP', function() 'LspDiagnosticsUnderlineInformation', 'LspDiagnosticsUnderlineWarning', 'LspDiagnosticsWarning', + 'LspDiagnosticsWarningFloating', 'LspDiagnosticsWarningSign', }, exec_lua([[require'vim.lsp'; return vim.fn.getcompletion('Lsp', 'highlight')]])) |