@ -514,13 +514,16 @@ require('lazy').setup({
-- When you move your cursor, the highlights will be cleared (the second autocommand).
-- 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 )
local client = vim.lsp . get_client_by_id ( event.data . client_id )
if client and client.server_capabilities . documentHighlightProvider then
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 ' } , {
vim.api . nvim_create_autocmd ( { ' CursorHold ' , ' CursorHoldI ' } , {
buffer = event.buf ,
buffer = event.buf ,
group = highlight_augroup ,
callback = vim.lsp . buf.document_highlight ,
callback = vim.lsp . buf.document_highlight ,
} )
} )
vim.api . nvim_create_autocmd ( { ' CursorMoved ' , ' CursorMovedI ' } , {
vim.api . nvim_create_autocmd ( { ' CursorMoved ' , ' CursorMovedI ' } , {
buffer = event.buf ,
buffer = event.buf ,
group = highlight_augroup ,
callback = vim.lsp . buf.clear_references ,
callback = vim.lsp . buf.clear_references ,
} )
} )
end
end
@ -531,12 +534,20 @@ require('lazy').setup({
-- This may be unwanted, since they displace some of your code
-- This may be unwanted, since they displace some of your code
if client and client.server_capabilities . inlayHintProvider and vim.lsp . inlay_hint then
if client and client.server_capabilities . inlayHintProvider and vim.lsp . inlay_hint then
map ( ' <leader>th ' , function ( )
map ( ' <leader>th ' , function ( )
vim.lsp . inlay_hint.enable ( 0 , not vim.lsp . inlay_hint.is_enabled ( ) )
vim.lsp . inlay_hint.enable ( not vim.lsp . inlay_hint.is_enabled ( ) )
end , ' [T]oggle Inlay [H]ints ' )
end , ' [T]oggle Inlay [H]ints ' )
end
end
end ,
end ,
} )
} )
vim.api . nvim_create_autocmd ( ' LspDetach ' , {
group = vim.api . nvim_create_augroup ( ' kickstart-lsp-detach ' , { clear = true } ) ,
callback = function ( event )
vim.lsp . buf.clear_references ( )
vim.api . nvim_clear_autocmds { group = ' kickstart-lsp-highlight ' , buffer = event.buf }
end ,
} )
-- LSP servers and clients are able to communicate to each other what features they support.
-- 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.
-- 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.
-- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.