plugins/which-key: remove which-key logic from keymap module

This commit is contained in:
Gaetan Lepage 2023-09-26 22:41:21 +02:00 committed by Gaétan Lepage
parent dd6a114e52
commit 05b77732e3
3 changed files with 31 additions and 31 deletions

View file

@ -280,32 +280,15 @@ in {
(config.keymaps ++ modeMapsAsList);
in
optionalString (mappings != [])
(
if config.plugins.which-key.enable
then ''
-- Set up keybinds {{{
do
local __nixvim_binds = ${helpers.toLuaObject mappings}
for i, map in ipairs(__nixvim_binds) do
if not map.action then
require("which-key").register({[map.key] = {name = map.options.desc }})
else
vim.keymap.set(map.mode, map.key, map.action, map.options)
end
end
''
-- Set up keybinds {{{
do
local __nixvim_binds = ${helpers.toLuaObject mappings}
for i, map in ipairs(__nixvim_binds) do
vim.keymap.set(map.mode, map.key, map.action, map.options)
end
-- }}}
''
else ''
-- Set up keybinds {{{
do
local __nixvim_binds = ${helpers.toLuaObject mappings}
for i, map in ipairs(__nixvim_binds) do
vim.keymap.set(map.mode, map.key, map.action, map.options)
end
end
-- }}}
''
);
end
-- }}}
'';
};
}

View file

@ -14,6 +14,15 @@ in {
package = helpers.mkPackageOption "whick-key-nvim" pkgs.vimPlugins.which-key-nvim;
registrations = mkOption {
type = with types; attrsOf str;
default = {};
description = "Manually register the description of mappings.";
example = {
"<leader>p" = "Find git files with telescope";
};
};
plugins = {
marks = helpers.defaultNullOpts.mkBool true "shows a list of your marks on ' and `";
@ -194,8 +203,14 @@ in {
mkIf cfg.enable {
extraPlugins = [cfg.package];
extraConfigLua = ''
require("which-key").setup(${helpers.toLuaObject setupOptions})
'';
extraConfigLua =
''
require("which-key").setup(${helpers.toLuaObject setupOptions})
''
+ (
optionalString (cfg.registrations != {}) ''
require("which-key").register(${helpers.toLuaObject cfg.registrations})
''
);
};
}

View file

@ -6,6 +6,10 @@
defaults = {
plugins.which-key = {
enable = true;
# Simple mapping with only Description
registrations."ff" = "Test";
plugins = {
marks = true;
registers = true;
@ -86,7 +90,5 @@
filetypes = [];
};
};
# Simple mapping with only Description
maps.byMode.normal."ff".options.desc = "Test";
};
}