From 5753847a71020ceda4e534ce77444c8b9d321d96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20La=C3=ADn?= Date: Sat, 9 Mar 2024 02:21:04 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(nvim):=20add=20a=20new=20extra?= =?UTF-8?q?:=20grapple?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit a better harpoon in my opinion --- .config/nvim/.github/README.md | 2 + .config/nvim/lazy-lock.json | 4 +- .config/nvim/lazyvim.json | 2 +- .../lua/plugins/extras/editor/grapple.lua | 77 +++++++++++++++++++ 4 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 .config/nvim/lua/plugins/extras/editor/grapple.lua diff --git a/.config/nvim/.github/README.md b/.config/nvim/.github/README.md index ddd0a132..078961f7 100644 --- a/.config/nvim/.github/README.md +++ b/.config/nvim/.github/README.md @@ -337,6 +337,8 @@ 🔖 Marks - [ThePrimeagen/harpoon](https://dotfyle.com/plugins/ThePrimeagen/harpoon) +- [otavioschwanck/arrow.nvim](https://dotfyle.com/plugins/otavioschwanck/arrow.nvim) +- [cbochs/grapple.nvim](https://dotfyle.com/plugins/cbochs/grapple.nvim) - [tomasky/bookmarks.nvim](https://dotfyle.com/plugins/tomasky/bookmarks.nvim) diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index beaf6616..fb1289c1 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -28,7 +28,7 @@ "garbage-day.nvim": { "branch": "main", "commit": "01a43b77459bc06038045afade8f003f08a3d02f" }, "gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" }, "glance.nvim": { "branch": "master", "commit": "8ed5cf3b3b1231ea696d88c9efd977027429d869" }, - "harpoon": { "branch": "harpoon2", "commit": "a38be6e0dd4c6db66997deab71fc4453ace97f9c" }, + "grapple.nvim": { "branch": "main", "commit": "33738f9c76150e8bf711b6d49e219fcc1581bf51" }, "headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" }, "hydra.nvim": { "branch": "master", "commit": "55de54543d673824435930ecf533256eea2e565b" }, "icon-picker.nvim": { "branch": "master", "commit": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3" }, @@ -76,7 +76,7 @@ "nvim-various-textobjs": { "branch": "main", "commit": "3782eb41a964f45788843e34f325a470f0dc6757" }, "nvim-web-devicons": { "branch": "master", "commit": "4adea17610d140a99c313e3f79a9dc01825d59ae" }, "nvim_context_vt": { "branch": "master", "commit": "8f7b6b46292e0819290b0d368abc3366b8a163fc" }, - "obsidian.nvim": { "branch": "main", "commit": "d0d699ccb020d834b2f095f2d6cc99259cd00b14" }, + "obsidian.nvim": { "branch": "main", "commit": "6888c7620109684371ed9304df2ba68abc78d558" }, "outline.nvim": { "branch": "main", "commit": "a8d40aecb799196303ff3521c0e31c87bba57198" }, "overseer.nvim": { "branch": "master", "commit": "b72f6d23ce47ccd427be2341f389c63448278f17" }, "package-info.nvim": { "branch": "master", "commit": "45acce5b12ce824332d8000cc2c91805b6710446" }, diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json index d4a92972..85608ee1 100644 --- a/.config/nvim/lazyvim.json +++ b/.config/nvim/lazyvim.json @@ -22,7 +22,7 @@ "plugins.extras.editor.docs.devdocs", "plugins.extras.editor.docs.obsidian", "plugins.extras.editor.git.diffview", - "plugins.extras.editor.harpoon", + "plugins.extras.editor.grapple", "plugins.extras.editor.live-server", "plugins.extras.editor.outline-extended", "plugins.extras.editor.package-info", diff --git a/.config/nvim/lua/plugins/extras/editor/grapple.lua b/.config/nvim/lua/plugins/extras/editor/grapple.lua new file mode 100644 index 00000000..45e78dd5 --- /dev/null +++ b/.config/nvim/lua/plugins/extras/editor/grapple.lua @@ -0,0 +1,77 @@ +local keys = {} + +-- stylua: ignore start +for i = 1, 9 do + table.insert(keys, { "" .. i, "Grapple select index=" .. i .. "", desc = "File " .. i }) +end + +table.insert(keys, { "a", "Grapple tag", desc = "Add Mark" }) +table.insert(keys, { "", "Grapple toggle_tags", desc = "Marks" }) +table.insert(keys, { "t", "Telescope grapple tags", desc = "Marks (Telescope)" }) +table.insert(keys, { "C", "Grapple reset", desc = "Clear all Marks" }) +table.insert(keys, { "c", "Grapple untag", desc = "Clear current Mark" }) +table.insert(keys, { "s", "Grapple toggle_scopes", desc = "Scopes" }) +table.insert(keys, { "S", "Grapple toggle_loaded", desc = "Loaded Scopes" }) + +table.insert(keys, { "]", "Grapple cycle forward", desc = "Next Mark" }) +table.insert(keys, { "[", "Grapple cycle backward", desc = "Prev Mark" }) + +table.insert(keys, { "", "Grapple cycle forward", desc = "Next Mark" }) +table.insert(keys, { "", "Grapple cycle backward", desc = "Prev Mark" }) +-- stylua: ignore end + +return { + { + "cbochs/grapple.nvim", + dependencies = "nvim-tree/nvim-web-devicons", + cmd = { "Grapple" }, + keys = keys, + config = function() + require("grapple").setup() + require("lazyvim.util").on_load("telescope.nvim", function() + require("telescope").load_extension("grapple") + end) + end, + }, + { + "goolord/alpha-nvim", + optional = true, + opts = function(_, dashboard) + local button = dashboard.button("m", "󰛢 " .. " Marks", "Grapple toggle_tags") + button.opts.hl = "AlphaButtons" + button.opts.hl_shortcut = "AlphaShortcut" + table.insert(dashboard.section.buttons.val, 5, button) + end, + }, + { + "nvimdev/dashboard-nvim", + optional = true, + opts = function(_, opts) + local grapple = { + action = "Grapple toggle_tags", + desc = " Marks", + icon = "󰛢 ", + key = "m", + } + + grapple.desc = grapple.desc .. string.rep(" ", 43 - #grapple.desc) + grapple.key_format = " %s" + + table.insert(opts.config.center, 5, grapple) + end, + }, + { + "nvim-lualine/lualine.nvim", + opts = function(_, opts) + table.insert(opts.sections.lualine_c, { require("grapple").statusline, cond = require("grapple").exists }) + end, + }, + { + "folke/which-key.nvim", + opts = { + defaults = { + [""] = { name = "󰛢 grapple" }, + }, + }, + }, +}