-- ── plugins/tools.lua ───────────────────────────────────────────────────────── return { -- ── LazyGit inside neovim ───────────────────────────────────────────────── { "kdheepak/lazygit.nvim", dependencies = { "nvim-lua/plenary.nvim" }, }, -- ── Diffview ────────────────────────────────────────────────────────────── { "sindrets/diffview.nvim", dependencies = { "nvim-lua/plenary.nvim" }, config = function() require("diffview").setup() vim.keymap.set("n", "gd", "DiffviewOpen", { desc = "Diff view" }) vim.keymap.set("n", "gh", "DiffviewFileHistory", { desc = "File history" }) end, }, -- ── Leap: 2-char jump ───────────────────────────────────────────────────── -- Repo moved GitHub → Codeberg Jan 2026. url= required. -- API: plain mappings. No setup(), no add/set_default_mappings(). { url = "https://codeberg.org/andyg/leap.nvim", config = function() vim.keymap.set({ "n", "x", "o" }, "s", "(leap)") vim.keymap.set("n", "S", "(leap-from-window)") end, }, -- ── Auto pairs ──────────────────────────────────────────────────────────── { "windwp/nvim-autopairs", event = "InsertEnter", config = function() require("nvim-autopairs").setup({ check_ts = true, fast_wrap = { map = "" }, }) local cmp_autopairs = require("nvim-autopairs.completion.cmp") require("cmp").event:on("confirm_done", cmp_autopairs.on_confirm_done()) end, }, -- ── Comment toggling ────────────────────────────────────────────────────── { "numToStr/Comment.nvim", event = "BufReadPost", dependencies = { "JoosepAlviste/nvim-ts-context-commentstring" }, config = function() require("Comment").setup({ pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(), }) end, }, -- ── Surround ────────────────────────────────────────────────────────────── -- v4: keymaps table removed from setup(). Use default ys/ds/cs mappings. -- leap owns `s` but ys/ds/cs don't conflict with it. { "kylechui/nvim-surround", event = "VeryLazy", config = function() require("nvim-surround").setup() end, }, -- ── Todo comments ───────────────────────────────────────────────────────── { "folke/todo-comments.nvim", dependencies = { "nvim-lua/plenary.nvim" }, config = function() require("todo-comments").setup() vim.keymap.set("n", "ft", "TodoTelescope", { desc = "Find TODOs" }) end, }, -- ── Marks ───────────────────────────────────────────────────────────────── { "chentoast/marks.nvim", event = "BufReadPost", config = true, }, -- ── Better quickfix ─────────────────────────────────────────────────────── { "kevinhwang91/nvim-bqf", ft = "qf", config = true, }, -- ── Zen mode ────────────────────────────────────────────────────────────── { "folke/zen-mode.nvim", config = function() require("zen-mode").setup({ window = { width = 0.85 } }) vim.keymap.set("n", "z", "ZenMode", { desc = "Zen mode" }) end, }, -- ── Plenary ─────────────────────────────────────────────────────────────── { "nvim-lua/plenary.nvim", lazy = true }, }