nix-config/modules/home-manager/coding/neovim/plugins/harpoon.nix
2025-06-06 16:35:16 +01:00

47 lines
839 B
Nix

{ config, lib, ... }:
let
leaderBinding = key: command: {
key = "<leader>${key}";
action = "<cmd>${command}<CR>";
options.silent = true;
};
in
{
plugins.harpoon = {
enable = true;
enableTelescope = true;
};
keymaps = lib.mkIf config.plugins.harpoon.enable (
[
{
key = "<leader>a";
action.__raw = "function() require'harpoon':list():add() end";
}
{
key = "<C-e>";
action.__raw = ''
function()
require 'harpoon'.ui:toggle_quick_menu(require'harpoon':list())
end
'';
}
]
++ (map
(num: leaderBinding "${toString num}" "lua require(\"harpoon\"):list():select(${toString num})")
[
1
2
3
4
5
6
7
8
9
]
)
);
}