hopefully the final fix for document highlight

This commit is contained in:
Oliver Hartmann 2023-01-26 20:41:44 +01:00
parent 70d6dbda37
commit b4e5f2b7b4

View File

@ -112,13 +112,13 @@ return {
-- Set autocommands conditional on server_capabilities -- Set autocommands conditional on server_capabilities
if client.server_capabilities.documentHighlightProvider then 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" }, { vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
callback = function() callback = function()
vim.lsp.buf.document_highlight() vim.lsp.buf.document_highlight()
end, end,
buffer = bufnr, buffer = bufnr,
group = "lsp_document_highlight", group = group,
desc = "Document Highlight", desc = "Document Highlight",
}) })
vim.api.nvim_create_autocmd("CursorMoved", { vim.api.nvim_create_autocmd("CursorMoved", {
@ -126,9 +126,20 @@ return {
vim.lsp.buf.clear_references() vim.lsp.buf.clear_references()
end, end,
buffer = bufnr, buffer = bufnr,
group = "lsp_document_highlight", group = group,
desc = "Clear All the References", 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 end
require('lsp_signature').on_attach({ require('lsp_signature').on_attach({
@ -140,26 +151,19 @@ return {
}, bufnr) }, bufnr)
end end
local on_exit = function ()
vim.api.nvim_del_augroup_by_name('lsp_document_highlight')
end
lspconfig['pyright'].setup { lspconfig['pyright'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
} }
lspconfig['groovyls'].setup { lspconfig['groovyls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
} }
lspconfig['cmake'].setup { lspconfig['cmake'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
} }
local clangd_capabilities = capabilities local clangd_capabilities = capabilities
@ -169,7 +173,6 @@ return {
server = { server = {
capabilities = clangd_capabilities, capabilities = clangd_capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
cmd = { 'clangd', '--compile-commands-dir=build_nvim' }, cmd = { 'clangd', '--compile-commands-dir=build_nvim' },
root_dir = lspconfig.util.root_pattern( root_dir = lspconfig.util.root_pattern(
'.clangd', '.clangd',
@ -194,7 +197,6 @@ return {
-- require('clangd_extensions').setup({ -- require('clangd_extensions').setup({
-- server = { -- server = {
-- on_attach = on_attach, -- on_attach = on_attach,
-- on_exit = on_exit,
-- capabilities = capabilities, -- capabilities = capabilities,
-- cmd = { 'clangd', '--compile-commands-dir=build_nvim' }, -- cmd = { 'clangd', '--compile-commands-dir=build_nvim' },
-- }, -- },
@ -203,7 +205,6 @@ return {
lspconfig['jsonls'].setup { lspconfig['jsonls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
} }
local lua_rtp = vim.split(package.path, ';') local lua_rtp = vim.split(package.path, ';')
@ -212,7 +213,6 @@ return {
lspconfig.sumneko_lua.setup { lspconfig.sumneko_lua.setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
settings = { settings = {
Lua = { Lua = {
runtime = { runtime = {
@ -241,13 +241,11 @@ return {
lspconfig['dockerls'].setup { lspconfig['dockerls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
} }
lspconfig['yamlls'].setup { lspconfig['yamlls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
settings = { settings = {
yaml = { yaml = {
validate = true validate = true
@ -269,7 +267,6 @@ return {
}, },
debug = true, debug = true,
on_attach = on_attach, on_attach = on_attach,
on_exit = on_exit,
capabilities = capabilities, capabilities = capabilities,
}) })