return { { "ron-rs/ron.vim" }, { "mrcjkb/rustaceanvim", version = vim.fn.has("nvim-0.10.0") == 0 and "^4" or false, ft = { "rust" }, config = function(_, opts) vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {}) end, opts = { server = { default_settings = { -- rust-analyzer language server configuration ["rust-analyzer"] = { cargo = { allFeatures = true, loadOutDirsFromCheck = true, buildScripts = { enable = true, }, }, procMacro = { enable = true, ignored = { ["async-trait"] = { "async_trait" }, ["napi-derive"] = { "napi" }, ["async-recursion"] = { "async_recursion" }, }, }, files = { excludeDirs = { ".direnv", ".git", ".github", ".gitlab", "bin", "node_modules", "target", "venv", ".venv", }, }, }, }, }, }, }, { "saecki/crates.nvim", event = { "BufRead Cargo.toml" }, config = function() require("crates").setup() end, }, }