return { "saghen/blink.cmp", dependencies = { "rafamadriz/friendly-snippets", "L3MON4D3/LuaSnip", "Kaiser-Yang/blink-cmp-avante", "fang2hou/blink-copilot", }, -- enabled = false, version = "*", config = function() require("blink-cmp").setup({ appearance = { use_nvim_cmp_as_default = true, nerd_font_variant = "mono", }, signature = { enabled = true, window = { show_documentation = false, }, }, keymap = { preset = "default", [""] = {}, [""] = {}, [""] = { "show", "show_documentation", "hide_documentation" }, [""] = { "select_and_accept", "fallback" }, [""] = { "select_prev", "fallback" }, [""] = { "select_next", "fallback" }, [""] = { "snippet_forward", "select_next", "fallback" }, [""] = { "snippet_backward", "select_prev", "fallback" }, }, completion = { menu = { border = "rounded", winhighlight = "Normal:Normal,Normal:Normal,CursorLine:BlinkCmpMenuSelection,Search:None", }, documentation = { auto_show = true, window = { border = "single", }, }, }, snippets = { preset = "luasnip", expand = function(snippet) require("luasnip").lsp_expand(snippet) end, active = function(filter) if filter and filter.direction then return require("luasnip").jumpable(filter.direction) end return require("luasnip").in_snippet() end, jump = function(direction) require("luasnip").jump(direction) end, }, cmdline = { completion = { menu = { auto_show = true } }, keymap = { [""] = { "select_and_accept" }, }, }, sources = { default = { "avante", "lsp", "snippets", "copilot", "buffer", "path" }, providers = { avante = { module = "blink-cmp-avante", name = "Avante", score_offset = 100, }, lsp = { name = "lsp", enabled = true, module = "blink.cmp.sources.lsp", score_offset = 90, }, snippets = { name = "snippets", enabled = true, module = "blink.cmp.sources.snippets", score_offset = 80, }, copilot = { name = "copilot", module = "blink-copilot", score_offset = 70, async = true, }, buffer = { name = "Buffer", enabled = true, module = "blink.cmp.sources.buffer", score_offset = 60, }, path = { name = "Path", module = "blink.cmp.sources.path", score_offset = 10, opts = { trailing_slash = false, label_trailing_slash = true, get_cwd = function(context) return vim.fn.expand(("#%d:p:h"):format(context.bufnr)) end, show_hidden_files_by_default = true, }, }, }, }, }) end, opts_extend = { "sources.default" }, }