local lsp = require('lsp-zero').preset({}) lsp.on_attach(function(client, bufnr) -- see :help lsp-zero-keybindings -- to learn the available actions lsp.default_keymaps({buffer = bufnr}) end) -- " (Optional) Configure lua language server for neovim require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls()) -- You need to setup `cmp` after lsp-zero local cmp = require('cmp') local cmp_action = require('lsp-zero').cmp_action() cmp.setup({ mapping = { -- `Enter` key to confirm completion [''] = cmp.mapping.confirm({select = false}), -- Ctrl+Space to trigger completion menu [''] = cmp.mapping.complete(), -- Navigate between snippet placeholder [''] = cmp_action.luasnip_jump_forward(), [''] = cmp_action.luasnip_jump_backward(), } }) local null_ls = require('null-ls') local null_opts = lsp.build_options('null-ls', {}) null_ls.setup({ on_attach = function(client, bufnr) null_opts.on_attach(client, bufnr) --- you can add more stuff here if you need it end, sources = { null_ls.builtins.formatting.black, } }) lsp.setup()