local map = require('utils').map -- import map require('mason-lspconfig').setup() require('mason-lspconfig').setup_handlers({ function(server_name) -- default handler -- prepare nvim-cmp source local capabilities = require('cmp_nvim_lsp').default_capabilities() require('lspconfig')[server_name].setup({ -- announce nvim-cmp-lsp capabilities to each lsp server capabilities = capabilities }) end }) -- lsp keybindings map('n', 'gd', 'lua vim.lsp.buf.definition()') map('n', 'gD', 'lua vim.lsp.buf.declaration()') map('n', 'K', 'lua vim.lsp.buf.hover()') map('n', 'gi', 'lua vim.lsp.buf.implementation()') map('n', 'gr', 'lua vim.lsp.buf.references()') map('n', '', 'lua vim.lsp.buf.signature_help()') map('n', 'rn', 'lua vim.lsp.buf.rename()') map('n', 'ca', 'lua vim.lsp.buf.code_action()') map('n', 'f', 'lua vim.lsp.buf.type_definition({ async = true })')