From d525388f3f9b41cbf48e51c2e0ecf7736c9c9774 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Fri, 1 Jul 2022 21:08:37 +0200 Subject: [PATCH] fixed highlight --- lua/setup/lspinstall.lua | 43 +++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/lua/setup/lspinstall.lua b/lua/setup/lspinstall.lua index 8c2aac8..86dc6fa 100644 --- a/lua/setup/lspinstall.lua +++ b/lua/setup/lspinstall.lua @@ -16,13 +16,13 @@ capabilities.textDocument.completion.completionItem.resolveSupport = { }, } -OpenDiagFloat = function () +OpenDiagFloat = function() for _, winid in pairs(vim.api.nvim_tabpage_list_wins(0)) do - if vim.api.nvim_win_get_config(winid).zindex then - return - end + if vim.api.nvim_win_get_config(winid).zindex then + return + end end - vim.diagnostic.open_float({focusable = false}) + vim.diagnostic.open_float({ focusable = false }) end local on_attach = function(client, bufnr) @@ -34,8 +34,8 @@ local on_attach = function(client, bufnr) vim.api.nvim_buf_set_option(0, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') -- Mappings. - local opts ={ noremap = true, silent = true, buffer = true } - vim.keymap.set('n', ',', vim.lsp.diagnostic.goto_prev, opts ) + local opts = { noremap = true, silent = false, buffer = true } + vim.keymap.set('n', ',', vim.lsp.diagnostic.goto_prev, opts) vim.keymap.set('n', ';', vim.lsp.diagnostic.goto_next, opts) vim.keymap.set('n', 'a', vim.lsp.buf.code_action, opts) vim.keymap.set('n', 'd', vim.lsp.buf.definition, opts) @@ -50,7 +50,7 @@ local on_attach = function(client, bufnr) vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) vim.keymap.set('n', 'r', tele_builtins.lsp_references, opts) vim.keymap.set('n', '', 'Telescope aerial', opts) - vim.keymap.set('n', 'v', function () tele_builtins.diagnostics({bufnr = 0}) end, opts) + vim.keymap.set('n', 'v', function() tele_builtins.diagnostics({ bufnr = 0 }) end, opts) vim.keymap.set('n', '', 'ClangdSwitchSourceHeader', opts) vim.cmd([[autocmd CursorHold lua OpenDiagFloat()]]) @@ -64,21 +64,28 @@ local on_attach = function(client, bufnr) end -- Set autocommands conditional on server_capabilities - if client.server_capabilities.document_highlight then + if client.server_capabilities.documentHighlightProvider then vim.api.nvim_exec( [[ hi LspReferenceRead cterm=bold ctermbg=red guibg=DarkGreen hi LspReferenceWrite cterm=bold ctermbg=red guibg=DarkRed - augroup lsp_document_highlight - autocmd! * - autocmd CursorHold lua vim.lsp.buf.document_highlight() - autocmd CursorHoldI lua vim.lsp.buf.document_highlight() - autocmd CursorMoved lua vim.lsp.buf.clear_references() - augroup END - ]], - false - ) + ]], false) + vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true }) + vim.api.nvim_clear_autocmds { buffer = bufnr, group = "lsp_document_highlight" } + vim.api.nvim_create_autocmd("CursorHold", { + callback = vim.lsp.buf.document_highlight, + buffer = bufnr, + group = "lsp_document_highlight", + desc = "Document Highlight", + }) + vim.api.nvim_create_autocmd("CursorMoved", { + callback = vim.lsp.buf.clear_references, + buffer = bufnr, + group = "lsp_document_highlight", + desc = "Clear All the References", + }) end + require('lsp_signature').on_attach({ bind = true, -- This is mandatory, otherwise border config won't get registered. handler_opts = {