return { "ThePrimeagen/harpoon", branch = "harpoon2", dependencies = { "nvim-lua/plenary.nvim" }, config = function() local harpoon = require("harpoon") harpoon:setup() vim.keymap.set("n", "ha", function() harpoon:list():add() end, { desc = "Add buffer to harpoon" }) -- vim.keymap.set("n", "he", function() -- harpoon.ui:toggle_quick_menu(harpoon:list()) -- end, { desc = "Harpoon List" }) -- vim.keymap.set("n", "h1", function() harpoon:list():select(1) end, { desc = "Harpoon select 1" }) vim.keymap.set("n", "h2", function() harpoon:list():select(2) end, { desc = "Harpoon select 2" }) vim.keymap.set("n", "h3", function() harpoon:list():select(3) end, { desc = "Harpoon select 3" }) vim.keymap.set("n", "h4", function() harpoon:list():select(4) end, { desc = "Harpoon select 4" }) -- Toggle previous & next buffers stored within Harpoon list vim.keymap.set("n", "hp", function() harpoon:list():prev() end, { desc = "Harpoon previous" }) vim.keymap.set("n", "hn", function() harpoon:list():next() end, { desc = "Harpoon next" }) -- 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", "he", function() toggle_telescope(harpoon:list()) end, { desc = "Open harpoon window" }) end, }