nvim/lua/plugins/rustaceanvim.lua
2025-04-17 21:58:34 +02:00

40 lines
1.3 KiB
Lua

return {
'mrcjkb/rustaceanvim',
ft = { 'rust' },
config = function()
vim.g.rustaceanvim = {
server = {
on_attach = function(client, bufnr)
local options = { noremap = true, silent = false, buffer = bufnr }
vim.keymap.set('n', '<space>y', function() vim.cmd.RustLsp({ 'hover', 'actions' }) end, vim.tbl_extend('error', options, { desc = 'Hover' }))
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,
},
}
end,
}