dotfiles/nvim/lua/plugins/rust-tools.lua

40 lines
1.1 KiB
Lua

local nmap = require("utility").curried_keymap('n')
local M = {}
function M.config()
local tools = require "rust-tools"
local mason = require "mason-registry"
local capabilities = require("cmp_nvim_lsp").default_capabilities()
local lsp_root = mason.get_package("codelldb"):get_install_path() .. "/extension/"
local lsp_path = lsp_root .. "adapter/codelldb"
local lib_path = lsp_root .. "lldb/lib/liblldb.so"
local opts = {
server = {
standalone = true,
capabilities = capabilities,
on_attach = function(_, bufnr)
nmap "<C-b>" (tools.hover_actions.hover_actions) {buffer=bufnr}
nmap "<Leader>a" (tools.code_action_group.code_action_group) {buffer=bufnr}
end,
["rust-analyzer"] = {
cargo = { allFeatures = true },
checkOnSave = {
-- default = "cargo check",
command = "clippy",
allFeatures = true,
}
}
},
dap = {
adapter = require("rust-tools.dap").get_codelldb_adapter(lsp_path, lib_path),
},
}
tools.setup(opts)
end
return M