feat: toggle harpoon

main
jaredgoldman 2024-04-10 20:00:12 -04:00
parent b45fe90dd4
commit 74781e2d6d
3 changed files with 11 additions and 15 deletions

View File

@ -20,14 +20,15 @@ local function toggle_telescope(harpoon_files)
}) })
:find() :find()
end end
local function toggle_mark()
local function maybe_remove_add() local current_file = api.nvim_buf_get_name(0) -- Get the current buffer's file path
local bufnr = api.nvim_get_current_buf() local item, index = harpoon:list():get_by_value(current_file)
local mark = harpoon:mark(bufnr) if item then
if mark then harpoon:list():remove_at(index)
harpoon:list():add() print("Removed from Harpoon: " .. current_file)
else else
harpoon:list():remove() harpoon:list():add({ value = current_file })
print("Added to Harpoon: " .. current_file)
end end
end end
@ -39,13 +40,7 @@ api.nvim_create_user_command("HarpoonAdd", function()
harpoon:list():add() harpoon:list():add()
end, { bang = true }) end, { bang = true })
api.nvim_create_user_command("HarpoonToggleFile", function() api.nvim_create_user_command("HarpoonToggleFile", function()
maybe_remove_add() toggle_mark()
end, { bang = true })
api.nvim_create_user_command("HarpoonTogglePrev", function()
harpoon:list():prev()
end, { bang = true })
api.nvim_create_user_command("HarpoonToggleNext", function()
harpoon:list():next()
end, { bang = true }) end, { bang = true })
api.nvim_create_user_command("HarpoonUI", function() api.nvim_create_user_command("HarpoonUI", function()
toggle_telescope(harpoon:list()) toggle_telescope(harpoon:list())

View File

@ -30,7 +30,7 @@ local mappings = {
-- FTerm -- FTerm
["<leader>h"] = "<cmd>FTermToggle<CR>", ["<leader>h"] = "<cmd>FTermToggle<CR>",
-- Harpoon -- Harpoon
["<leader>a"] = "<cmd>HarpoonAdd<CR>", ["<leader>a"] = "<cmd>HarpoonToggleFile<CR>",
["<C-e>"] = "<cmd>HarpoonUI<CR>", ["<C-e>"] = "<cmd>HarpoonUI<CR>",
["<leader>c"] = "<cmd>HarpoonClear<CR>", ["<leader>c"] = "<cmd>HarpoonClear<CR>",
-- Formating -- Formating

View File

@ -12,4 +12,5 @@
- lua vim linting x - lua vim linting x
- dashboard x - dashboard x
- suppress vim global warnings x - suppress vim global warnings x
- harpoon toggle file
- debugger - debugger