plugins/blink-cmp: update configuration

This commit is contained in:
Balssh 2024-11-04 22:40:54 +02:00 committed by nix-infra-bot
parent 898246c943
commit 77b495801c
2 changed files with 160 additions and 60 deletions

View file

@ -18,30 +18,64 @@ lib.nixvim.neovim-plugin.mkNeovimPlugin {
''; '';
settingsOptions = { settingsOptions = {
keymap = keymap = defaultNullOpts.mkNullableWithRaw' {
defaultNullOpts.mkNullableWithRaw (with types; either (attrsOf anything) (enum [ false ])) type = with types; either (attrsOf anything) (enum [ false ]);
{ pluginDefault = {
show = "<C-space>"; preset = "default";
hide = "<C-e>"; };
accept = "<Tab>"; example = {
select_prev = [ "<C-space>" = [
"<Up>" "show"
"<C-p>" "show_documentation"
]; "hide_documentation"
select_next = [ ];
"<Down>" "<C-e>" = [ "hide" ];
"<C-n>" "<C-y>" = [ "select_and_accept" ];
];
show_documentation = "<C-space>"; "<Up>" = [
hide_documentation = "<C-space>"; "select_prev"
scroll_documentation_up = "<C-b>"; "fallback"
scroll_documentation_down = "<C-f>"; ];
snippet_forward = "<Tab>"; "<Down>" = [
snippet_backward = "<S-Tab>"; "select_next"
} "fallback"
'' ];
Customize the keymaps for blink. "<C-p>" = [
''; "select_prev"
"fallback"
];
"<C-n>" = [
"select_next"
"fallback"
];
"<C-b>" = [
"scroll_documentation_up"
"fallback"
];
"<C-f>" = [
"scroll_documentation_down"
"fallback"
];
"<Tab>" = [
"snippet_forward"
"fallback"
];
"<S-Tab>" = [
"snippet_backward"
"fallback"
];
};
description = ''
The keymap can be:
- A preset (`'default'` | `'super-tab'` | `'enter'`)
- A table of `keys => command[]` (optionally with a "preset" key to merge with a preset)
When specifying 'preset' in the keymap table, the custom key mappings are merged with the preset,
and any conflicting keys will overwrite the preset mappings.
'';
};
highlight = { highlight = {
use_nvim_cmp_as_default = defaultNullOpts.mkBool false '' use_nvim_cmp_as_default = defaultNullOpts.mkBool false ''
@ -61,16 +95,18 @@ lib.nixvim.neovim-plugin.mkNeovimPlugin {
''; '';
}; };
documentation = { windows = {
auto_show = defaultNullOpts.mkBool false '' documentation = {
Enables automatically showing documentation when typing. auto_show = defaultNullOpts.mkBool false ''
''; Enables automatically showing documentation when typing.
auto_show_delay_ms = defaultNullOpts.mkUnsignedInt 500 '' '';
Delay, in milliseconds, after which documentation is shown. auto_show_delay_ms = defaultNullOpts.mkUnsignedInt 500 ''
''; Delay, in milliseconds, after which documentation is shown.
update_delay_ms = defaultNullOpts.mkUnsignedInt 50 '' '';
Delay, in milliseconds, after which documentation is updated. update_delay_ms = defaultNullOpts.mkUnsignedInt 50 ''
''; Delay, in milliseconds, after which documentation is updated.
'';
};
}; };
nerd_font_variant = nerd_font_variant =
@ -102,17 +138,7 @@ lib.nixvim.neovim-plugin.mkNeovimPlugin {
settingsExample = { settingsExample = {
keymap = { keymap = {
show = "<C-space>"; preset = "default";
hide = "<C-e>";
accept = "<C-y>";
select_prev = "<C-p>";
select_next = "<C-n>";
show_documentation = "<C-space>";
hide_documentation = "<C-space>";
scroll_documentation_up = "<C-b>";
scroll_documentation_down = "<C-f>";
snippet_forward = "<Tab>";
snippet_backward = "<S-Tab>";
}; };
highlight = { highlight = {
use_nvim_cmp_as_default = true; use_nvim_cmp_as_default = true;
@ -131,4 +157,10 @@ lib.nixvim.neovim-plugin.mkNeovimPlugin {
}; };
}; };
}; };
extraConfig = cfg: {
warnings = lib.optional (cfg.settings ? documentation) ''
Nixvim(plugins.blink): `settings.documentation` does not correspond to a known setting, use `settings.windows.documentation` instead.
'';
};
} }

View file

@ -10,26 +10,18 @@
enable = true; enable = true;
settings = { settings = {
keymap = { keymap = {
show = "<C-space>"; preset = "default";
hide = "<C-e>";
accept = "<Tab>";
select_prev = "<C-p>";
select_next = "<C-n>";
show_documentation = "<C-space>";
hide_documentation = "<C-space>";
scroll_documentation_up = "<C-b>";
scroll_documentation_down = "<C-f>";
snippet_forward = "<Tab>";
snippet_backward = "<S-Tab>";
}; };
highlight = { highlight = {
use_nvim_cmp_as_default = false; use_nvim_cmp_as_default = false;
}; };
nerd_font_variant = "normal"; nerd_font_variant = "normal";
documentation = { windows = {
auto_show = false; documentation = {
auto_show_delay_ms = 500; auto_show = false;
update_delay_ms = 50; auto_show_delay_ms = 500;
update_delay_ms = 50;
};
}; };
accept = { accept = {
auto_brackets = { auto_brackets = {
@ -63,4 +55,80 @@
}; };
}; };
}; };
example = {
plugins.blink-cmp = {
enable = true;
settings = {
fuzzy = {
prebuilt_binaries = {
download = false;
};
};
keymap = {
"<C-space>" = [
"show"
"show_documentation"
"hide_documentation"
];
"<C-e>" = [ "hide" ];
"<C-y>" = [ "select_and_accept" ];
"<Up>" = [
"select_prev"
"fallback"
];
"<Down>" = [
"select_next"
"fallback"
];
"<C-p>" = [
"select_prev"
"fallback"
];
"<C-n>" = [
"select_next"
"fallback"
];
"<C-b>" = [
"scroll_documentation_up"
"fallback"
];
"<C-f>" = [
"scroll_documentation_down"
"fallback"
];
"<Tab>" = [
"snippet_forward"
"fallback"
];
"<S-Tab>" = [
"snippet_backward"
"fallback"
];
};
highlight = {
use_nvim_cmp_as_default = true;
};
windows = {
documentation = {
auto_show = true;
};
};
accept = {
auto_brackets = {
enabled = true;
};
};
trigger = {
signature_help = {
enabled = true;
};
};
};
};
};
} }