{ lib, ... }: { imports = let basePluginPath = [ "plugins" "harpoon" ]; commonWarning = '' /!\ `plugins.harpoon` has been refactored to now use harpoon2 (https://github.com/ThePrimeagen/harpoon/tree/harpoon2). ''; keymapsWarning = '' ${commonWarning} The `plugins.harpoon` module no longer allows you to define your keymaps. Please, manually define your keymaps using the top-level `keymaps` option. For example, ``` plugins.harpoon.keymaps = { addFile = "a"; toggleQuickMenu = ""; navFile = { "1" = ""; "2" = ""; "3" = ""; "4" = ""; }; }; ``` would become: ``` keymaps = [ { mode = "n"; key = "a"; action.__raw = "function() require'harpoon':list():add() end"; } { mode = "n"; key = ""; action.__raw = "function() require'harpoon'.ui:toggle_quick_menu(require'harpoon':list()) end"; } { mode = "n"; key = ""; action.__raw = "function() require'harpoon':list():select(1) end"; } { mode = "n"; key = ""; action.__raw = "function() require'harpoon':list():select(2) end"; } { mode = "n"; key = ""; action.__raw = "function() require'harpoon':list():select(3) end"; } { mode = "n"; key = ""; action.__raw = "function() require'harpoon':list():select(4) end"; } ]; ``` ''; optionNames = [ "saveOnToggle" "saveOnChange" "enterOnSendcmd" "tmuxAutocloseWindows" "excludedFiletypes" "markBranch" "projects" "menu" ]; in (map ( optionName: lib.mkRemovedOptionModule (basePluginPath ++ [ optionName ]) '' ${commonWarning} You may now use `plugins.harpoon.settings` option to forward any value to the `require("harpoon"):setup()` call. '' ) optionNames) ++ [ (lib.mkRemovedOptionModule (basePluginPath ++ [ "keymaps" ]) keymapsWarning) (lib.mkRemovedOptionModule (basePluginPath ++ [ "keymapsSilent" ]) keymapsWarning) ]; }