diff --git a/modules/keymaps.nix b/modules/keymaps.nix index 34600e17..f598d21f 100644 --- a/modules/keymaps.nix +++ b/modules/keymaps.nix @@ -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 + -- }}} + ''; }; } diff --git a/plugins/utils/which-key.nix b/plugins/utils/which-key.nix index 7ab4f905..a729ea47 100644 --- a/plugins/utils/which-key.nix +++ b/plugins/utils/which-key.nix @@ -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 = { + "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}) + '' + ); }; } diff --git a/tests/test-sources/plugins/utils/which-key.nix b/tests/test-sources/plugins/utils/which-key.nix index 54abfc7f..6ac2f971 100644 --- a/tests/test-sources/plugins/utils/which-key.nix +++ b/tests/test-sources/plugins/utils/which-key.nix @@ -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"; }; }