From f7484147f7543f56557bb18e5f14a3b7b1a692fe Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Sun, 10 Nov 2024 09:39:09 -0500 Subject: [PATCH] feat: Adds harpoon to nvim --- nvim/m-housh/lua/user/keymaps.lua | 6 +-- nvim/m-housh/lua/user/plugin/harpoon.lua | 53 ++++++++++++++++++++++++ nvim/m-housh/lua/user/plugins.lua | 1 + 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 nvim/m-housh/lua/user/plugin/harpoon.lua diff --git a/nvim/m-housh/lua/user/keymaps.lua b/nvim/m-housh/lua/user/keymaps.lua index c6d34d6..244e1a1 100755 --- a/nvim/m-housh/lua/user/keymaps.lua +++ b/nvim/m-housh/lua/user/keymaps.lua @@ -59,9 +59,9 @@ wk_add("n", { -------------------------------------------------------------------------------- -- Visual Mode -------------------------------------------------------------------------------- -wk_add("v", { - { "p", "\"_dP", desc = "[P]aste" }, -}) +-- wk_add("v", { +-- { "p", "\"_dP", desc = "[P]aste" }, +-- }) wk_add("x", { { "K", ":move '<-2gv-gv", desc = "Move selected block up" }, diff --git a/nvim/m-housh/lua/user/plugin/harpoon.lua b/nvim/m-housh/lua/user/plugin/harpoon.lua new file mode 100644 index 0000000..b52f6aa --- /dev/null +++ b/nvim/m-housh/lua/user/plugin/harpoon.lua @@ -0,0 +1,53 @@ +return { + "ThePrimeagen/harpoon", + branch = "harpoon2", + dependencies = { + "nvim-lua/plenary.nvim" + }, + config = function() + local harpoon = require('harpoon') + harpoon:setup({}) + + local conf = require('telescope.config').values + local function toggle_telescope(harpoon_files) + local file_paths = {} + for _, item in ipairs(harpoon_files.items) do + table.insert(file_paths, item.value) + end + + require('telescope.pickers').new({}, { + prompt_title = 'Harpoon', + finder = require('telescope.finders').new_table({ + results = file_paths, + }), + previewer = conf.file_previewer({}), + sorter = conf.generic_sorter({}), + }):find() + end + + -- Keymaps + vim.keymap.set("n", "", + function() toggle_telescope(harpoon:list()) end, + { desc = "Open Harpoon window" } + ) + + vim.keymap.set("n", "a", + function() harpoon:list():add() end, + { desc = "[A]dd to harpoon list." } + ) + vim.keymap.set("n", "", + function() harpoon.ui:toggle_quick_menu(harpoon:list()) end, + { desc = "Toggle quick menu." } + ) + + -- Toggle previous and next buffers. + vim.keymap.set("n", "", + function() harpoon:list():prev() end, + { desc = "[P]revious harpoon buffer." } + ) + vim.keymap.set("n", "", + function() harpoon:list():next() end, + { desc = "[N]ext harpoon buffer." } + ) + end +} diff --git a/nvim/m-housh/lua/user/plugins.lua b/nvim/m-housh/lua/user/plugins.lua index 82d89c9..2bcb823 100755 --- a/nvim/m-housh/lua/user/plugins.lua +++ b/nvim/m-housh/lua/user/plugins.lua @@ -40,6 +40,7 @@ require("lazy").setup({ -- Navigation -- { import = 'user.plugin.neo-tree' }, { import = 'user.plugin.telescope' }, + { import = 'user.plugin.harpoon' }, -- Utilities -- { import = 'user.plugin.comment' },