1+ -- Harpoon for quick file navigation
2+ return {
3+ ' ThePrimeagen/harpoon' ,
4+ branch = ' harpoon2' ,
5+ dependencies = { ' nvim-lua/plenary.nvim' },
6+ config = function ()
7+ local harpoon = require ' harpoon'
8+ harpoon :setup ()
9+
10+ vim .keymap .set (' n' , ' <leader>A' , function ()
11+ harpoon :list ():add ()
12+ end , { desc = ' Add a file to harpoon' })
13+ vim .keymap .set (' n' , ' <leader>a' , function ()
14+ harpoon .ui :toggle_quick_menu (harpoon :list ())
15+ end , { desc = ' Open harpoon nav' })
16+
17+ vim .keymap .set (' n' , ' <leader>1' , function ()
18+ harpoon :list ():select (1 )
19+ end , { desc = ' Go to file 1' })
20+ vim .keymap .set (' n' , ' <leader>2' , function ()
21+ harpoon :list ():select (2 )
22+ end , { desc = ' Go to file 2' })
23+ vim .keymap .set (' n' , ' <leader>3' , function ()
24+ harpoon :list ():select (3 )
25+ end , { desc = ' Go to file 3' })
26+ vim .keymap .set (' n' , ' <leader>4' , function ()
27+ harpoon :list ():select (4 )
28+ end , { desc = ' Go to file 4' })
29+ vim .keymap .set (' n' , ' <leader>5' , function ()
30+ harpoon :list ():select (5 )
31+ end , { desc = ' Go to file 5' })
32+
33+ vim .keymap .set (' n' , ' <C-S-P>' , function ()
34+ harpoon :list ():prev ()
35+ end )
36+ vim .keymap .set (' n' , ' <C-S-N>' , function ()
37+ harpoon :list ():next ()
38+ end )
39+
40+ local conf = require (' telescope.config' ).values
41+ local function toggle_telescope (harpoon_files )
42+ local file_paths = {}
43+ for _ , item in ipairs (harpoon_files .items ) do
44+ table.insert (file_paths , item .value )
45+ end
46+
47+ require (' telescope.pickers' )
48+ .new ({}, {
49+ prompt_title = ' Harpoon' ,
50+ finder = require (' telescope.finders' ).new_table {
51+ results = file_paths ,
52+ },
53+ previewer = conf .file_previewer {},
54+ sorter = conf .generic_sorter {},
55+ })
56+ :find ()
57+ end
58+
59+ vim .keymap .set (' n' , ' <leader>z' , function ()
60+ toggle_telescope (harpoon :list ())
61+ end , { desc = ' Open harpoon window in telescope' })
62+ end ,
63+ }
0 commit comments