diff options
author | Toby Vincent <tobyv13@gmail.com> | 2022-10-31 16:37:06 -0500 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2022-10-31 16:37:06 -0500 |
commit | 71cde9273372ffe056c8e047511724de44bcf705 (patch) | |
tree | eb99a1c8587276664365929a3ffababee3af4a92 | |
parent | 4f370c872ffb886dc3193a69dee09a912cfdc5d4 (diff) |
feat(nvim): register hover providers for rust-tools and crates.nvim
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua | 2 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/crates.lua | 19 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua | 7 |
3 files changed, 16 insertions, 12 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua b/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua index a0ad173..80c336f 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp/handlers.lua @@ -73,7 +73,7 @@ M.setup = function() vim.bo[bufnr].tagfunc = "v:lua.vim.lsp.tagfunc" end - utils.hover.register(vim.lsp.buf.hover, { buffer = bufnr, priority = 1 }) + utils.hover.register(vim.lsp.buf.hover, { desc = "lsp", buffer = bufnr, priority = 1 }) vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, { desc = "Signature Help", buffer = bufnr }) vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Definition", buffer = bufnr }) diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/crates.lua b/nvim/.config/nvim/lua/tobyvin/plugins/crates.lua index 1a18bfb..841f04a 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/crates.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/crates.lua @@ -15,20 +15,17 @@ M.setup = function() }) vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("tobyvin_crates", { clear = true }), + group = vim.api.nvim_create_augroup("tobyvin_crates", { clear = true }), pattern = "*/Cargo.toml", desc = "setup crates", - callback = function() + callback = function(args) utils.documentation.register("toml", crates.open_documentation) - - local original = vim.lsp.handlers["textDocument/hover"] - vim.lsp.handlers["textDocument/hover"] = function(...) - if crates.popup_available() then - crates.show_popup() - else - original(...) - end - end + utils.hover.register(crates.show_popup, { + enabled = crates.popup_available, + desc = "crates", + buffer = args.buf, + priority = 10, + }) end, }) end diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua index c7e9e72..458e0db 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua @@ -68,6 +68,7 @@ M.setup = function() 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 = "Debuggables", buffer = bufnr }) vim.keymap.set("n", "<leader>r", runnables, { desc = "Runnables", buffer = bufnr }) @@ -75,10 +76,16 @@ M.setup = function() 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, }) rust_tools.setup({ + tools = { + hover_actions = { + border = "single", + }, + }, server = lsp.configs["rust-analyzer"], dap = { adapter = require("rust-tools.dap").get_codelldb_adapter(M.codelldb, M.liblldb), |