Files
vimrc/lua/plugins/ai/codecompanion.lua

65 lines
2.0 KiB
Lua

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 = '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',
},
})
end,
allow_insecure = true,
},
--Refer to: https://github.com/olimorris/codecompanion.nvim/blob/main/lua/codecompanion/config.lua
-- strategies = {
-- chat = { adapter = 'anthropic' },
-- inline = { adapter = 'anthropic' },
-- cmd = { adapter = 'anthropic' },
-- },
strategies = {
chat = { adapter = 'ollama' },
inline = { adapter = 'ollama' },
cmd = { adapter = 'ollama' },
},
},
},
}