nvim/lua/plugins/rustaceanvim.lua

48 lines
1.6 KiB
Lua

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', '<space>y', function() vim.cmd.RustLsp { 'hover', 'actions' } end,
vim.tbl_extend('error', options, { desc = 'Hover' }))
-- 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
}
}
end
}