summaryrefslogtreecommitdiff
path: root/lua/lsp/init.lua
diff options
context:
space:
mode:
authorSubho Banerjee <[email protected]>2021-10-05 14:29:58 -0500
committerGitHub <[email protected]>2021-10-05 21:29:58 +0200
commit5fe7b7ad4d6fa699ca9cc306a788d6485fc0ba8d (patch)
tree5702e6fa2797184e09960d3bfef6587abe7133b6 /lua/lsp/init.lua
parent76bee64f17cb7e7db33ee61645088d2b0729eb09 (diff)
feat(lsp): make lsp buffer-mappings configurable (#1687)
Diffstat (limited to 'lua/lsp/init.lua')
-rw-r--r--lua/lsp/init.lua40
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()