at main 2.1 kB view raw
1return { 2 "ThePrimeagen/harpoon", 3 branch = "harpoon2", 4 dependencies = { "nvim-lua/plenary.nvim" }, 5 config = function() 6 local harpoon = require("harpoon") 7 8 harpoon:setup() 9 10 vim.keymap.set("n", "<leader>a", function() 11 harpoon:list():add() 12 end, { desc = "[A]dd mark" }) 13 vim.keymap.set("n", "<leader>m", function() 14 harpoon.ui:toggle_quick_menu(harpoon:list()) 15 end, { desc = "Harpoon [M]arks" }) 16 17 vim.keymap.set("n", "<leader>1", function() 18 harpoon:list():select(1) 19 end, { desc = "Mark [1]" }) 20 vim.keymap.set("n", "<leader>2", function() 21 harpoon:list():select(2) 22 end, { desc = "Mark [2]" }) 23 vim.keymap.set("n", "<leader>3", function() 24 harpoon:list():select(3) 25 end, { desc = "Mark [3]" }) 26 vim.keymap.set("n", "<leader>4", function() 27 harpoon:list():select(4) 28 end, { desc = "Mark [4]" }) 29 30 vim.keymap.set("n", "<leader>hp", function() 31 harpoon:list():prev() 32 end, { desc = "[H]arpoon [P]revious" }) 33 vim.keymap.set("n", "<leader>hn", function() 34 harpoon:list():next() 35 end, { desc = "[H]arpoon [N]ext" }) 36 local conf = require("telescope.config").values 37 local function toggle_telescope(harpoon_files) 38 local file_paths = {} 39 for _, item in ipairs(harpoon_files.items) do 40 table.insert(file_paths, item.value) 41 end 42 43 require("telescope.pickers") 44 .new({}, { 45 prompt_title = "Harpoon", 46 finder = require("telescope.finders").new_table({ 47 results = file_paths, 48 }), 49 previewer = conf.file_previewer({}), 50 sorter = conf.generic_sorter({}), 51 }) 52 :find() 53 end 54 55 vim.keymap.set("n", "<leader>fm", function() 56 toggle_telescope(harpoon:list()) 57 end, { desc = "[F]ind [M]arks" }) 58 end, 59}