nvim/lua/plugins/rust-tools.lua
2022-10-12 17:55:38 +02:00

126 lines
4.1 KiB
Lua

local M = {
module = "rust-tools",
}
function M.setup(options)
local opts = {
tools = { -- rust-tools options
-- -- Automatically set inlay hints (type hints)
-- autoSetHints = true,
-- -- Whether to show hover actions inside the hover window
-- -- This overrides the default hover handler
-- hover_with_actions = true,
-- -- how to execute terminal commands
-- -- options right now: termopen / quickfix
-- executor = require("rust-tools/executors").termopen,
-- runnables = {
-- -- whether to use telescope for selection menu or not
-- use_telescope = true,
-- -- rest of the opts are forwarded to telescope
-- },
-- debuggables = {
-- -- whether to use telescope for selection menu or not
-- use_telescope = true,
-- -- rest of the opts are forwarded to telescope
-- },
-- -- These apply to the default RustSetInlayHints command
inlay_hints = {
-- -- Only show inlay hints for the current line
-- only_current_line = false,
-- -- Event which triggers a refersh of the inlay hints.
-- -- You can make this "CursorMoved" or "CursorMoved,CursorMovedI" but
-- -- not that this may cause higher CPU usage.
-- -- This option is only respected when only_current_line and
-- -- autoSetHints both are true.
-- only_current_line_autocmd = "CursorHold",
-- -- wheter to show parameter hints with the inlay hints or not
-- show_parameter_hints = true,
-- -- prefix for parameter hints
parameter_hints_prefix = " <- ",
-- -- prefix for all the other hints (type, chaining)
other_hints_prefix = " => ",
-- -- whether to align to the length of the longest line in the file
-- max_len_align = true,
-- -- padding from the left if max_len_align is true
-- max_len_align_padding = 10,
-- -- whether to align to the extreme right or not
-- right_align = false,
-- -- padding from the right if right_align is true
-- right_align_padding = 7,
-- -- The color of the hints
highlight = "LspCodeLens",
},
-- hover_actions = {
-- -- the border that is used for the hover window
-- -- see vim.api.nvim_open_win()
-- border = {
-- { "\u256d", "FloatBorder" },
-- { "\u2500", "FloatBorder" },
-- { "\u256e", "FloatBorder" },
-- { "\u2502", "FloatBorder" },
-- { "\u256f", "FloatBorder" },
-- { "\u2500", "FloatBorder" },
-- { "\u2570", "FloatBorder" },
-- { "\u2502", "FloatBorder" },
-- },
-- -- whether the hover action window gets automatically focused
-- auto_focus = false,
-- },
-- -- settings for showing the crate graph based on graphviz and the dot
-- -- command
-- crate_graph = {
-- -- Backend used for displaying the graph
-- -- see: https://graphviz.org/docs/outputs/
-- -- default: x11
-- backend = "x11",
-- -- where to store the output, nil for no output stored (relative
-- -- path from pwd)
-- -- default: nil
-- output = nil,
-- -- true for all crates.io and external crates, false only the local
-- -- crates
-- -- default: true
-- full = true,
-- },
},
-- -- all the opts to send to nvim-lspconfig
-- -- these override the defaults set by rust-tools.nvim
-- -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer
server = options, -- rust-analyer options
-- -- debugging stuff
-- dap = {
-- adapter = {
-- type = "executable",
-- command = "lldb-vscode",
-- name = "rt_lldb",
-- },
-- },
}
require("rust-tools").setup(opts)
end
return M