123 lines
4.7 KiB
Lua
123 lines
4.7 KiB
Lua
require('helpers').edit_cf('pa', '/lua/plugins/aider.lua')
|
|
|
|
return {
|
|
'GeorgesAlkhouri/nvim-aider',
|
|
cmd = 'Aider',
|
|
keys = {
|
|
{ '<leader>a/', '<cmd>Aider toggle<cr>', desc = 'Toggle Aider' },
|
|
{ '<leader>as', '<cmd>Aider send<cr>', desc = 'Send to Aider', mode = { 'n', 'v' } },
|
|
{ '<leader>ac', '<cmd>Aider command<cr>', desc = 'Aider Commands' },
|
|
{ '<leader>ab', '<cmd>Aider buffer<cr>', desc = 'Send Buffer' },
|
|
{ '<leader>a+', '<cmd>Aider add<cr>', desc = 'Add File' },
|
|
{ '<leader>a-', '<cmd>Aider drop<cr>', desc = 'Drop File' },
|
|
{ '<leader>ar', '<cmd>Aider add readonly<cr>', desc = 'Add Read-Only' },
|
|
{ '<leader>aR', '<cmd>Aider reset<cr>', desc = 'Reset Session' },
|
|
-- Example nvim-tree.lua integration if needed
|
|
{ '<leader>a+', '<cmd>AiderTreeAddFile<cr>', desc = 'Add File from Tree to Aider', ft = 'NvimTree' },
|
|
{ '<leader>a-', '<cmd>AiderTreeDropFile<cr>', desc = 'Drop File from Tree from Aider', ft = 'NvimTree' },
|
|
-- Open aider with gpt-4.1 as the main model
|
|
-- {
|
|
-- '<leader>a?',
|
|
-- function()
|
|
-- require('nvim_aider').setup {
|
|
-- aider_cmd = 'aider',
|
|
-- args = {
|
|
-- '--config=$HOME/.config/aider/aider.yaml',
|
|
-- '--env-file=$(pwd)/.aider.env',
|
|
-- '--model=gpt-4.1',
|
|
-- },
|
|
-- auto_reload = true,
|
|
-- win = {
|
|
-- wo = { winbar = 'Aider (GPT-4.1)' },
|
|
-- style = 'nvim_aider',
|
|
-- position = 'bottom',
|
|
-- },
|
|
-- }
|
|
-- vim.cmd 'Aider toggle'
|
|
-- end,
|
|
-- desc = 'Open Aider with GPT-4.1',
|
|
-- },
|
|
-- {
|
|
-- '<leader>a>',
|
|
-- function()
|
|
-- require('nvim_aider').setup {
|
|
-- aider_cmd = 'aider',
|
|
-- args = {
|
|
-- '--config=$HOME/.config/aider/aider.yaml',
|
|
-- '--env-file=$(pwd)/.aider.env',
|
|
-- '--model=openai/gemini-2.5-pro',
|
|
-- '--architect',
|
|
-- },
|
|
-- auto_reload = true,
|
|
-- win = {
|
|
-- wo = { winbar = 'Aider (Gemini-2.5-Pro)' },
|
|
-- style = 'nvim_aider',
|
|
-- position = 'bottom',
|
|
-- },
|
|
-- }
|
|
-- vim.cmd 'Aider toggle'
|
|
-- end,
|
|
-- desc = 'Open Aider with Gemini 2.5 Pro',
|
|
-- },
|
|
-- {
|
|
-- '<leader>a4',
|
|
-- function()
|
|
-- require('nvim_aider').api.send_command('/model', 'gpt-4.1')
|
|
-- end,
|
|
-- desc = 'Switch aider model to GPT-4.1',
|
|
-- },
|
|
-- {
|
|
-- '<leader>ao',
|
|
-- function()
|
|
-- require('nvim_aider').api.send_command('/model', 'o4-mini')
|
|
-- end,
|
|
-- desc = 'Switch aider model to o4-mini',
|
|
-- },
|
|
-- {
|
|
-- '<leader>ag',
|
|
-- function()
|
|
-- require('nvim_aider').api.send_command('/model', 'openai/gemini-2.5-pro')
|
|
-- end,
|
|
-- desc = 'Switch aider model to Gemini 2.5 Pro',
|
|
-- },
|
|
},
|
|
dependencies = {
|
|
'folke/snacks.nvim',
|
|
--- The below dependencies are optional
|
|
'catppuccin/nvim',
|
|
'nvim-tree/nvim-tree.lua',
|
|
--- Neo-tree integration
|
|
{
|
|
'nvim-neo-tree/neo-tree.nvim',
|
|
opts = function(_, opts)
|
|
-- Example mapping configuration (already set by default)
|
|
-- opts.window = {
|
|
-- mappings = {
|
|
-- ["+"] = { "nvim_aider_add", desc = "add to aider" },
|
|
-- ["-"] = { "nvim_aider_drop", desc = "drop from aider" }
|
|
-- ["="] = { "nvim_aider_add_read_only", desc = "add read-only to aider" }
|
|
-- }
|
|
-- }
|
|
require('nvim_aider.neo_tree').setup(opts)
|
|
end,
|
|
},
|
|
},
|
|
config = function()
|
|
require('nvim_aider').setup {
|
|
aider_cmd = 'aider',
|
|
args = {
|
|
'--config=$HOME/.config/aider/aider.yaml',
|
|
'--env-file=$(pwd)/.aider.env',
|
|
'--watch',
|
|
'--architect',
|
|
},
|
|
auto_reload = true,
|
|
win = {
|
|
wo = { winbar = 'Aider' },
|
|
style = 'nvim_aider',
|
|
position = 'bottom',
|
|
},
|
|
}
|
|
end,
|
|
}
|