2024-04-22 13:29:58 +02:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
helpers,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib;
|
2024-09-01 12:52:28 +01:00
|
|
|
helpers.neovim-plugin.mkNeovimPlugin {
|
2024-05-05 19:39:35 +02:00
|
|
|
name = "hydra";
|
|
|
|
originalName = "hydra.nvim";
|
2024-09-02 14:05:11 +01:00
|
|
|
package = "hydra-nvim";
|
2024-04-22 13:29:58 +02:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
maintainers = [ maintainers.GaetanLepage ];
|
2024-04-22 13:29:58 +02:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
extraOptions = {
|
|
|
|
# A list of `Hydra` definitions
|
|
|
|
hydras = import ./hydras-option.nix { inherit lib helpers; };
|
|
|
|
};
|
2024-04-22 13:29:58 +02:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
settingsOptions = import ./hydra-config-opts.nix { inherit lib helpers; };
|
2024-04-22 13:29:58 +02:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
settingsExample = {
|
|
|
|
exit = false;
|
|
|
|
foreign_keys = "run";
|
|
|
|
color = "red";
|
|
|
|
buffer = true;
|
|
|
|
invoke_on_body = false;
|
|
|
|
desc = null;
|
|
|
|
on_enter = ''
|
|
|
|
function()
|
|
|
|
print('hello')
|
|
|
|
end
|
|
|
|
'';
|
|
|
|
timeout = 5000;
|
|
|
|
hint = false;
|
|
|
|
};
|
2024-04-22 13:29:58 +02:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
callSetup = false;
|
|
|
|
extraConfig = cfg: {
|
|
|
|
extraConfigLua = ''
|
|
|
|
hydra = require('hydra')
|
2024-04-22 13:29:58 +02:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
hydra.setup(${helpers.toLuaObject cfg.settings})
|
2024-04-22 13:29:58 +02:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
__hydra_defs = ${helpers.toLuaObject cfg.hydras}
|
|
|
|
for _, hydra_config in ipairs(__hydra_defs) do
|
|
|
|
hydra(hydra_config)
|
|
|
|
end
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
}
|