|
| 1 | +return { |
| 2 | + "ThePrimeagen/harpoon", |
| 3 | + branch = "harpoon2", |
| 4 | + dependencies = { "nvim-lua/plenary.nvim", 'nvim-telescope/telescope.nvim' }, |
| 5 | + config = function() |
| 6 | + local harpoon = require('harpoon') |
| 7 | + harpoon:setup({}) |
| 8 | + |
| 9 | + -- basic telescope configuration |
| 10 | + local conf = require("telescope.config").values |
| 11 | + local function toggle_telescope(harpoon_files) |
| 12 | + local file_paths = {} |
| 13 | + for _, item in ipairs(harpoon_files.items) do |
| 14 | + table.insert(file_paths, item.value) |
| 15 | + end |
| 16 | + |
| 17 | + require("telescope.pickers").new({}, { |
| 18 | + prompt_title = "Harpoon", |
| 19 | + finder = require("telescope.finders").new_table({ |
| 20 | + results = file_paths, |
| 21 | + }), |
| 22 | + previewer = conf.file_previewer({}), |
| 23 | + sorter = conf.generic_sorter({}), |
| 24 | + }):find() |
| 25 | + end |
| 26 | + -- keybindings |
| 27 | + vim.keymap.set("n", "<leader>h", function() toggle_telescope(harpoon:list()) end, |
| 28 | + { desc = "Open harpoon window" }) |
| 29 | + |
| 30 | + vim.keymap.set("n", "<leader>a", function() harpoon:list():add() end, { desc = "Add to harpoon" }) |
| 31 | + |
| 32 | + for key = 1, 9 do |
| 33 | + vim.keymap.set("n", "<leader>" .. key, function() harpoon:list():select(key) end, |
| 34 | + { desc = "Open harpoon window " .. key }) |
| 35 | + end |
| 36 | + end |
| 37 | +} |
0 commit comments