nerd stuff
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}