diff --git a/.config/nvim/lua/ajet/rusttools.lua b/.config/nvim/lua/ajet/rusttools.lua index bfa56ee..0e67a56 100644 --- a/.config/nvim/lua/ajet/rusttools.lua +++ b/.config/nvim/lua/ajet/rusttools.lua @@ -1,74 +1,12 @@ --- Use an on_attach function to only map the following keys --- after the language server attaches to the current buffer -local on_attach = function(_, bufnr) - -- Enable completion triggered by - vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') +local rt = require("rust-tools") - -- Mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - local bufopts = { noremap = true, silent = true, buffer = bufnr } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, bufopts) - vim.keymap.set('n', 'gy', vim.lsp.buf.type_definition, bufopts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) - vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, { silent = true, buffer = bufnr }) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) - vim.keymap.set('n', 'F', vim.lsp.buf.formatting, bufopts) -end - -require('rust-tools').setup({ - tools = { -- rust-tools options - executor = require("rust-tools/executors").termopen, - on_initialized = nil, - reload_workspace_from_cargo_toml = true, - autoSetHints = true, - hover_with_actions = false, - hover_actions = { - border = { - { "╭", "FloatBorder" }, - { "─", "FloatBorder" }, - { "╮", "FloatBorder" }, - { "│", "FloatBorder" }, - { "╯", "FloatBorder" }, - { "─", "FloatBorder" }, - { "╰", "FloatBorder" }, - { "│", "FloatBorder" }, - }, - auto_focus = true, - }, - inlay_hints = { - show_parameter_hints = true, - parameter_hints_prefix = "<- ", - other_hints_prefix = "=> ", - current_line_only = false, - } - }, - server = { - on_attach = function(_, buffnr) - on_attach(_, buffnr) - local bufopts = { silent = true, buffer = buffnr } - vim.keymap.set('n', 'ca', ':RustCodeAction', bufopts) - vim.keymap.set('n', 'K', ':RustHoverActions', bufopts) - vim.keymap.set('n', 'R', ':RustRunnables', bufopts) - vim.keymap.set('n', 'D', ':RustDebuggables', bufopts) - end, - settings = { - ["rust-analyzer"] = { - checkOnSave = { - command = "clippy" - } - } - } - }, - dap = { - --adapter = require('rust-tools.dap').get_codelldb_adapter(codelldb_path, liblldb_path) - } +rt.setup({ + server = { + on_attach = function(_, bufnr) + vim.keymap.set("n", "K", rt.hover_actions.hover_actions, { buffer = bufnr }) + vim.keymap.set("n", "ca", rt.code_action_group.code_action_group, { buffer = bufnr }) + vim.keymap.set("n", "ca", rt.runnables.runnables, { buffer = bufnr }) + end, + }, }) +