From b4e5f2b7b43bccc9162b8b4394a47ce7456472d0 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Thu, 26 Jan 2023 20:41:44 +0100 Subject: [PATCH] hopefully the final fix for document highlight --- lua/plugins/lspconfig.lua | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index 9593e19..d9c9d50 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -112,13 +112,13 @@ return { -- Set autocommands conditional on server_capabilities if client.server_capabilities.documentHighlightProvider then - vim.api.nvim_create_augroup("lsp_document_highlight", {}) + local group = 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", + group = group, desc = "Document Highlight", }) vim.api.nvim_create_autocmd("CursorMoved", { @@ -126,9 +126,20 @@ return { vim.lsp.buf.clear_references() end, buffer = bufnr, - group = "lsp_document_highlight", + group = group, desc = "Clear All the References", }) + vim.api.nvim_create_autocmd({ 'LspDetach' }, { + group = group, + buffer = bufnr, + callback = function() + vim.lsp.buf.clear_references() + vim.api.nvim_clear_autocmds { + group = group, + buffer = bufnr + } + end, + }) end require('lsp_signature').on_attach({ @@ -140,26 +151,19 @@ 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 @@ -169,7 +173,6 @@ 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', @@ -194,7 +197,6 @@ return { -- require('clangd_extensions').setup({ -- server = { -- on_attach = on_attach, - -- on_exit = on_exit, -- capabilities = capabilities, -- cmd = { 'clangd', '--compile-commands-dir=build_nvim' }, -- }, @@ -203,7 +205,6 @@ return { lspconfig['jsonls'].setup { capabilities = capabilities, on_attach = on_attach, - on_exit = on_exit, } local lua_rtp = vim.split(package.path, ';') @@ -212,7 +213,6 @@ return { lspconfig.sumneko_lua.setup { capabilities = capabilities, on_attach = on_attach, - on_exit = on_exit, settings = { Lua = { runtime = { @@ -241,13 +241,11 @@ 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 @@ -269,7 +267,6 @@ return { }, debug = true, on_attach = on_attach, - on_exit = on_exit, capabilities = capabilities, })