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 = { [""] = cmp.mapping.complete(), [""] = cmp.mapping.select_prev_item(), [""] = cmp.mapping.select_next_item(), [""] = cmp.mapping.abort(), [""] = 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, }