return {} --return { -- { -- "hrsh7th/nvim-cmp", -- -- load cmp on InsertEnter -- event = "InsertEnter", -- -- these dependencies will only be loaded when cmp loads -- -- dependencies are always lazy-loaded unless specified otherwise -- dependencies = { -- "hrsh7th/cmp-nvim-lsp", -- "hrsh7th/cmp-buffer", -- "hrsh7th/cmp-path", -- "hrsh7th/cmp-cmdline", -- -- 'hrsh7th/cmp-vsnip', -- -- 'hrsh7th/vim-vsnip', -- -- 'hrsh7th/vim-vsnip-integ', -- "L3MON4D3/LuaSnip", -- "saadparwaiz1/cmp_luasnip", -- "onsails/lspkind.nvim", -- { -- "zbirenbaum/copilot-cmp", -- dependencies = { -- "hrsh7th/nvim-cmp", -- { -- "zbirenbaum/copilot.lua", -- opts = { -- suggestion = { enabled = false }, -- panel = { enabled = false }, -- filetypes = { -- mail = false, -- text = false, -- }, -- }, -- }, -- }, -- config = function() -- require("copilot_cmp").setup() -- end, -- }, -- }, -- config = function() -- local cmp = require("cmp") -- local lspkind = require("lspkind") -- local luasnip = require("luasnip") -- local has_words_before = function() -- unpack = unpack or table.unpack -- local line, col = unpack(vim.api.nvim_win_get_cursor(0)) -- return col ~= 0 -- and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil -- end -- -- cmp.setup({ -- snippet = { -- expand = function(args) -- --vim.fn["vsnip#anonymous"](args.body) -- require("luasnip").lsp_expand(args.body) -- end, -- }, -- mapping = { -- [""] = cmp.mapping.confirm({ select = true }), -- [""] = cmp.mapping.scroll_docs(-4), -- [""] = cmp.mapping.scroll_docs(4), -- [""] = cmp.mapping.complete(), -- [""] = cmp.mapping.abort(), -- [""] = cmp.mapping.confirm({ -- behavior = cmp.ConfirmBehavior.Replace, -- select = true, -- }), -- [""] = cmp.mapping({ -- i = function(fallback) -- if cmp.visible() and cmp.get_active_entry() then -- cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }) -- else -- fallback() -- end -- end, -- s = cmp.mapping.confirm({ select = true }), -- c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), -- }), -- [""] = cmp.mapping(function(fallback) -- if cmp.visible() then -- cmp.select_next_item() -- -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() -- -- they way you will only jump inside the snippet region -- elseif luasnip.expand_or_jumpable() then -- luasnip.expand_or_jump() -- elseif has_words_before() then -- cmp.complete() -- else -- fallback() -- end -- end, { "i", "s" }), -- [""] = cmp.mapping(function(fallback) -- if cmp.visible() then -- cmp.select_prev_item() -- elseif luasnip.jumpable(-1) then -- luasnip.jump(-1) -- else -- fallback() -- end -- end, { "i", "s" }), -- }, -- sources = cmp.config.sources({ -- { name = "nvim_lsp" }, -- { name = "luasnip" }, -- { name = "copilot" }, -- }, { -- { name = "buffer", option = { keyword_pattern = [[\k\+]] } }, -- --{ name = 'path' }, -- }), -- formatting = { -- format = lspkind.cmp_format({ -- mode = "symbol_text", -- show only symbol annotations -- maxwidth = 80, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) -- ellipsis_char = "…", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first) -- symbol_map = { Copilot = "" }, -- }), -- }, -- }) -- end, -- }, --}