nvim: Add telescope to switch rust-analyzer target

This commit is contained in:
2024-03-13 15:34:57 +01:00
parent a24277188b
commit 74de1a4b69
3 changed files with 42 additions and 7 deletions

View File

@ -0,0 +1,26 @@
-- change rust-analyzer target
set_rust_target = function(target)
print("rust-analyzer.cargo.target = " .. target)
require("rust-tools").setup({
server = { settings = { ["rust-analyzer"] = { cargo = { target = target } } } },
})
end
-- a custom telescope picker for changing rust-analyzer target
pick_rust_target = function(opts)
opts = opts or {}
require("telescope.pickers").new(opts, {
prompt_title = "rustup target list --installed",
finder = require("telescope.finders").new_oneshot_job({ "rustup", "target", "list", "--installed" }, opts ),
sorter = require("telescope.config").values.generic_sorter(opts),
attach_mappings = function(prompt_bufnr, map)
local actions = require("telescope.actions")
actions.select_default:replace(function()
actions.close(prompt_bufnr)
local selection = require("telescope.actions.state").get_selected_entry()
set_rust_target(selection[1])
end)
return true
end,
}):find()
end