nvim: Add telescope to switch rust-analyzer target
This commit is contained in:
26
tree/.config/nvim/lua/fns.lua
Normal file
26
tree/.config/nvim/lua/fns.lua
Normal 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
|
||||
Reference in New Issue
Block a user