2023-03-14 15:21:35 +01:00
|
|
|
{
|
|
|
|
lib,
|
2023-11-06 15:04:08 +01:00
|
|
|
helpers,
|
|
|
|
config,
|
|
|
|
pkgs,
|
2023-03-14 15:21:35 +01:00
|
|
|
...
|
|
|
|
}:
|
2024-05-05 19:39:35 +02:00
|
|
|
with lib;
|
|
|
|
let
|
2023-03-14 15:21:35 +01:00
|
|
|
cfg = config.plugins.vim-bbye;
|
2024-05-05 19:39:35 +02:00
|
|
|
in
|
|
|
|
{
|
2023-03-14 15:21:35 +01:00
|
|
|
options.plugins.vim-bbye = {
|
|
|
|
enable = mkEnableOption "vim-bbye";
|
|
|
|
|
2024-09-04 22:00:43 +01:00
|
|
|
package = lib.mkPackageOption pkgs "vim-bbye" {
|
|
|
|
default = [
|
|
|
|
"vimPlugins"
|
|
|
|
"vim-bbye"
|
|
|
|
];
|
|
|
|
};
|
2023-03-14 15:21:35 +01:00
|
|
|
|
|
|
|
keymapsSilent = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "Whether vim-bbye keymaps should be silent.";
|
|
|
|
default = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
keymaps = {
|
|
|
|
bdelete = helpers.mkNullOrOption types.str ''
|
|
|
|
Keymap for deleting the current buffer.";
|
|
|
|
'';
|
|
|
|
|
|
|
|
bwipeout = helpers.mkNullOrOption types.str ''
|
|
|
|
Keymap for completely deleting the current buffer.";
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
2024-05-05 19:39:35 +02:00
|
|
|
extraPlugins = [ cfg.package ];
|
2023-03-14 15:21:35 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
keymaps =
|
|
|
|
with cfg.keymaps;
|
2023-10-02 15:44:06 +02:00
|
|
|
helpers.keymaps.mkKeymaps
|
2024-05-05 19:39:35 +02:00
|
|
|
{
|
|
|
|
mode = "n";
|
|
|
|
options.silent = cfg.keymapsSilent;
|
|
|
|
}
|
2023-09-15 14:35:13 +02:00
|
|
|
(
|
2024-05-05 19:39:35 +02:00
|
|
|
(optional (bdelete != null) {
|
2023-09-15 14:35:13 +02:00
|
|
|
key = bdelete;
|
2023-03-14 15:21:35 +01:00
|
|
|
action = ":Bdelete<CR>";
|
2024-05-05 19:39:35 +02:00
|
|
|
})
|
|
|
|
++ (optional (bwipeout != null) {
|
2023-09-15 14:35:13 +02:00
|
|
|
key = bwipeout;
|
2023-03-14 15:21:35 +01:00
|
|
|
action = ":Bwipeout<CR>";
|
2024-05-05 19:39:35 +02:00
|
|
|
})
|
|
|
|
);
|
2023-03-14 15:21:35 +01:00
|
|
|
};
|
|
|
|
}
|