From 3a380e1a0a15d8996ec4a47bc982af18bc2ec6ae Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Thu, 29 Aug 2024 16:51:13 +0200 Subject: [PATCH] Nvim: harpoon2 --- modules/hm/vim.nix | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/modules/hm/vim.nix b/modules/hm/vim.nix index 968f224..cac2c34 100644 --- a/modules/hm/vim.nix +++ b/modules/hm/vim.nix @@ -360,6 +360,48 @@ in }) ''; } + + { + plugin = vp.harpoon2; + type = "lua"; + config = '' + local harpoon = require("harpoon") + harpoon:setup() + + vim.keymap.set("n", "a", function() harpoon:list():add() end) + vim.keymap.set("n", "", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) + + vim.keymap.set("n", "", function() harpoon:list():select(1) end) + vim.keymap.set("n", "", function() harpoon:list():select(2) end) + vim.keymap.set("n", "", function() harpoon:list():select(3) end) + vim.keymap.set("n", "", function() harpoon:list():select(4) end) + + -- Toggle previous & next buffers stored within Harpoon list + vim.keymap.set("n", "", function() harpoon:list():prev() end) + vim.keymap.set("n", "", function() harpoon:list():next() end) + + -- basic telescope configuration + local conf = require("telescope.config").values + local function toggle_telescope(harpoon_files) + local file_paths = {} + for _, item in ipairs(harpoon_files.items) do + table.insert(file_paths, item.value) + end + + require("telescope.pickers").new({}, { + prompt_title = "Harpoon", + finder = require("telescope.finders").new_table({ + results = file_paths, + }), + previewer = conf.file_previewer({}), + sorter = conf.generic_sorter({}), + }):find() + end + + vim.keymap.set("n", "", function() toggle_telescope(harpoon:list()) end, + { desc = "Open harpoon window" }) + ''; + } ]; # settings = { ignorecase = true; };