nvim_dotfiles/lua/plugins/codecompanion.lua
saarsena@gmail.com 085347ddac woohooo
2026-04-08 06:38:52 -04:00

53 lines
1.7 KiB
Lua

return {
'olimorris/codecompanion.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
'saghen/blink.cmp',
},
cmd = { 'CodeCompanion', 'CodeCompanionChat', 'CodeCompanionActions' },
keys = {
{ '<leader>a', '<cmd>CodeCompanionActions<cr>', mode = { 'n', 'v' }, desc = 'CodeCompanion Actions' },
{ '<leader>ac', '<cmd>CodeCompanionChat Toggle<cr>', mode = { 'n', 'v' }, desc = 'CodeCompanion Chat' },
{ 'ga', '<cmd>CodeCompanionChat Add<cr>', mode = 'v', desc = 'Add to CodeCompanion Chat' },
},
opts = {
log_level = 'DEBUG',
adapters = {
local_model = function()
return require('codecompanion.adapters').extend('openai_compatible', {
env = {
url = 'http://localhost:8000/api/v1/chat/completions',
api_key = 'dummy-key',
},
schema = {
model = { default = '' },
temperature = { default = 0.3 },
},
})
end,
mistral = function()
return require('codecompanion.adapters').extend('mistral', {
url = 'https://codestral.mistral.ai/v1/chat/completions',
env = {
api_key = 'cmd:echo $MISTRAL_API_KEY',
},
schema = {
model = { default = 'codestral-latest' },
},
})
end,
ollama = function()
return require('codecompanion.adapters').extend('ollama', {
schema = {
model = { default = 'qwen2.5-coder:latest' },
},
})
end,
},
strategies = {
chat = { adapter = 'anthropic' },
inline = { adapter = 'anthropic' },
},
},
}