Delete the highlight autocommands in the LspDetatch event
This commit is contained in:
parent
4d73020681
commit
f45cec078c
26
init.lua
26
init.lua
|
@ -514,25 +514,17 @@ require('lazy').setup({
|
|||
-- When you move your cursor, the highlights will be cleared (the second autocommand).
|
||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||
if client and client.server_capabilities.documentHighlightProvider then
|
||||
local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = true })
|
||||
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
|
||||
buffer = event.buf,
|
||||
callback = function()
|
||||
if not vim.lsp.get_client_by_id(event.data.client_id) then
|
||||
vim.lsp.buf.clear_references()
|
||||
return true
|
||||
end
|
||||
vim.lsp.buf.document_highlight()
|
||||
end,
|
||||
group = highlight_augroup,
|
||||
callback = vim.lsp.buf.document_highlight,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
|
||||
buffer = event.buf,
|
||||
callback = function()
|
||||
if not vim.lsp.get_client_by_id(event.data.client_id) then
|
||||
return true
|
||||
end
|
||||
vim.lsp.buf.clear_references()
|
||||
end,
|
||||
group = highlight_augroup,
|
||||
callback = vim.lsp.buf.clear_references,
|
||||
})
|
||||
end
|
||||
|
||||
|
@ -548,6 +540,14 @@ require('lazy').setup({
|
|||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd('LspDetach', {
|
||||
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
|
||||
callback = function()
|
||||
vim.lsp.buf.clear_references()
|
||||
vim.api.nvim_del_augroup_by_name 'kickstart-lsp-highlight'
|
||||
end,
|
||||
})
|
||||
|
||||
-- LSP servers and clients are able to communicate to each other what features they support.
|
||||
-- By default, Neovim doesn't support everything that is in the LSP specification.
|
||||
-- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
|
||||
|
|
Loading…
Reference in New Issue