diff options
| -rw-r--r-- | lua/lsp/config.lua | 17 | ||||
| -rw-r--r-- | lua/lsp/init.lua | 40 | 
2 files changed, 39 insertions, 18 deletions
| diff --git a/lua/lsp/config.lua b/lua/lsp/config.lua index 521ab50a..32185b56 100644 --- a/lua/lsp/config.lua +++ b/lua/lsp/config.lua @@ -21,6 +21,23 @@ return {    on_attach_callback = nil,    on_init_callback = nil,    automatic_servers_installation = true, +  buffer_mappings = { +    normal_mode = { +      ["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", +      }, +    }, +    insert_mode = {}, +    visual_mode = {}, +  },    null_ls = {      setup = {},    }, 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() | 
