add({ "saghen/blink.lib", { src = "saghen/blink.cmp", build = "cargo build --release" }, { src = "L3MON4D3/LuaSnip", build = "make install_jsregexp" }, "rafamadriz/friendly-snippets", }) require("blink.cmp").setup({ fuzzy = { implementation = "prefer_rust" }, snippets = { preset = "luasnip" }, sources = { default = function() local type = vim.fn.getcmdtype() if type == "/" or type == "?" then return { "buffer" } end if type == ":" then return { "cmdline" } end return { "lsp", "path", "snippets", "buffer" } end, }, completion = { ghost_text = { enabled = true }, list = { selection = { preselect = false, auto_insert = true, }, }, documentation = { window = { border = "rounded" }, auto_show = true, auto_show_delay_ms = 50, }, menu = { border = "rounded", draw = { components = { kind_icon = { text = function(ctx) local kind_icon, _, _ = require("mini.icons").get("lsp", ctx.kind) return kind_icon end, highlight = function(ctx) local _, hl, _ = require("mini.icons").get("lsp", ctx.kind) return hl end, }, kind = { highlight = function(ctx) local _, hl, _ = require("mini.icons").get("lsp", ctx.kind) return hl end, }, }, }, }, }, signature = { window = { border = "rounded" }, }, keymap = { preset = "none", [""] = { "select_prev", "snippet_backward", "fallback" }, [""] = { "select_next", "snippet_forward", "fallback" }, [""] = { "accept", "fallback" }, [""] = { "hide", "show" }, [""] = { "show", "show_documentation", "hide_documentation" }, [""] = { "scroll_documentation_up", "fallback" }, [""] = { "scroll_documentation_down", "fallback" }, }, }) local luasnip = require("luasnip") require("luasnip.loaders.from_vscode").lazy_load() require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" }, }) luasnip.filetype_extend("mdx", { "markdown" })