aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2020-01-08 09:46:25 -0800
committerJustin M. Keyes <justinkz@gmail.com>2020-01-08 22:18:18 -0800
commit0a1c6d9a374a0c984515d0af43b1c71af6c55eb2 (patch)
treee45b23927d64722f8ec6816765b7e5ba7df17164
parent8c8681d594a10c7056d62d09267190b6fab37e85 (diff)
downloadrneovim-0a1c6d9a374a0c984515d0af43b1c71af6c55eb2.tar.gz
rneovim-0a1c6d9a374a0c984515d0af43b1c71af6c55eb2.tar.bz2
rneovim-0a1c6d9a374a0c984515d0af43b1c71af6c55eb2.zip
LSP: highlight groups test, doc
-rw-r--r--runtime/doc/lsp.txt35
-rw-r--r--runtime/lua/vim/lsp/util.lua4
-rw-r--r--test/functional/plugin/lsp_spec.lua34
3 files changed, 53 insertions, 20 deletions
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt
index 70a3110042..c173ecead3 100644
--- a/runtime/doc/lsp.txt
+++ b/runtime/doc/lsp.txt
@@ -57,24 +57,39 @@ use of |v:lua| to call Lua from Vimscript): >
autocmd Filetype python setlocal omnifunc=v:lua.vim.lsp.omnifunc
-FAQ ~
-
-> How to force-reload LSP?
+================================================================================
+FAQ *lsp-faq*
-Stop all clients, then reload the buffer. >
+- Q: How to force-reload LSP?
+ A: Stop all clients, then reload the buffer. >
:lua vim.lsp.stop_all_clients()
:edit
-> Why isn't completion working?
-
-In the buffer where you want to use LSP, check that 'omnifunc' is set to
-"v:lua.vim.lsp.omnifunc": >
+- Q: Why isn't completion working?
+ A: In the buffer where you want to use LSP, check that 'omnifunc' is set to
+ "v:lua.vim.lsp.omnifunc": >
:verbose set omnifunc?
-Some other plugin may be overriding the option. To avoid that, you could set
-the option in an |after-directory| ftplugin, e.g. "after/ftplugin/python.vim".
+< Some other plugin may be overriding the option. To avoid that, you could
+ set the option in an |after-directory| ftplugin, e.g.
+ "after/ftplugin/python.vim".
+
+================================================================================
+LSP HIGHLIGHT *lsp-highlight*
+
+When LSP is activated these highlight groups are defined:
+
+ LspDiagnosticsError
+ LspDiagnosticsHint
+ LspDiagnosticsInformation
+ LspDiagnosticsUnderline
+ LspDiagnosticsUnderlineError
+ LspDiagnosticsUnderlineHint
+ LspDiagnosticsUnderlineInformation
+ LspDiagnosticsUnderlineWarning
+ LspDiagnosticsWarning
================================================================================
LSP API *lsp-api*
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index 338aedb4e0..df82e2d412 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -549,7 +549,9 @@ do
local underline_highlight_name = "LspDiagnosticsUnderline"
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))
+ 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 = {}
diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua
index 45452c0b20..4829a33861 100644
--- a/test/functional/plugin/lsp_spec.lua
+++ b/test/functional/plugin/lsp_spec.lua
@@ -1,6 +1,7 @@
local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
+local buf_lines = helpers.buf_lines
local dedent = helpers.dedent
local exec_lua = helpers.exec_lua
local eq = helpers.eq
@@ -709,14 +710,9 @@ describe('LSP', function()
end)
end)
-describe('LSP util', function()
+describe('LSP', function()
before_each(function()
clear()
- insert(dedent([[
- First line of text
- Second line of text
- Third line of text
- Fourth line of text]]))
end)
local function make_edit(y_0, x_0, y_1, x_1, text)
@@ -729,8 +725,29 @@ describe('LSP util', function()
}
end
+ it('highlight groups', function()
+ eq({'LspDiagnosticsError',
+ 'LspDiagnosticsHint',
+ 'LspDiagnosticsInformation',
+ 'LspDiagnosticsUnderline',
+ 'LspDiagnosticsUnderlineError',
+ 'LspDiagnosticsUnderlineHint',
+ 'LspDiagnosticsUnderlineInformation',
+ 'LspDiagnosticsUnderlineWarning',
+ 'LspDiagnosticsWarning',
+ },
+ exec_lua([[require'vim.lsp'; return vim.fn.getcompletion('Lsp', 'highlight')]]))
+ end)
+
describe('apply_edits', function()
- it('should apply simple edits', function()
+ before_each(function()
+ insert(dedent([[
+ First line of text
+ Second line of text
+ Third line of text
+ Fourth line of text]]))
+ end)
+ it('applies apply simple edits', function()
local edits = {
make_edit(0, 0, 0, 0, {"123"});
make_edit(1, 0, 1, 1, {"2"});
@@ -744,8 +761,7 @@ describe('LSP util', function()
'Fourth line of text';
}, buf_lines(1))
end)
-
- it('should apply complex edits', function()
+ it('applies complex edits', function()
local edits = {
make_edit(0, 0, 0, 0, {"", "12"});
make_edit(0, 0, 0, 0, {"3", "foo"});