return {{ "mrcjkb/rustaceanvim", version = "^6", -- Recommended ft = { "rs" }, lazy = false, opts = { tools = {}, server = { status_notify_level = false, on_attach = function(_, bufnr) vim.keymap.set("n", "cR", function() vim.cmd.RustLsp("codeAction") end, { desc = "Code Action", buffer = bufnr }) vim.keymap.set("n", "dr", function() vim.cmd.RustLsp("debuggables") end, { desc = "Rust Debuggables", buffer = bufnr }) end, default_settings = { -- rust-analyzer language server configuration ["rust-analyzer"] = { cargo = { allFeatures = true, loadOutDirsFromCheck = true, runBuildScripts = true, }, -- They changed the configuration, so it's only checkOnSave with a boolean -- # TODO: Figure out how we can enable clippy lints again --checkOnSave = { -- allFeatures = true, -- command = "clippy", -- extraArgs = { "--no-deps" }, --}, checkOnSave = true, procMacro = { enable = true, ignored = { ["async-trait"] = { "async_trait" }, ["napi-derive"] = { "napi" }, ["async-recursion"] = { "async_recursion" }, }, }, }, }, }, }, config = function(_, opts) vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {}) end, }}