diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index 336335f..9593e19 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -112,15 +112,19 @@ return { -- Set autocommands conditional on server_capabilities if client.server_capabilities.documentHighlightProvider then - vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true }) - vim.api.nvim_create_autocmd("CursorHold", { - callback = vim.lsp.buf.document_highlight, + vim.api.nvim_create_augroup("lsp_document_highlight", {}) + vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { + callback = function() + vim.lsp.buf.document_highlight() + end, buffer = bufnr, group = "lsp_document_highlight", desc = "Document Highlight", }) vim.api.nvim_create_autocmd("CursorMoved", { - callback = vim.lsp.buf.clear_references, + callback = function() + vim.lsp.buf.clear_references() + end, buffer = bufnr, group = "lsp_document_highlight", desc = "Clear All the References", @@ -136,19 +140,26 @@ return { }, bufnr) end + local on_exit = function () + vim.api.nvim_del_augroup_by_name('lsp_document_highlight') + end + lspconfig['pyright'].setup { capabilities = capabilities, on_attach = on_attach, + on_exit = on_exit, } lspconfig['groovyls'].setup { capabilities = capabilities, on_attach = on_attach, + on_exit = on_exit, } lspconfig['cmake'].setup { capabilities = capabilities, on_attach = on_attach, + on_exit = on_exit, } local clangd_capabilities = capabilities @@ -158,6 +169,7 @@ return { server = { capabilities = clangd_capabilities, on_attach = on_attach, + on_exit = on_exit, cmd = { 'clangd', '--compile-commands-dir=build_nvim' }, root_dir = lspconfig.util.root_pattern( '.clangd', @@ -182,6 +194,7 @@ return { -- require('clangd_extensions').setup({ -- server = { -- on_attach = on_attach, + -- on_exit = on_exit, -- capabilities = capabilities, -- cmd = { 'clangd', '--compile-commands-dir=build_nvim' }, -- }, @@ -190,6 +203,7 @@ return { lspconfig['jsonls'].setup { capabilities = capabilities, on_attach = on_attach, + on_exit = on_exit, } local lua_rtp = vim.split(package.path, ';') @@ -198,6 +212,7 @@ return { lspconfig.sumneko_lua.setup { capabilities = capabilities, on_attach = on_attach, + on_exit = on_exit, settings = { Lua = { runtime = { @@ -226,11 +241,13 @@ return { lspconfig['dockerls'].setup { capabilities = capabilities, on_attach = on_attach, + on_exit = on_exit, } lspconfig['yamlls'].setup { capabilities = capabilities, on_attach = on_attach, + on_exit = on_exit, settings = { yaml = { validate = true @@ -252,6 +269,7 @@ return { }, debug = true, on_attach = on_attach, + on_exit = on_exit, capabilities = capabilities, })