diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index be3ad7c..2a7ccd1 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -39,6 +39,20 @@ for name, _ in pairs(P.servers) do P.servers[name] = require("lsp.config." .. name) end +local function ca_rename() + local old = vim.fn.expand("") + local new + vim.ui.input( + { prompt = ("Rename `%s` to: "):format(old), }, + function (input) + new = input + end + ) + if new and new ~= "" then + vim.lsp.buf.rename(new) + end +end + function P._setup_diagnostic() vim.diagnostic.config({ underline = true, @@ -157,52 +171,25 @@ function P.on_attach(client, bufnr) }, bufnr) -- Mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions - local opts = { noremap = true, silent = true, } - vim.api.nvim_buf_set_keymap(bufnr, "n", "L", - "lua vim.diagnostic.open_float()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", - "lua vim.diagnostic.goto_prev()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", - "lua vim.diagnostic.goto_next()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "ll", - "lua vim.diagnostic.setloclist()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", - "lua vim.lsp.buf.declaration()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", - "lua vim.lsp.buf.definition()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "K", - "lua vim.lsp.buf.hover()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", - "lua vim.lsp.buf.implementation()", - opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "s", - "lua vim.lsp.buf.signature_help()", - opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "wa", - "lua vim.lsp.buf.add_workspace_folder()", - opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "wr", - "lua vim.lsp.buf.remove_workspace_folder()", - opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "wl", - "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", - opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gt", - "lua vim.lsp.buf.type_definition()", - opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "rn", - "lua vim.lsp.buf.rename()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "ca", - "lua vim.lsp.buf.code_action()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", - "lua vim.lsp.buf.references()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "lf", - "lua vim.lsp.buf.format({async = true})", - opts) + local opts = { silent = true, buffer = bufnr, } + vim.keymap.set("n", "L", vim.diagnostic.open_float, opts) + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) + vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) + vim.keymap.set("n", "ll", vim.diagnostic.setloclist, opts) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) + vim.keymap.set("n", "s", vim.lsp.buf.signature_help, opts) + vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set("n", "wl", function () print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, opts) + -- vim.keymap.set("n", "gt", vim.lsp.buf.type_definition, opts) + vim.keymap.set("n", "rn", ca_rename, opts) + vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) + vim.keymap.set({ "n", "v", }, "lf", function () vim.lsp.buf.format({ async = true, }) end, opts) -- if client.server_capabilities.document_range_formatting then - vim.api.nvim_buf_set_keymap(bufnr, "v", "lf", - "lua vim.lsp.buf.format({async = true})", - opts) -- end -- The below command will highlight the current variable and its usages in the buffer.