if pcall(require, "rustaceanvim") then local bufnr = vim.api.nvim_get_current_buf() vim.keymap.set("n", "gC", "RustLsp openCargo", { desc = "Open Cargo.toml", buffer = bufnr }) vim.keymap.set("n", "rm", "RustLsp expandMacro", { desc = "Expand Macro", buffer = bufnr }) vim.keymap.set("n", "rp", "RustLsp parentModule", { desc = "Parent Module", buffer = bufnr }) vim.keymap.set("n", "rJ", "RustLsp joinLines", { desc = "Join Lines", buffer = bufnr }) vim.keymap.set("n", "rh", "RustLsp openDocs", { desc = "Open docs.rs Documentation" }) vim.keymap.set("n", "rM", "RustLsp view mir", { desc = "View Mid-Level IR", buffer = bufnr }) vim.keymap.set("n", "rH", "RustLsp view hir", { desc = "View High-Level IR", buffer = bufnr }) end local function run_tests_with_coverage() -- Run tests through neotest require("neotest").run.run(vim.fn.expand("%")) -- Generate coverage after tests complete vim.fn.jobstart("cargo llvm-cov --lcov --output-path coverage.lcov", { on_exit = function(_, code) if code == 0 then -- Load coverage data require("coverage").load(true) print("Coverage updated") else print("Coverage generation failed") end end, }) end vim.keymap.set("n", "tc", run_tests_with_coverage, { desc = "Test: Run tests with coverage" })