From 31e551af3072df8e3d0f8c65d98adb3d32b0b0fb Mon Sep 17 00:00:00 2001 From: Danilo Horta Date: Sat, 18 Dec 2021 22:39:59 +0000 Subject: [PATCH] Make lspconfig mappings configurable. --- lua/core/default_config.lua | 21 +++++++++++++++++++++ lua/core/mappings.lua | 24 ++++++++++++++++++++++++ lua/plugins/configs/lspconfig.lua | 26 +------------------------- 3 files changed, 46 insertions(+), 25 deletions(-) diff --git a/lua/core/default_config.lua b/lua/core/default_config.lua index 7d06d30..1713a16 100644 --- a/lua/core/default_config.lua +++ b/lua/core/default_config.lua @@ -190,6 +190,27 @@ M.mappings.plugins = { esc_insertmode = { "jk" }, -- multiple mappings allowed }, + lspconfig = { + declaration = "gD", + definition = "gd", + hover = "K", + implementation = "gi", + signature_help = "gk", + add_workspace_folder = "wa", + remove_workspace_folder = "wr", + list_workspace_folders = "wl", + type_definition = "D", + rename = "rn", + code_action = "ca", + references = "gr", + show_line_diagnostics = "ge", + goto_prev = "[d", + goto_next = "]d", + set_loclist = "q", + formatting = "fm", + range_code_action = "ca", + }, + nvimtree = { toggle = "", focus = "e", diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 3e22721..0ce75c6 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -138,6 +138,30 @@ M.dashboard = function() map("n", m.session_save, ":SessionSave ") end +M.lspconfig = function() + local m = plugin_maps.lspconfig + + -- See `:help vim.lsp.*` for documentation on any of the below functions + map("n", m.declaration, "lua vim.lsp.buf.declaration()") + map("n", m.definition, "lua vim.lsp.buf.definition()") + map("n", m.hover, "lua vim.lsp.buf.hover()") + map("n", m.implementation, "lua vim.lsp.buf.implementation()") + map("n", m.signature_help, "lua vim.lsp.buf.signature_help()") + map("n", m.add_workspace_folder, "lua vim.lsp.buf.add_workspace_folder()") + map("n", m.remove_workspace_folder, "lua vim.lsp.buf.remove_workspace_folder()") + map("n", m.list_workspace_folders, "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))") + map("n", m.type_definition, "lua vim.lsp.buf.type_definition()") + map("n", m.rename, "lua vim.lsp.buf.rename()") + map("n", m.code_action, "lua vim.lsp.buf.code_action()") + map("n", m.references, "lua vim.lsp.buf.references()") + map("n", m.show_line_diagnostics, "lua vim.lsp.diagnostic.show_line_diagnostics()") + map("n", m.goto_prev, "lua vim.lsp.diagnostic.goto_prev()") + map("n", m.goto_next, "lua vim.lsp.diagnostic.goto_next()") + map("n", m.set_loclist, "lua vim.lsp.diagnostic.set_loclist()") + map("n", m.formatting, "lua vim.lsp.buf.formatting()") + map("v", m.range_code_action, "lua vim.lsp.buf.range_code_action()") +end + M.nvimtree = function() map("n", plugin_maps.nvimtree.toggle, ":NvimTreeToggle ") map("n", plugin_maps.nvimtree.focus, ":NvimTreeFocus ") diff --git a/lua/plugins/configs/lspconfig.lua b/lua/plugins/configs/lspconfig.lua index 7194964..2d1273b 100644 --- a/lua/plugins/configs/lspconfig.lua +++ b/lua/plugins/configs/lspconfig.lua @@ -1,9 +1,6 @@ require("plugins.configs.others").lsp_handlers() local function on_attach(_, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end @@ -11,28 +8,7 @@ local function on_attach(_, bufnr) -- Enable completion triggered by buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") - -- Mappings. - local opts = { noremap = true, silent = true } - - -- See `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) - buf_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) - buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) - buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) - buf_set_keymap("n", "gk", "lua vim.lsp.buf.signature_help()", opts) - buf_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", opts) - buf_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) - buf_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) - buf_set_keymap("n", "D", "lua vim.lsp.buf.type_definition()", opts) - buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) - buf_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) - buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", opts) - buf_set_keymap("n", "ge", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) - buf_set_keymap("n", "[d", "lua vim.lsp.diagnostic.goto_prev()", opts) - buf_set_keymap("n", "]d", "lua vim.lsp.diagnostic.goto_next()", opts) - buf_set_keymap("n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) - buf_set_keymap("n", "fm", "lua vim.lsp.buf.formatting()", opts) - buf_set_keymap("v", "ca", "lua vim.lsp.buf.range_code_action()", opts) + require("core.mappings").lspconfig() end local capabilities = vim.lsp.protocol.make_client_capabilities()