return { "saghen/blink.cmp", dependencies = { "rafamadriz/friendly-snippets", { "fang2hou/blink-copilot", dependencies = "copilot.lua" }, }, version = "1.*", event = "InsertEnter", ---@module 'blink.cmp' ---@type blink.cmp.Config opts = { keymap = { preset = "enter", [""] = { "scroll_documentation_up", "fallback" }, [""] = { "scroll_documentation_down", "fallback" }, -- prob should remove but i just got too used to accepting snippets this way [""] = { "snippet_forward", "accept", "fallback" }, }, appearance = { nerd_font_variant = "mono" }, completion = { documentation = { auto_show = true, auto_show_delay_ms = 300, }, }, sources = { default = { "copilot", "lsp", "path", "snippets", "buffer" }, per_filetype = { lua = { inherit_defaults = true, "lazydev" }, }, providers = { lazydev = { name = "LazyDev", module = "lazydev.integrations.blink", score_offset = 100, }, copilot = { name = "copilot", module = "blink-copilot", score_offset = 100, async = true, }, }, }, fuzzy = { -- :h blink-cmp-config-fuzzy implementation = "prefer_rust_with_warning", }, }, config = function(_, opts) require("blink.cmp").setup(opts) vim.lsp.config("*", { flags = { debounce_text_changes = 150 }, capabilities = require("blink.cmp").get_lsp_capabilities(), }) end, }