require("lz.n").load({ { "friendly-snippets", }, { "luasnip", before = function() require("lz.n").trigger_load("friendly-snippets") end, after = function() require("luasnip.loaders.from_vscode").lazy_load() -- Load custom lua snippets require("luasnip.loaders.from_lua").load({ paths = { vim.fn.stdpath("config") .. "/snippets" } }) end, }, { "colorful-menu.nvim", after = function() require("colorful-menu").setup({}) end, }, { "blink.cmp", event = { "InsertEnter", "CmdlineEnter" }, before = function() -- Trigger lazydev so it's ready for blink source require("lz.n").trigger_load({ "lazydev.nvim", "luasnip", "colorful-menu.nvim" }) end, after = function() require("blink.cmp").setup({ keymap = { preset = "default", -- [Up/Down] [""] = { "select_next", "fallback" }, [""] = { "select_prev", "fallback" }, -- Overrides Signature Help -- [Insert Suggestion] [""] = { "select_and_accept", "fallback" }, -- [Remap Signature Help] -- Since we took , let's move signature help to (optional) [""] = { "show_signature", "hide_signature", "fallback" }, }, appearance = { nerd_font_variant = "mono", }, completion = { documentation = { auto_show = true, auto_show_delay_ms = 500, }, menu = { draw = { columns = { { "kind_icon" }, { "label", gap = 1 } }, components = { label = { text = function(ctx) return require("colorful-menu").blink_components_text(ctx) end, highlight = function(ctx) return require("colorful-menu").blink_components_highlight(ctx) end, }, }, }, }, }, cmdline = { completion = { menu = { auto_show = true, }, }, keymap = { preset = "inherit" }, }, sources = { default = { "lsp", "path", "snippets", "lazydev", }, providers = { lazydev = { module = "lazydev.integrations.blink", score_offset = 100 }, }, }, snippets = { preset = "luasnip" }, fuzzy = { implementation = "prefer_rust_with_warning" }, signature = { enabled = true, }, }) end, }, })