-- -- lsp plugin setup -- local lsp_zero = require('lsp-zero') lsp_zero.preset('recommended') lsp_zero.on_attach(function(client, bufnr) -- see :help lsp-zero-keybindings -- to learn the available actions lsp_zero.default_keymaps({buffer = bufnr}) vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) end) require('mason').setup({}) require('mason-lspconfig').setup({ -- Replace the language servers listed here -- with the ones you want to install ensure_installed = {'tsserver', 'rust_analyzer'}, handlers = { lsp_zero.default_setup, lua_ls = function() local lua_opts = lsp_zero.nvim_lua_ls() require('lspconfig').lua_ls.setup(lua_opts) end, }, }) local cmp = require('cmp') local cmp_action = require('lsp-zero').cmp_action() cmp.setup({ sources = { {name = 'nvim_lsp'}, {name = 'buffer'}, {name = 'path'}, }, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), }, mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping.complete(), [''] = cmp_action.luasnip_jump_forward(), [''] = cmp_action.luasnip_jump_backward(), [''] = cmp.mapping.scroll_docs(-4), [""] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true, }), [""] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }), [""] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }), }) })