Make lspconfig mappings configurable.

This commit is contained in:
Danilo Horta 2021-12-18 22:39:59 +00:00 committed by siduck
parent 1cd5150b70
commit 31e551af30
3 changed files with 46 additions and 25 deletions

View file

@ -190,6 +190,27 @@ M.mappings.plugins = {
esc_insertmode = { "jk" }, -- multiple mappings allowed esc_insertmode = { "jk" }, -- multiple mappings allowed
}, },
lspconfig = {
declaration = "gD",
definition = "gd",
hover = "K",
implementation = "gi",
signature_help = "gk",
add_workspace_folder = "<leader>wa",
remove_workspace_folder = "<leader>wr",
list_workspace_folders = "<leader>wl",
type_definition = "<leader>D",
rename = "<leader>rn",
code_action = "<leader>ca",
references = "gr",
show_line_diagnostics = "ge",
goto_prev = "[d",
goto_next = "]d",
set_loclist = "<leader>q",
formatting = "<leader>fm",
range_code_action = "<leader>ca",
},
nvimtree = { nvimtree = {
toggle = "<C-n>", toggle = "<C-n>",
focus = "<leader>e", focus = "<leader>e",

View file

@ -138,6 +138,30 @@ M.dashboard = function()
map("n", m.session_save, ":SessionSave <CR>") map("n", m.session_save, ":SessionSave <CR>")
end 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, "<cmd>lua vim.lsp.buf.declaration()<CR>")
map("n", m.definition, "<cmd>lua vim.lsp.buf.definition()<CR>")
map("n", m.hover, "<cmd>lua vim.lsp.buf.hover()<CR>")
map("n", m.implementation, "<cmd>lua vim.lsp.buf.implementation()<CR>")
map("n", m.signature_help, "<cmd>lua vim.lsp.buf.signature_help()<CR>")
map("n", m.add_workspace_folder, "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>")
map("n", m.remove_workspace_folder, "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>")
map("n", m.list_workspace_folders, "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>")
map("n", m.type_definition, "<cmd>lua vim.lsp.buf.type_definition()<CR>")
map("n", m.rename, "<cmd>lua vim.lsp.buf.rename()<CR>")
map("n", m.code_action, "<cmd>lua vim.lsp.buf.code_action()<CR>")
map("n", m.references, "<cmd>lua vim.lsp.buf.references()<CR>")
map("n", m.show_line_diagnostics, "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>")
map("n", m.goto_prev, "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>")
map("n", m.goto_next, "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>")
map("n", m.set_loclist, "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>")
map("n", m.formatting, "<cmd>lua vim.lsp.buf.formatting()<CR>")
map("v", m.range_code_action, "<cmd>lua vim.lsp.buf.range_code_action()<CR>")
end
M.nvimtree = function() M.nvimtree = function()
map("n", plugin_maps.nvimtree.toggle, ":NvimTreeToggle <CR>") map("n", plugin_maps.nvimtree.toggle, ":NvimTreeToggle <CR>")
map("n", plugin_maps.nvimtree.focus, ":NvimTreeFocus <CR>") map("n", plugin_maps.nvimtree.focus, ":NvimTreeFocus <CR>")

View file

@ -1,9 +1,6 @@
require("plugins.configs.others").lsp_handlers() require("plugins.configs.others").lsp_handlers()
local function on_attach(_, bufnr) local function on_attach(_, bufnr)
local function buf_set_keymap(...)
vim.api.nvim_buf_set_keymap(bufnr, ...)
end
local function buf_set_option(...) local function buf_set_option(...)
vim.api.nvim_buf_set_option(bufnr, ...) vim.api.nvim_buf_set_option(bufnr, ...)
end end
@ -11,28 +8,7 @@ local function on_attach(_, bufnr)
-- Enable completion triggered by <c-x><c-o> -- Enable completion triggered by <c-x><c-o>
buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
-- Mappings. require("core.mappings").lspconfig()
local opts = { noremap = true, silent = true }
-- See `:help vim.lsp.*` for documentation on any of the below functions
buf_set_keymap("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
buf_set_keymap("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
buf_set_keymap("n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", opts)
buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
buf_set_keymap("n", "gk", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
buf_set_keymap("n", "<space>wa", "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", opts)
buf_set_keymap("n", "<space>wr", "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", opts)
buf_set_keymap("n", "<space>wl", "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>", opts)
buf_set_keymap("n", "<space>D", "<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
buf_set_keymap("n", "<space>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
buf_set_keymap("n", "<space>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts)
buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
buf_set_keymap("n", "ge", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", opts)
buf_set_keymap("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
buf_set_keymap("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
buf_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts)
buf_set_keymap("n", "<space>fm", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
buf_set_keymap("v", "<space>ca", "<cmd>lua vim.lsp.buf.range_code_action()<CR>", opts)
end end
local capabilities = vim.lsp.protocol.make_client_capabilities() local capabilities = vim.lsp.protocol.make_client_capabilities()