feat(neovim-rust): Rust LSP, debugging, testing and keymaps

- `rustaceanvim` for LSP config
- Rust ft specific keymaps in `after/ftplugin`
- `nvim-dap` for Rust debugging with codelldb
- `rustaceanvim.neotest` for Rust testing
- `rcasia/neotest-bash` for Bash testing
- Better keymaps for running tests
- Inlay hint UI improvements
This commit is contained in:
Pratik Tripathy
2025-07-29 11:25:08 +05:30
parent fb16a6a3f0
commit 8c52c7a881
7 changed files with 250 additions and 32 deletions

View File

@@ -1,23 +1,10 @@
-- TODO: Map all native Nvim 0.11 LSP commands to corresponding rustaceanvim ones
-- grn -> Rename
-- grr -> References
-- gri -> Implementation
-- gO -> document_symbol
-- gra -> code_action
-- Mine
-- F2 -> Rename
-- gD -> Go to definition
-- <leader>cr -> References
-- <leader>co -> document_symbol
if pcall(require, "rustaceanvim") then
local bufnr = vim.api.nvim_get_current_buf()
vim.keymap.set("n", "<C-.>", function()
vim.cmd.RustLsp("codeAction")
end, { silent = true, buffer = bufnr })
vim.keymap.set("n", "K", function()
vim.cmd.RustLsp({ "hover", "actions" })
end, { silent = true, buffer = bufnr })
vim.keymap.set("n", "gC", "<cmd>RustLsp openCargo<cr>", { desc = "Open Cargo.toml", buffer = bufnr })
vim.keymap.set("n", "<leader>rm", "<cmd>RustLsp expandMacro<cr>", { desc = "Expand Macro", buffer = bufnr })
vim.keymap.set("n", "<leader>rp", "<cmd>RustLsp parentModule<cr>", { desc = "Parent Module", buffer = bufnr })
vim.keymap.set("n", "<leader>rJ", "<cmd>RustLsp joinLines<cr>", { desc = "Join Lines", buffer = bufnr })
vim.keymap.set("n", "<leader>rh", "<cmd>RustLsp openDocs<cr>", { desc = "Open docs.rs Documentation" })
vim.keymap.set("n", "<leader>rM", "<cmd>RustLsp view mir<cr>", { desc = "View Mid-Level IR", buffer = bufnr })
vim.keymap.set("n", "<leader>rH", "<cmd>RustLsp view hir<cr>", { desc = "View High-Level IR", buffer = bufnr })
end