blink: basic keymap option

This commit is contained in:
Ching Pei Yang 2024-12-23 02:51:21 +01:00
parent af399dfccc
commit 55525c2732
No known key found for this signature in database
GPG key ID: B3841364253DC4C8

View file

@ -1,15 +1,37 @@
{lib, ...}: let
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.types) listOf string;
inherit (lib.nvim.types) mkPluginSetupOption;
inherit (lib.options) mkEnableOption mkOption literalMD;
inherit (lib.types) listOf str either oneOf attrsOf;
inherit (lib.nvim.types) mkPluginSetupOption luaInline;
in {
options.vim.autocomplete.blink-cmp = {
enable = mkEnableOption "blink.cmp";
setupOpts = mkPluginSetupOption "blink.cmp" {
sources = mkOption {
type = listOf string;
description = "List of sources to enable for completion.";
default = ["lsp" "path" "snippets" "buffer"];
sources = {
default = mkOption {
type = listOf str;
description = "Default list of sources to enable for completion.";
default = ["lsp" "path" "snippets" "buffer"];
};
};
keymap = mkOption {
type = attrsOf (oneOf [luaInline str (listOf (either str luaInline))]);
default = {};
description = "blink.cmp keymap";
example = literalMD ''
```nix
"<Up>" = ["select_prev" "fallback"];
"<C-n>" = [
(lib.generators.mkLuaInline ''''
function(cmp)
if some_condition then return end -- runs the next command
return true -- doesn't run the next command
end,
'''')
"select_next"
];
```
'';
};
};
};