61 lines
1.8 KiB
Lua
61 lines
1.8 KiB
Lua
local provider = vim.env.AI_PROVIDER
|
|
return {
|
|
{
|
|
'olimorris/codecompanion.nvim',
|
|
dependencies = {
|
|
{ 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate' },
|
|
{ 'nvim-lua/plenary.nvim' },
|
|
{ 'ibhagwan/fzf-lua' },
|
|
{
|
|
-- Make sure to set this up properly if you have lazy=true
|
|
'MeanderingProgrammer/render-markdown.nvim',
|
|
opts = {
|
|
file_types = { 'markdown', 'codecompanion' },
|
|
},
|
|
ft = { 'markdown', 'codecompanion' },
|
|
},
|
|
},
|
|
keys = {
|
|
{ '<leader>cc', '<cmd>CodeCompanionChat Toggle<cr>', desc = 'Open AI chat' },
|
|
{ '<leader>ca', '<cmd>CodeCompanionAction<cr>', desc = 'Perform AI action' },
|
|
},
|
|
cmd = { 'CodeCompanion', 'CodeCompanionAction', 'CodeCompanionChat', 'CodeCompanionCmd' },
|
|
opts = {
|
|
adapters = {
|
|
opts = {
|
|
show_defaults = false,
|
|
show_model_choices = true,
|
|
},
|
|
ollama = function()
|
|
return require('codecompanion.adapters').extend('ollama', {
|
|
schema = {
|
|
model = {
|
|
default = 'qwen3:14b',
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
anthropic = function()
|
|
return require('codecompanion.adapters').extend('anthropic', {
|
|
schema = {
|
|
model = {
|
|
default = 'claude-sonnet-4-20250514',
|
|
},
|
|
},
|
|
env = {
|
|
api_key = vim.env.ANTHROPIC_API_KEY,
|
|
},
|
|
})
|
|
end,
|
|
allow_insecure = true,
|
|
},
|
|
--Refer to: https://github.com/olimorris/codecompanion.nvim/blob/main/lua/codecompanion/config.lua
|
|
strategies = {
|
|
chat = { adapter = provider or 'anthropic' },
|
|
inline = { adapter = provider or 'anthropic' },
|
|
cmd = { adapter = provider or 'anthropic' },
|
|
},
|
|
},
|
|
},
|
|
}
|