return { 'ThePrimeagen/harpoon', branch = 'harpoon2', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope.nvim', }, event = 'VeryLazy', config = function() local harpoon = require('harpoon') local map = vim.keymap harpoon:setup() 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 map.set('n', 'a', function() harpoon:list():add() end, { desc = 'Harpoon this' }) map.set('n', '', function() toggle_telescope(harpoon:list()) end, { desc = 'Harpoon UI' }) map.set('n', '', function() harpoon:list():select(1) end, { desc = 'Mark 1' }) map.set('n', '', function() harpoon:list():select(2) end, { desc = 'Mark 2' }) map.set('n', '', function() harpoon:list():select(3) end, { desc = 'Mark 3' }) map.set('n', '', function() harpoon:list():select(4) end, { desc = 'Mark 4' }) map.set('n', '', function() harpoon:list():prev() end, { desc = 'Cycle back' }) map.set('n', '', function() harpoon:list():next() end, { desc = 'Cycle forward' }) end, }