-- Performant, batteries-included completion plugin for Neovim. -- https://github.com/Saghen/blink.cmp return { "blink.cmp", event = "InsertEnter", after = function() require("blink-cmp").setup({ -- Enables keymaps, completions and signature help when true (doesn't apply to cmdline or term) -- -- If the function returns 'force', the default conditions for disabling the plugin will be ignored -- Default conditions: (vim.bo.buftype ~= 'prompt' and vim.b.completion ~= false) -- Note that the default conditions are ignored when `vim.b.completion` is explicitly set to `true` -- -- Exceptions: vim.bo.filetype == 'dap-repl' --enabled = function() -- return not vim.tbl_contains({ "lua", "markdown" }, vim.bo.filetype) --end, -- Disable cmdline -- cmdline = { enabled = false }, 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 = "prefix" }, -- Disable auto brackets -- NOTE: some LSPs may add auto brackets themselves anyway accept = { auto_brackets = { enabled = false } }, list = { selection = { preselect = true, auto_insert = true, }, }, -- or set via a function --list = { -- selection = { -- preselect = function(ctx) -- return vim.bo.filetype ~= "markdown" -- end, -- }, --}, menu = { auto_show = true, -- 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 = 2000 }, -- Whether to display a preview of the selected item on the current line ghost_text = { enabled = false }, }, keymap = { -- set to 'none' to disable the 'default' preset preset = "none", [""] = { "show", "show_documentation", "hide_documentation" }, [""] = { "hide", "fallback" }, [""] = { "accept", "fallback" }, --[""] = { "accept", "fallback" }, --[""] = { "snippet_forward", "fallback" }, --[""] = { "snippet_backward", "fallback" }, [""] = { "select_prev", "fallback" }, [""] = { "select_next", "fallback" }, [""] = { "select_prev", "fallback_to_mappings" }, [""] = { "select_next", "fallback_to_mappings" }, [""] = { "scroll_documentation_up", "fallback" }, [""] = { "scroll_documentation_down", "fallback" }, [""] = { "show_signature", "hide_signature", "fallback" }, }, 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" }, }, -- Use a preset for snippets, check the snippets documentation for more information snippets = { preset = "default" }, -- | "luasnip" | "mini_snippets" | "vsnip" -- Experimental signature help support signature = { enabled = true }, }) end, }