return function(client, bufnr) vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") client.resolved_capabilities.document_formatting = false client.resolved_capabilities.document_range_formatting = false local function buf_map(...) vim.api.nvim_buf_set_keymap(bufnr, "n", ...) end local opts = { noremap = true, silent = true } buf_map("K", "lua vim.lsp.buf.hover()", opts) buf_map("gd", "Telescope lsp_definitions", opts) buf_map("gD", "lua vim.lsp.buf.declaration()", opts) buf_map("gr", "Telescope lsp_references", opts) buf_map("gi", "Telescope lsp_implementations", opts) buf_map("gs", "lua vim.lsp.buf.signature_help()", opts) buf_map("gl", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) end