local cmp = require("cmp") local lspkind = require("lspkind") -- Better code icons -- local cmp_kinds = { -- Text = " ", -- Method = " ", -- Function = " ", -- Constructor = " ", -- Field = " ", -- Variable = " ", -- Class = " ", -- Interface = " ", -- Module = " ", -- Property = " ", -- Unit = " ", -- Value = " ", -- Enum = " ", -- Keyword = " ", -- Snippet = " ", -- Color = " ", -- File = " ", -- Reference = " ", -- Folder = " ", -- EnumMember = " ", -- Constant = " ", -- Struct = " ", -- Event = " ", -- Operator = " ", -- TypeParameter = " ", -- } cmp.setup({ formatting = { format = lspkind.cmp_format({ with_text = true, menu = { buffer = "[Buffer]", nvim_lsp = "[LSP]", luasnip = "[LuaSnip]", nvim_lua = "[Lua]", latex_symbols = "[Latex]", }, preset = "codicons", }), }, snippet = { -- REQUIRED - you must specify a snippet engine expand = function(args) require("luasnip").lsp_expand(args.body) -- For `luasnip` users. vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. end, }, mapping = { [""] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }), [""] = cmp.mapping(cmp.mapping.scroll_docs(4), { "i", "c" }), [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), [""] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. [""] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close(), }), [""] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. }, sources = cmp.config.sources( -- Snippets { { name = "luasnip" }, -- For luasnip users. { name = "ultisnips" }, }, { { name = "nvim_lsp" }, { name = "path" }, { name = "buffer" }, { name = "emoji" }, } ), }) -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline("/", { sources = { { name = "buffer" }, }, }) -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline(":", { sources = cmp.config.sources({ { name = "path" }, }, { { name = "cmdline" }, }), })