-- nvim/.config/nvim/lua/plugins/completion/blink.lua
-- blink.cmp replaced nvim-cmp in late 2024. Much snappier.
return {
"saghen/blink.cmp",
version = "v0.*",
event = { "InsertEnter", "CmdlineEnter" },
dependencies = { "rafamadriz/friendly-snippets", "L3MON4D3/LuaSnip" },
opts = {
keymap = {
preset = "default",
["<Tab>"] = { "select_next", "snippet_forward", "fallback" },
["<S-Tab>"] = { "select_prev", "snippet_backward", "fallback" },
["<CR>"] = { "accept", "fallback" },
["<C-e>"] = { "hide", "fallback" },
["<C-space>"] = { "show", "show_documentation", "hide_documentation" },
},
snippets = {
preset = "luasnip",
},
sources = {
default = { "lsp", "path", "snippets", "buffer" },
providers = {
buffer = { min_keyword_length = 3, score_offset = -3 },
path = { opts = { trailing_slash = false } },
},
},
completion = {
accept = { auto_brackets = { enabled = true } },
list = { selection = { preselect = false, auto_insert = true } },
menu = {
border = "rounded",
draw = {
columns = {
{ "label", "label_description", gap = 1 },
{ "kind_icon", "kind", gap = 1 },
},
},
},
documentation = {
auto_show = true,
auto_show_delay_ms = 200,
window = { border = "rounded" },
},
ghost_text = { enabled = false },
},
signature = { enabled = true, window = { border = "rounded" } },
appearance = { use_nvim_cmp_as_default = false, nerd_font_variant = "mono" },
},
opts_extend = { "sources.default" },
}