nix/modules/home-manager/cli/neovim/files/plugins/blink-cmp.lua

99 lines
2.2 KiB
Lua

require("blink.cmp").setup({
keymap = {
preset = "cmdline",
['<C-b>'] = { 'scroll_documentation_up', 'fallback' },
['<C-f>'] = { '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 = "󰅲",
}
}
})