return { "theprimeagen/harpoon", branch = "harpoon2", dependencies = { "nvim-lua/plenary.nvim", "nvim-telescope/telescope.nvim", }, config = function() local harpoon = require("harpoon") -- REQUIRED harpoon:setup() -- REQUIRED vim.keymap.set("n", "m", function() harpoon:list():add() end) vim.keymap.set("n", "M", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) vim.keymap.set("n", "1", function() harpoon:list():select(1) end) vim.keymap.set("n", "2", function() harpoon:list():select(2) end) vim.keymap.set("n", "3", function() harpoon:list():select(3) end) vim.keymap.set("n", "4", 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", "h", function() toggle_telescope(harpoon:list()) end, { desc = "Open harpoon window" }) end, -- stylua: ignore -- keys = { -- -- Mark current file -- { "m", ":lua require('harpoon').mark_file()" }, -- -- -- Go to marks tracker (editable, use `gf` to go to file under cursor) -- { "M", "lua require('lasso').open_marks_tracker()" }, -- -- -- Jump to n-th marked file (n-th line of marks tracker) -- { "1", "lua require('lasso').open_marked_file(1)" }, -- { "2", "lua require('lasso').open_marked_file(2)" }, -- { "3", "lua require('lasso').open_marked_file(3)" }, -- { "4", "lua require('lasso').open_marked_file(4)" }, -- }, }