General
Blink cmp has a lot of configuration options, the following code block highlights some changes you're most likely to care about. For more information, check out the additional pages.
For more common configurations, see the recipes.
Do not copy this entire configuration! It contains only non-default options
lua
{
-- Disable for some filetypes
enabled = function()
return not vim.tbl_contains({ "lua", "markdown" }, vim.bo.filetype)
and vim.bo.buftype ~= "prompt"
and vim.b.completion ~= false
end,
completion = {
-- 'prefix' will fuzzy match on the text before the cursor
-- 'full' will fuzzy match on the text before *and* after the cursor
-- example: 'foo_|_bar' will match 'foo_' for 'prefix' and 'foo__bar' for 'full'
keyword = { range = 'full' },
-- Disable auto brackets
-- NOTE: some LSPs may add auto brackets themselves anyway
accept = { auto_brackets = { enabled = false }, },
-- Don't select by default, auto insert on selection
list = { selection = { preselect = false, auto_insert = true } },
-- or set either per mode via a function
list = { selection = { preselect = function(ctx) return ctx.mode ~= 'cmdline' end } },
menu = {
-- Don't automatically show the completion menu
auto_show = false,
-- nvim-cmp style menu
draw = {
columns = {
{ "label", "label_description", gap = 1 },
{ "kind_icon", "kind" }
},
}
},
-- Show documentation when selecting a completion item
documentation = { auto_show = true, auto_show_delay_ms = 500 },
-- Display a preview of the selected item on the current line
ghost_text = { enabled = true },
},
sources = {
-- Remove 'buffer' if you don't want text completions, by default it's only enabled when LSP returns no items
default = { 'lsp', 'path', 'snippets', 'buffer' },
-- Disable cmdline completions
cmdline = {},
},
-- Use a preset for snippets, check the snippets documentation for more information
snippets = { preset = 'default' | 'luasnip' | 'mini_snippets' },
-- Experimental signature help support
signature = { enabled = true }
}