diff options
Diffstat (limited to 'nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua | 86 |
1 files changed, 47 insertions, 39 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua index d98ae32..2e32d6e 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua @@ -1,46 +1,54 @@ -local status_ok, rust_tools = pcall(require, "rust-tools") -if not status_ok then - vim.notify("Failed to load module 'rust-tools'", vim.log.levels.ERROR) - return -end +local M = { + "simrat39/rust-tools.nvim", + dependencies = { + "neovim/nvim-lspconfig", + "nvim-lua/plenary.nvim", + "mfussenegger/nvim-dap", + }, +} -local utils = require("tobyvin.utils") -local lsp = require("tobyvin.lsp") -local dap = require("tobyvin.plugins.dap") +function M.config() + local rust_tools = require("rust-tools") + local utils = require("tobyvin.utils") + local lsp = require("tobyvin.lsp") + local adapters = require("tobyvin.plugins.dap.adapters") -rust_tools.setup({ - tools = { - hover_actions = { - border = "single", + rust_tools.setup({ + tools = { + hover_actions = { + border = "single", + }, }, - }, - server = lsp.configs.rust_analyzer, - dap = { adapter = dap.adapters.codelldb }, -}) + server = lsp.configs.rust_analyzer, + dap = { adapter = adapters.codelldb }, + }) -vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("tobyvin_rust-tools", { clear = true }), - desc = "setup rust-tools", - callback = function(args) - local bufnr = args.buf - local client = vim.lsp.get_client_by_id(args.data.client_id) - if client.name ~= "rust_analyzer" then - return - end + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("tobyvin_rust-tools", { clear = true }), + desc = "setup rust-tools", + callback = function(args) + local bufnr = args.buf + local client = vim.lsp.get_client_by_id(args.data.client_id) + if client.name ~= "rust_analyzer" then + return + end - local runnables = rust_tools.runnables.runnables - local debuggables = rust_tools.debuggables.debuggables - local open_cargo_toml = rust_tools.open_cargo_toml.open_cargo_toml - local external_docs = rust_tools.external_docs.open_external_docs - local expand_macro = rust_tools.expand_macro.expand_macro - local hover_actions = rust_tools.hover_actions.hover_actions + local runnables = rust_tools.runnables.runnables + local debuggables = rust_tools.debuggables.debuggables + local open_cargo_toml = rust_tools.open_cargo_toml.open_cargo_toml + local external_docs = rust_tools.external_docs.open_external_docs + local expand_macro = rust_tools.expand_macro.expand_macro + local hover_actions = rust_tools.hover_actions.hover_actions - vim.keymap.set("n", "<leader>dd", debuggables, { desc = "debug", buffer = bufnr }) - vim.keymap.set("n", "<leader>tt", runnables, { desc = "test", buffer = bufnr }) - vim.keymap.set("n", "<leader>lo", open_cargo_toml, { desc = "open Cargo.toml", buffer = bufnr }) - vim.keymap.set("n", "<leader>le", expand_macro, { desc = "expand macro", buffer = bufnr }) + vim.keymap.set("n", "<leader>dd", debuggables, { desc = "debug", buffer = bufnr }) + vim.keymap.set("n", "<leader>tt", runnables, { desc = "test", buffer = bufnr }) + vim.keymap.set("n", "<leader>lo", open_cargo_toml, { desc = "open Cargo.toml", buffer = bufnr }) + vim.keymap.set("n", "<leader>le", expand_macro, { desc = "expand macro", buffer = bufnr }) + + utils.documentation.register("rust", external_docs) + utils.hover.register(hover_actions, { desc = "rust-tools hover actions", buffer = bufnr, priority = 10 }) + end, + }) +end - utils.documentation.register("rust", external_docs) - utils.hover.register(hover_actions, { desc = "rust-tools hover actions", buffer = bufnr, priority = 10 }) - end, -}) +return M |