105 lines
5.1 KiB
Lua
105 lines
5.1 KiB
Lua
-- ── 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", "<leader>gd", "<cmd>DiffviewOpen<cr>", { desc = "Diff view" })
|
|
vim.keymap.set("n", "<leader>gh", "<cmd>DiffviewFileHistory<cr>", { desc = "File history" })
|
|
end,
|
|
},
|
|
|
|
-- ── Leap: 2-char jump ─────────────────────────────────────────────────────
|
|
-- Repo moved GitHub → Codeberg Jan 2026. url= required.
|
|
-- API: plain <Plug> mappings. No setup(), no add/set_default_mappings().
|
|
{
|
|
url = "https://codeberg.org/andyg/leap.nvim",
|
|
config = function()
|
|
vim.keymap.set({ "n", "x", "o" }, "s", "<Plug>(leap)")
|
|
vim.keymap.set("n", "S", "<Plug>(leap-from-window)")
|
|
end,
|
|
},
|
|
|
|
-- ── Auto pairs ────────────────────────────────────────────────────────────
|
|
{
|
|
"windwp/nvim-autopairs",
|
|
event = "InsertEnter",
|
|
config = function()
|
|
require("nvim-autopairs").setup({
|
|
check_ts = true,
|
|
fast_wrap = { map = "<M-e>" },
|
|
})
|
|
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", "<leader>ft", "<cmd>TodoTelescope<cr>", { 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", "<leader>z", "<cmd>ZenMode<cr>", { desc = "Zen mode" })
|
|
end,
|
|
},
|
|
|
|
-- ── Plenary ───────────────────────────────────────────────────────────────
|
|
{ "nvim-lua/plenary.nvim", lazy = true },
|
|
}
|