diff options
author | Subho Banerjee <[email protected]> | 2021-10-05 14:29:58 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2021-10-05 21:29:58 +0200 |
commit | 5fe7b7ad4d6fa699ca9cc306a788d6485fc0ba8d (patch) | |
tree | 5702e6fa2797184e09960d3bfef6587abe7133b6 /lua/lsp/init.lua | |
parent | 76bee64f17cb7e7db33ee61645088d2b0729eb09 (diff) |
feat(lsp): make lsp buffer-mappings configurable (#1687)
Diffstat (limited to 'lua/lsp/init.lua')
-rw-r--r-- | lua/lsp/init.lua | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index fae7ca8d..284b9dfe 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -22,25 +22,29 @@ local function lsp_highlight_document(client) end local function add_lsp_buffer_keybindings(bufnr) - local status_ok, wk = pcall(require, "which-key") - if not status_ok then - return - end - - local keys = { - ["K"] = { "<cmd>lua vim.lsp.buf.hover()<CR>", "Show hover" }, - ["gd"] = { "<cmd>lua vim.lsp.buf.definition()<CR>", "Goto Definition" }, - ["gD"] = { "<cmd>lua vim.lsp.buf.declaration()<CR>", "Goto declaration" }, - ["gr"] = { "<cmd>lua vim.lsp.buf.references()<CR>", "Goto references" }, - ["gI"] = { "<cmd>lua vim.lsp.buf.implementation()<CR>", "Goto Implementation" }, - ["gs"] = { "<cmd>lua vim.lsp.buf.signature_help()<CR>", "show signature help" }, - ["gp"] = { "<cmd>lua require'lsp.peek'.Peek('definition')<CR>", "Peek definition" }, - ["gl"] = { - "<cmd>lua require'lsp.handlers'.show_line_diagnostics()<CR>", - "Show line diagnostics", - }, + local mappings = { + normal_mode = "n", + insert_mode = "i", + visual_mode = "v", } - wk.register(keys, { mode = "n", buffer = bufnr }) + + if lvim.builtin.which_key.active then + -- Remap using which_key + local status_ok, wk = pcall(require, "which-key") + if not status_ok then + return + end + for mode_name, mode_char in pairs(mappings) do + wk.register(lvim.lsp.buffer_mappings[mode_name], { mode = mode_char, buffer = bufnr }) + end + else + -- Remap using nvim api + for mode_name, mode_char in pairs(mappings) do + for key, remap in pairs(lvim.lsp.buffer_mappings[mode_name]) do + vim.api.nvim_buf_set_keymap(bufnr, mode_char, key, remap[1], { noremap = true, silent = true }) + end + end + end end function M.common_capabilities() |