return { "hrsh7th/nvim-cmp", event = "InsertEnter", dependencies = { "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", "hrsh7th/cmp-path", "L3MON4D3/LuaSnip", "zbirenbaum/copilot-cmp", -- Copilot completion source }, opts = function() local cmp = require("cmp") local luasnip = require("luasnip") return { snippet = { expand = function(args) luasnip.lsp_expand(args.body) end, }, mapping = cmp.mapping.preset.insert({ [""] = cmp.mapping.complete(), [""] = cmp.mapping.confirm({ select = false }), [""] = cmp.mapping.select_next_item(), [""] = cmp.mapping.select_prev_item(), [""] = cmp.mapping.abort(), }), sources = cmp.config.sources({ { name = "copilot", group_index = 2 }, -- Copilot suggestions (priority 1) { name = "nvim_lsp", group_index = 2 }, { name = "path", group_index = 2 }, { name = "buffer", group_index = 2 }, }), preselect = cmp.PreselectMode.None, completion = { completeopt = "menu,menuone,noinsert,noselect" }, window = { completion = cmp.config.window.bordered({ border = { { "🭽", "FloatBorder" }, { "▔", "FloatBorder" }, { "🭾", "FloatBorder" }, { "▕", "FloatBorder" }, { "🭿", "FloatBorder" }, { "▁", "FloatBorder" }, { "🭼", "FloatBorder" }, { "▏", "FloatBorder" }, }, winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder", }), documentation = cmp.config.window.bordered({ border = { { "🭽", "FloatBorder" }, { "▔", "FloatBorder" }, { "🭾", "FloatBorder" }, { "▕", "FloatBorder" }, { "🭿", "FloatBorder" }, { "▁", "FloatBorder" }, { "🭼", "FloatBorder" }, { "▏", "FloatBorder" }, }, winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder", }), }, } end, config = function(_, opts) require("cmp").setup(opts) end, }