local icons = { Namespace = "", 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 = "", Table = "", Object = "", Tag = "", Array = "[]", Boolean = "", Number = "", Null = "", String = "", Calendar = "", Watch = "", Package = "", Copilot = "", Codeium = "", TabNine = "", } return { "hrsh7th/nvim-cmp", event = "InsertEnter", dependencies = { "hrsh7th/cmp-nvim-lsp", -- "hrsh7th/cmp-buffer", -- "hrsh7th/cmp-path", -- "L3MON4D3/LuaSnip", }, config = function() local cmp = require("cmp") local opts = { completion = { -- autocomplete = false, completeopt = "menu,menuone,noinsert", }, formatting = { fields = { "abbr", "kind", "menu" }, format = function(_, item) local icon = icons[item.kind] or "" item.kind = string.format(" %s %s", icon, item.kind) return item end, }, mapping = { ["<C-space>"] = cmp.mapping.complete(), ["<C-up>"] = cmp.mapping.select_prev_item(), ["<C-down>"] = cmp.mapping.select_next_item(), ["<C-x>"] = cmp.mapping.abort(), ["<cr>"] = cmp.mapping.confirm({ select = true }), }, -- snippet = { -- expand = function(args) -- require("luasnip").lsp_expand(args.body) -- end, -- }, -- preselect = cmp.PreselectMode.None, sources = { { name = "nvim_lsp" }, -- { name = "luasnip" }, -- { name = "buffer" }, -- { name = "path" }, }, window = { completion = { border = "rounded", scrollbar = false, }, documentation = { border = "rounded", } }, } cmp.setup(opts) end, }