nix-community.nixvim/tests/test-sources/plugins/by-name/blink-cmp/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

418 lines
13 KiB
Nix
Raw Normal View History

2024-10-10 23:39:56 +03:00
{
empty = {
test.runNvim = false;
plugins.blink-cmp.enable = true;
};
2024-12-30 23:55:58 +01:00
defaults = {
2024-10-10 23:39:56 +03:00
test.runNvim = false;
plugins.blink-cmp = {
enable = true;
2024-12-30 23:55:58 +01:00
2024-10-10 23:39:56 +03:00
settings = {
keymap = {
preset = "default";
2024-10-10 23:39:56 +03:00
};
2024-12-30 23:55:58 +01:00
completion = {
keyword = {
range = "prefix";
regex = "[-_]\\|\\k";
exclude_from_prefix_regex = "-";
};
trigger = {
prefetch_on_insert = false;
show_in_snippet = true;
show_on_keyword = true;
show_on_trigger_character = true;
show_on_blocked_trigger_characters.__raw = ''
function()
if vim.api.nvim_get_mode().mode == 'c' then return {} end
return { ' ', '\n', '\t' }
end
'';
show_on_accept_on_trigger_character = true;
show_on_insert_on_trigger_character = true;
show_on_x_blocked_trigger_characters = [
"'"
''"''
"("
"{"
"["
];
};
list = {
max_items = 200;
selection = {
preselect = true;
auto_insert = true;
};
2024-12-30 23:55:58 +01:00
cycle = {
from_bottom = true;
from_top = true;
};
};
accept = {
create_undo_point = true;
auto_brackets = {
enabled = true;
default_brackets = [
"("
")"
];
override_brackets_for_filetypes = { };
force_allow_filetypes = [ ];
blocked_filetypes = [ ];
kind_resolution = {
enabled = true;
blocked_filetypes = [
"typescriptreact"
"javascriptreact"
"vue"
"rust"
];
};
semantic_token_resolution = {
enabled = true;
blocked_filetypes = [
"java"
];
timeout_ms = 400;
};
};
};
menu = {
enabled = true;
min_width = 15;
max_height = 10;
border = "none";
winblend = 0;
winhighlight = "Normal:BlinkCmpMenu,FloatBorder:BlinkCmpMenuBorder,CursorLine:BlinkCmpMenuSelection,Search:None";
scrolloff = 2;
scrollbar = true;
direction_priority = [
"s"
"n"
];
order = {
n = "bottom_up";
s = "top_down";
};
auto_show = true;
cmdline_position.__raw = ''
function()
if vim.g.ui_cmdline_pos ~= nil then
local pos = vim.g.ui_cmdline_pos -- (1, 0)-indexed
return { pos[1] - 1, pos[2] }
end
local height = (vim.o.cmdheight == 0) and 1 or vim.o.cmdheight
return { vim.o.lines - height, 0 }
end
'';
draw = {
align_to = "label";
padding = 1;
gap = 1;
treesitter = { };
columns = [
[ "kind_icon" ]
{
__unkeyed-1 = "label";
__unkeyed-2 = "label_description";
gap = 1;
}
];
components = {
kind_icon = {
ellipsis = false;
text.__raw = "function(ctx) return ctx.kind_icon .. ctx.icon_gap end";
highlight.__raw = ''
function(ctx)
return require('blink.cmp.completion.windows.render.tailwind').get_hl(ctx) or ('BlinkCmpKind' .. ctx.kind)
end
'';
};
kind = {
ellipsis = false;
width.fill = true;
text.__raw = "function(ctx) return ctx.kind end";
highlight.__raw = ''
function(ctx)
return require('blink.cmp.completion.windows.render.tailwind').get_hl(ctx) or ('BlinkCmpKind' .. ctx.kind)
end
'';
};
label = {
width = {
fill = true;
max = 60;
};
text.__raw = "function(ctx) return ctx.label .. ctx.label_detail end";
highlight.__raw = ''
function(ctx)
-- label and label details
local label = ctx.label
local highlights = {
{ 0, #label, group = ctx.deprecated and 'BlinkCmpLabelDeprecated' or 'BlinkCmpLabel' },
}
if ctx.label_detail then
table.insert(highlights, { #label, #label + #ctx.label_detail, group = 'BlinkCmpLabelDetail' })
end
if vim.list_contains(ctx.self.treesitter, ctx.source_id) then
-- add treesitter highlights
vim.list_extend(highlights, require('blink.cmp.completion.windows.render.treesitter').highlight(ctx))
end
-- characters matched on the label by the fuzzy matcher
for _, idx in ipairs(ctx.label_matched_indices) do
table.insert(highlights, { idx, idx + 1, group = 'BlinkCmpLabelMatch' })
end
return highlights
end
'';
};
label_description = {
width.max = 30;
text.__raw = "function(ctx) return ctx.label_description end";
highlight = "BlinkCmpLabelDescription";
};
source_name = {
width.max = 30;
text.__raw = "function(ctx) return ctx.source_name end";
highlight = "BlinkCmpSource";
};
};
};
};
documentation = {
auto_show = false;
auto_show_delay_ms = 500;
update_delay_ms = 50;
2024-12-30 23:55:58 +01:00
treesitter_highlighting = true;
window = {
min_width = 10;
max_width = 80;
max_height = 20;
desired_min_width = 50;
desired_min_height = 10;
border = "padded";
winblend = 0;
winhighlight = "Normal:BlinkCmpDoc,FloatBorder:BlinkCmpDocBorder,EndOfBuffer:BlinkCmpDoc";
scrollbar = true;
direction_priority = {
menu_north = [
"e"
"w"
"n"
"s"
];
menu_south = [
"e"
"w"
"s"
"n"
];
};
};
};
2024-12-30 23:55:58 +01:00
ghost_text = {
2024-10-10 23:39:56 +03:00
enabled = false;
};
};
fuzzy = {
2024-12-30 23:55:58 +01:00
use_typo_resistance = true;
2024-10-10 23:39:56 +03:00
use_frecency = true;
use_proximity = true;
2024-12-30 23:55:58 +01:00
use_unsafe_no_lock = false;
sorts = [
"score"
"sort_text"
];
prebuilt_binaries = {
download = true;
ignore_version_mismatch = false;
force_version = null;
force_system_triple = null;
extra_curl_args = [ ];
2024-10-10 23:39:56 +03:00
};
};
sources = {
2024-12-30 23:55:58 +01:00
default = [
"lsp"
"path"
"snippets"
"buffer"
];
per_filetype = { };
cmdline.__raw = ''
function()
local type = vim.fn.getcmdtype()
-- Search forward and backward
if type == '/' or type == '?' then return { 'buffer' } end
-- Commands
if type == ':' then return { 'cmdline' } end
return {}
end
'';
transform_items.__raw = "function(_, items) return items end";
min_keyword_length = 0;
providers = {
lsp = {
name = "LSP";
module = "blink.cmp.sources.lsp";
fallbacks = [ "buffer" ];
transform_items.__raw = ''
function(_, items)
-- demote snippets
for _, item in ipairs(items) do
if item.kind == require('blink.cmp.types').CompletionItemKind.Snippet then
item.score_offset = item.score_offset - 3
end
end
-- filter out text items, since we have the buffer source
return vim.tbl_filter(
function(item) return item.kind ~= require('blink.cmp.types').CompletionItemKind.Text end,
items
)
end
'';
};
path = {
name = "Path";
module = "blink.cmp.sources.path";
score_offset = 3;
fallbacks = [ "buffer" ];
};
snippets = {
name = "Snippets";
module = "blink.cmp.sources.snippets";
score_offset = -3;
};
luasnip = {
name = "Luasnip";
module = "blink.cmp.sources.luasnip";
score_offset = -3;
};
buffer = {
name = "Buffer";
module = "blink.cmp.sources.buffer";
score_offset = -3;
};
cmdline = {
name = "cmdline";
module = "blink.cmp.sources.cmdline";
};
};
};
signature = {
enabled = false;
trigger = {
enabled = true;
blocked_trigger_characters = [ ];
blocked_retrigger_characters = [ ];
show_on_insert_on_trigger_character = true;
};
window = {
min_width = 1;
max_width = 100;
max_height = 10;
border = "padded";
winblend = 0;
winhighlight = "Normal:BlinkCmpSignatureHelp,FloatBorder:BlinkCmpSignatureHelpBorder";
scrollbar = false;
direction_priority = [
"n"
"s"
2024-10-10 23:39:56 +03:00
];
2024-12-30 23:55:58 +01:00
treesitter_highlighting = true;
};
};
snippets = {
expand.__raw = "function(snippet) vim.snippet.expand(snippet) end";
active.__raw = "function(filter) return vim.snippet.active(filter) end";
jump.__raw = "function(direction) vim.snippet.jump(direction) end";
};
appearance = {
highlight_ns.__raw = "vim.api.nvim_create_namespace('blink_cmp')";
use_nvim_cmp_as_default = false;
nerd_font_variant = "mono";
kind_icons = {
Text = "󰉿";
Method = "󰊕";
Function = "󰊕";
Constructor = "󰒓";
Field = "󰜢";
Variable = "󰆦";
Property = "󰖷";
Class = "󱡠";
Interface = "󱡠";
Struct = "󱡠";
Module = "󰅩";
Unit = "󰪚";
Value = "󰦨";
Enum = "󰦨";
EnumMember = "󰦨";
Keyword = "󰻾";
Constant = "󰏿";
Snippet = "󱄽";
Color = "󰏘";
File = "󰈔";
Reference = "󰬲";
Folder = "󰉋";
Event = "󱐋";
Operator = "󰪚";
TypeParameter = "󰬛";
2024-10-10 23:39:56 +03:00
};
};
};
};
};
example = {
plugins.blink-cmp = {
enable = true;
settings = {
2024-12-30 23:55:58 +01:00
keymap.preset = "super-tab";
sources = {
providers = {
buffer.score_offset = -7;
lsp.fallbacks = [ ];
cmdline.enabled = {
__raw = ''
function()
return true
end
'';
};
};
2024-12-30 23:55:58 +01:00
cmdline = [ ];
};
2024-12-30 23:55:58 +01:00
completion = {
accept = {
auto_brackets = {
enabled = true;
semantic_token_resolution.enabled = false;
};
};
2024-12-30 23:55:58 +01:00
documentation.auto_show = true;
};
2024-12-30 23:55:58 +01:00
appearance = {
use_nvim_cmp_as_default = true;
nerd_font_variant = "normal";
};
2024-12-30 23:55:58 +01:00
signature.enabled = true;
};
};
};
lsp-compat = {
plugins.blink-cmp = {
enable = true;
setupLspCapabilities = true;
};
plugins.lsp.enable = true;
};
2024-10-10 23:39:56 +03:00
}