LSP: highlight groups test, doc

This commit is contained in:
Justin M. Keyes 2020-01-08 09:46:25 -08:00
parent 8c8681d594
commit 0a1c6d9a37
3 changed files with 53 additions and 20 deletions

View File

@ -57,24 +57,39 @@ use of |v:lua| to call Lua from Vimscript): >
autocmd Filetype python setlocal omnifunc=v:lua.vim.lsp.omnifunc
FAQ ~
================================================================================
FAQ *lsp-faq*
> How to force-reload LSP?
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*

View File

@ -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 = {}

View File

@ -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"});