require("blink.cmp").setup({ keymap = { preset = "cmdline", [''] = { 'scroll_documentation_up', 'fallback' }, [''] = { 'scroll_documentation_down', 'fallback' }, }, completion = { menu = { draw = { components = { label = { width = { fill = true, max = 60, }, }, }, columns = { { "label", "label_description", gap = 1 }, { "kind_icon", "kind" } }, }, }, documentation = { auto_show = true }, list = { max_items = 30; selection = { preselect = false, auto_insert = true, }, cycle = { from_bottom = true, from_top = true, }, }, }, sources = { default = { "lsp", "path", "snippets", "buffer", "emoji", "dictionary", }, providers = { emoji = { module = "blink-emoji", name = "Emoji", score_offset = 15, -- Tune by preference opts = { insert = true }, -- Insert emoji (default) or complete its name should_show_items = function() return vim.tbl_contains({ "gitcommit", "markdown" }, vim.o.filetype) end, }, dictionary = { module = "blink-cmp-dictionary", name = "Dict", min_keyword_length = 3, max_items = 10, opts = { dictionary_files = function() if vim.bo.filetype == "markdown" or vim.bo.filetype == "gitcommit" then return {} end return {} end, }, }, }, }, cmdline = { enabled = false, }, appearance = { nerd_font_variant = "normal", kind_icons = { Text = "", Method = "󰆧", Function = "󰊕", Constructor = "", Field = "󰇽", Variable = "󰂡", Class = "󰠱", Interface = "", Module = "", Property = "󰜢", Unit = "", Value = "󰎠", Enum = "", Keyword = "󰌋", Snippet = "", Color = "󰏘", File = "󰈙", Reference = "", Folder = "󰉋", EnumMember = "", Constant = "󰏿", Struct = "", Event = "", Operator = "󰆕", TypeParameter = "󰅲", } } })