From db11ddc6c5c0a87a4d3057a764003590526c2e22 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Sat, 17 Feb 2024 13:15:35 +0100 Subject: [PATCH] refactor lspconfig --- lua/plugins/lspconfig.lua | 4 ++++ lua/plugins/rustaceanvim.lua | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index bad9c00..fb3e828 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -261,6 +261,10 @@ return { on_attach = on_attach, } + -- lspconfig['rust_analyzer'].setup { + -- capabilities = capabilities, + -- on_attach = on_attach, + -- } lspconfig['lua_ls'].setup { capabilities = capabilities, diff --git a/lua/plugins/rustaceanvim.lua b/lua/plugins/rustaceanvim.lua index 60c7fd9..66e517c 100644 --- a/lua/plugins/rustaceanvim.lua +++ b/lua/plugins/rustaceanvim.lua @@ -2,13 +2,44 @@ return { 'mrcjkb/rustaceanvim', ft = { 'rust' }, config = function() + -- local capabilities = require('cmp_nvim_lsp').default_capabilities() vim.g.rustaceanvim = { server = { + -- capabilities = capabilities, on_attach = function(client, bufnr) local options = { noremap = true, silent = false, buffer = bufnr } vim.keymap.set('n', 'y', function() vim.cmd.RustLsp { 'hover', 'actions' } end, vim.tbl_extend('error', options, { desc = 'Hover' })) - require('plugins.lspconfig').on_attach(client, bufnr) + -- require('plugins.lspconfig').lspKeys(client, bufnr) + + local group = vim.api.nvim_create_augroup('lsp_document_highlight', { clear = false }) + vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { + callback = function() + vim.lsp.buf.document_highlight() + end, + buffer = bufnr, + group = group, + desc = 'Document Highlight', + }) + vim.api.nvim_create_autocmd('CursorMoved', { + callback = function() + vim.lsp.buf.clear_references() + end, + buffer = bufnr, + 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 } }