From d560fc6183b4c6bf68f0846e6b1ef906f2c78929 Mon Sep 17 00:00:00 2001 From: Haseeb Majid Date: Wed, 18 Oct 2023 17:20:03 +0100 Subject: [PATCH] plugins/harpoon: allow to enable the telescope extension (#624) --- plugins/utils/harpoon.nix | 18 +++++++++++++++++- tests/test-sources/plugins/utils/harpoon.nix | 19 ++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/plugins/utils/harpoon.nix b/plugins/utils/harpoon.nix index 5d7ca3b0..5eb8e833 100644 --- a/plugins/utils/harpoon.nix +++ b/plugins/utils/harpoon.nix @@ -27,6 +27,8 @@ in { package = helpers.mkPackageOption "harpoon" pkgs.vimPlugins.harpoon; + enableTelescope = mkEnableOption "Enable telescope integration"; + keymapsSilent = mkOption { type = types.bool; description = "Whether harpoon keymaps should be silent."; @@ -198,10 +200,24 @@ in { // cfg.extraOptions; in mkIf cfg.enable { + assertions = [ + { + assertion = config.plugins.telescope.enable -> cfg.enableTelescope; + message = ''Nixvim: The harpoon telescope integration needs telescope to function as intended''; + } + ]; + extraPlugins = [cfg.package]; - extraConfigLua = '' + extraConfigLua = let + telescopeCfg = ''require("telescope").load_extension("harpoon")''; + in '' require('harpoon').setup(${helpers.toLuaObject setupOptions}) + ${ + if cfg.enableTelescope + then telescopeCfg + else "" + } ''; keymaps = let diff --git a/tests/test-sources/plugins/utils/harpoon.nix b/tests/test-sources/plugins/utils/harpoon.nix index 1c4b8eae..380eb26f 100644 --- a/tests/test-sources/plugins/utils/harpoon.nix +++ b/tests/test-sources/plugins/utils/harpoon.nix @@ -7,14 +7,19 @@ plugins.harpoon.enable = true; }; - example = { + telescopeEnabled = { # Harpoon expects to access `~/.local/share/nvim/harpoon.json` which is not available in the # test environment tests.dontRun = true; + plugins.telescope = { + enable = true; + }; + plugins.harpoon = { enable = true; + enableTelescope = true; keymapsSilent = true; keymaps = { addFile = "a"; @@ -59,4 +64,16 @@ }; }; }; + + telescopeDisabled = { + # Harpoon expects to access `~/.local/share/nvim/harpoon.json` which is not available in the + # test environment + tests.dontRun = true; + + plugins.harpoon = { + enable = true; + + enableTelescope = false; + }; + }; }