feat(plugins): add git-ai-commit, diffview, and reorganize keymaps

- Add AI-powered commit message generation with git-ai-commit plugin.
- Add diffview for side-by-side git diffs.
- Reorganize telescope keymaps (<leader><leader> for live_grep, <leader>/ for find_files).
- Update lazy.nvim imports to include plugins.extras.
- Add mago.nvim for PHP support.
- Update AI plugin with model configuration.
This commit is contained in:
2026-02-26 15:27:39 +01:00
parent c0d2326e34
commit 49906c175d
8 changed files with 362 additions and 15 deletions

View File

@@ -0,0 +1,51 @@
-- lua/plugins/extras/diffview.lua
-- Side-by-side diff view for staged/unstaged changes across all files
-- https://github.com/sindrets/diffview.nvim
--
-- Keymaps:
-- <leader>ds — staged changes (git diff --cached)
-- <leader>du — unstaged changes (git diff)
-- <leader>dh — diff against HEAD
-- <leader>dc — close diffview
--
-- Inside diffview:
-- <Tab> / <S-Tab> — next/prev changed file
-- [c / ]c — prev/next hunk in file
-- s — stage/unstage file (in file panel)
-- q / <leader>dc — close
return {
'sindrets/diffview.nvim',
lazy = true,
dependencies = { 'nvim-tree/nvim-web-devicons' },
cmd = { 'DiffviewOpen', 'DiffviewClose', 'DiffviewFileHistory' },
keys = {
{ '<leader>ds', '<cmd>DiffviewOpen --staged<cr>', desc = 'git [d]iff [s]taged' },
{ '<leader>du', '<cmd>DiffviewOpen<cr>', desc = 'git [d]iff [u]nstaged' },
{ '<leader>dh', '<cmd>DiffviewOpen HEAD<cr>', desc = 'git [d]iff [h]ead' },
{ '<leader>dc', '<cmd>DiffviewClose<cr>', desc = 'git [d]iff [c]lose' },
},
opts = {
enhanced_diff_hl = true,
view = {
default = {
layout = 'diff2_horizontal', -- side by side
winbar_info = true,
},
merge_tool = {
layout = 'diff3_horizontal',
disable_diagnostics = true,
},
},
file_panel = {
listing_style = 'tree',
win_config = { width = 35 },
},
hooks = {
-- close diffview with q in any diffview buffer
view_opened = function()
vim.keymap.set('n', 'q', '<cmd>DiffviewClose<cr>', { buffer = true, silent = true })
end,
},
},
}