aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua')
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua86
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