my dotfiles for arch
1return {
2 "theprimeagen/harpoon",
3 branch = "harpoon2",
4 dependencies = { "nvim-lua/plenary.nvim", "nvim-telescope/telescope.nvim" },
5
6 config = function()
7 local harpoon = require("harpoon")
8 harpoon:setup({
9 settings = { save_on_toggle = true },
10 })
11
12 vim.keymap.set("n", "<leader>a", function()
13 harpoon:list():add()
14 end)
15 vim.keymap.set("n", "<leader>h", function()
16 harpoon.ui:toggle_quick_menu(harpoon:list())
17 end, { desc = "Toggle harpoon quick menu" })
18
19 vim.keymap.set("n", "<leader>1", function()
20 harpoon:list():select(1)
21 end)
22 vim.keymap.set("n", "<leader>2", function()
23 harpoon:list():select(2)
24 end)
25 vim.keymap.set("n", "<leader>3", function()
26 harpoon:list():select(3)
27 end)
28 vim.keymap.set("n", "<leader>4", function()
29 harpoon:list():select(4)
30 end)
31 vim.keymap.set("n", "<leader>5", function()
32 harpoon:list():select(5)
33 end)
34 vim.keymap.set("n", "<leader>6", function()
35 harpoon:list():select(6)
36 end)
37 vim.keymap.set("n", "<leader>7", function()
38 harpoon:list():select(7)
39 end)
40 vim.keymap.set("n", "<leader>8", function()
41 harpoon:list():select(8)
42 end)
43 vim.keymap.set("n", "<leader>9", function()
44 harpoon:list():select(9)
45 end)
46
47 -- Toggle previous & next buffers stored within Harpoon list
48 vim.keymap.set("n", "<C-S-P>", function()
49 harpoon:list():prev()
50 end)
51 vim.keymap.set("n", "<C-S-N>", function()
52 harpoon:list():next()
53 end)
54
55 -- basic telescope configuration
56 local conf = require("telescope.config").values
57 local function toggle_telescope(harpoon_files)
58 local file_paths = {}
59 for _, item in ipairs(harpoon_files.items) do
60 table.insert(file_paths, item.value)
61 end
62
63 require("telescope.pickers")
64 .new({}, {
65 prompt_title = "Harpoon",
66 finder = require("telescope.finders").new_table({
67 results = file_paths,
68 }),
69 previewer = conf.file_previewer({}),
70 sorter = conf.generic_sorter({}),
71 })
72 :find()
73 end
74
75 vim.keymap.set("n", "<C-e>", function()
76 toggle_telescope(harpoon:list())
77 end, { desc = "Open harpoon window" })
78 end,
79}