add rust config

This commit is contained in:
Rofelson 2024-02-10 09:09:13 +00:00
parent bc28cdeb46
commit 3d79ebb7c7
3 changed files with 66 additions and 15 deletions

View File

@ -448,7 +448,7 @@ local servers = {
-- clangd = {}, -- clangd = {},
-- gopls = {}, -- gopls = {},
-- pyright = {}, -- pyright = {},
-- rust_analyzer = {}, rust_analyzer = {},
-- tsserver = {}, -- tsserver = {},
-- html = { filetypes = { 'html', 'twig', 'hbs'} }, -- html = { filetypes = { 'html', 'twig', 'hbs'} },
@ -474,6 +474,54 @@ mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers), ensure_installed = vim.tbl_keys(servers),
} }
local rust_tools_config = {
-- executor = require("rust-tools.executors").quickfix,
inlay_hints = {
auto = true,
parameter_hints_prefix = "<-",
other_hints_prefix = "->",
},
server = {
standalone = false,
},
dap = function()
local install_root_dir = vim.fn.stdpath "data" .. "/mason"
local extension_path = install_root_dir .. "/packages/codelldb/extension/"
local codelldb_path = extension_path .. "adapter/codelldb"
local liblldb_path = extension_path .. "lldb/lib/liblldb.so"
return {
adapter = require("rust-tools.dap").get_codelldb_adapter(codelldb_path, liblldb_path)
}
end,
}
local rust_tools_rust_server = {
on_attach = on_attach,
settings = {
-- List of all options:
-- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc
["rust-analyzer"] = {
check = {
command = "cranky",
-- extraArgs = { "--all", "--", "-W", "clippy::all" },
},
-- rust-analyzer.server.extraEnv
-- neovim doesn"t have custom client-side code to honor this setting, it doesn't actually work
-- https://github.com/neovim/nvim-lspconfig/issues/1735
-- it's in init.vim as a real env variable
--
-- server = {
-- extraEnv = {
-- CARGO_TARGET_DIR = "target/rust-analyzer-check"
-- }
-- }
},
},
}
mason_lspconfig.setup_handlers { mason_lspconfig.setup_handlers {
function(server_name) function(server_name)
require('lspconfig')[server_name].setup { require('lspconfig')[server_name].setup {
@ -484,7 +532,12 @@ mason_lspconfig.setup_handlers {
} }
end, end,
["rust_analyzer"] = function() ["rust_analyzer"] = function()
require("rust-tools").setup {} require("rust-tools").setup {
capabilities = capabilities,
-- add from https://github.com/Gremious/configs/blob/main/lua/config/lsp.lua#L110
tools = rust_tools_config,
server = rust_tools_rust_server,
}
end end
} }

View File

@ -5,9 +5,9 @@ return {
config = function() config = function()
local crates = require('crates') local crates = require('crates')
crates.setup() crates.setup()
require('cmp').setup.buffer({ -- require('cmp').setup.buffer({
sources = { { name = 'crates' } } -- sources = { { name = 'crates' } }
}) -- })
crates.show() crates.show()
end, end,
} }

View File

@ -1,13 +1,11 @@
return { return {
{ "simrat39/rust-tools.nvim",
"simrat39/rust-tools.nvim", dependencies = {
dependencies = { 'neovim/nvim-lspconfig',
'neovim/nvim-lspconfig', 'nvim-lua/plenary.nvim',
'nvim-lua/plenary.nvim', 'mfussenegger/nvim-dap',
'mfussenegger/nvim-dap',
},
opts = function(_, _)
require("rust-tools").setup({})
end,
}, },
-- config = function()
-- require("rust-tools").setup({})
-- end,
} }