73 lines
2.5 KiB
Lua
73 lines
2.5 KiB
Lua
local ignore = require('ignoreConfig.codeCompanionModel');
|
|
--[[
|
|
-- ignore file should be formatted as:
|
|
|
|
local opts = {
|
|
model = "claude_code",
|
|
}
|
|
return opts
|
|
|
|
-- but change model to desired model, ex. ollama
|
|
--]]
|
|
|
|
return {
|
|
"olimorris/codecompanion.nvim",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-treesitter/nvim-treesitter",
|
|
"hrsh7th/nvim-cmp", -- Optional: for autocompletion inside chat
|
|
{ "MeanderingProgrammer/render-markdown.nvim", ft = { "markdown", "codecompanion" } }, -- Optional: pretty markdown render
|
|
},
|
|
config = function()
|
|
require("codecompanion").setup({
|
|
-- Define strategies (Chat vs. Inline code generation/refactor)
|
|
strategies = {
|
|
chat = {
|
|
adapter = ignore.model,
|
|
},
|
|
inline = {
|
|
adapter = ignore.model,
|
|
},
|
|
},
|
|
-- Configure the actual connections (adapters)
|
|
adapters = {
|
|
claude_code = function()
|
|
return require("codecompanion.adapters").extend("claude_code", {
|
|
env = {
|
|
-- Looks for your export ANTHROPIC_API_KEY="your-key" in your .bashrc/.zshrc
|
|
command = "/usr/local/bin/claude-code-acp",
|
|
},
|
|
})
|
|
end,
|
|
ollama = function()
|
|
return require("codecompanion.adapters").extend("ollama", {
|
|
schema = {
|
|
model = {
|
|
default = "jean:latest", -- Your downloaded local model
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
interactions = {
|
|
cli = {
|
|
agent = "claude_code",
|
|
agents = {
|
|
claude_code = {
|
|
cmd = "claude",
|
|
args = {},
|
|
description = "Claude Code CLI",
|
|
provider = "terminal",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Quick Keymaps
|
|
vim.keymap.set({ "n", "v" }, "<leader>ac", "<cmd>CodeCompanionChat Toggle<cr>", { desc = "Toggle AI Chat" })
|
|
vim.keymap.set({ "n", "v" }, "<leader>ai", "<cmd>CodeCompanionActions<cr>", { desc = "AI Actions Menu" })
|
|
end,
|
|
}
|
|
|