summaryrefslogtreecommitdiff
path: root/lua/lsp/init.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-08-02 23:42:56 +0200
committerGitHub <[email protected]>2021-08-02 17:42:56 -0400
commit77e283bd9c33166937756250918b12e349caf050 (patch)
tree684cf70dbf4b95eda38fc1f5f0917f3df6c75195 /lua/lsp/init.lua
parente0f0c81ea6f595139cd4f55fbdcf9e22d9a84727 (diff)
[Refactor] Allow editing default keymaps (#1213)
Diffstat (limited to 'lua/lsp/init.lua')
-rw-r--r--lua/lsp/init.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua
index 3373ac46..b85dfcd2 100644
--- a/lua/lsp/init.lua
+++ b/lua/lsp/init.lua
@@ -33,6 +33,24 @@ local function lsp_highlight_document(client)
end
end
+local function add_lsp_buffer_keybindings(bufnr)
+ local wk = require "which-key"
+ 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 vim.lsp.diagnostic.show_line_diagnostics({ show_header = false, border = 'single' })<CR>",
+ "Show line diagnostics",
+ },
+ }
+ wk.register(keys, { mode = "n", buffer = bufnr })
+end
+
function M.common_capabilities()
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
@@ -64,6 +82,7 @@ function M.common_on_attach(client, bufnr)
lvim.lsp.on_attach_callback(client, bufnr)
end
lsp_highlight_document(client)
+ add_lsp_buffer_keybindings(bufnr)
require("lsp.null-ls").setup(vim.bo.filetype)
end