40 lines
1.3 KiB
Lua
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,
|
|
}
|