------------------------------------------------------------------------------- -- - LSP servers common config - ------------------------------------------------------------------------------- local M = {} M.on_attach = function(client, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") local default_opts = {noremap = true, silent = true} -- Lsp keymaps buf_set_keymap("n", "", "lua vim.lsp.buf.definition()", default_opts) buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", default_opts) buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", default_opts) buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", default_opts) buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", default_opts) buf_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", default_opts) buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", default_opts) buf_set_keymap("n", "", "lua vim.lsp.buf.code_action()", default_opts) buf_set_keymap("n", "ac", "lua vim.lsp.buf.code_action()", default_opts) buf_set_keymap("n", "a", "lua vim.lsp.buf.code_action_range()", default_opts) end return M