local function map(from, to) vim.keymap.set("n", from, to, { buffer = true, noremap = true, silent = true, }) end return { common = function(client, bufnr) vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") client.server_capabilities.documentFormattingProvider = false map("K", "lua vim.lsp.buf.hover()") map("gd", "Telescope lsp_definitions") map("gD", "lua vim.lsp.buf.declaration()") map("gr", "Telescope lsp_references") map("gi", "Telescope lsp_implementations") map("gs", "lua vim.lsp.buf.signature_help()") map("gl", "lua vim.diagnostic.open_float()") map("li", "LspInfo") map("la", "lua vim.lsp.buf.code_action()") map("lr", "lua vim.lsp.buf.rename()") map("lf", "lua vim.lsp.buf.format {async = true}") map("ls", "Telescope lsp_document_symbols") map("lj", "lua vim.diagnostic.goto_next()") map("lk", "lua vim.diagnostic.goto_prev()") end, null_ls = function(_, _) map("li", "LspInfo") map("lf", "lua vim.lsp.buf.format {async = true}") map("lj", "lua vim.diagnostic.goto_next()") map("lk", "lua vim.diagnostic.goto_prev()") end, }