neovim-ide/dotfiles/.config/nvim/lua/plugins/tools.lua

105 lines
5.1 KiB
Lua
Raw Normal View History

-- ── 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 },
}