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