mirror of
https://github.com/mitchell/dotfiles.git
synced 2025-06-19 12:45:34 +00:00
91 lines
2.2 KiB
Lua
91 lines
2.2 KiB
Lua
-- lua/plugins/tools.lua
|
|
|
|
local function create_adapter(adapter_type, name, opts)
|
|
return require("codecompanion.adapters").extend(adapter_type, {
|
|
name = name,
|
|
schema = opts.schema or {},
|
|
env = opts.env or {},
|
|
parameters = opts.parameters or {},
|
|
})
|
|
end
|
|
|
|
local adapter_configs = {
|
|
ollama = {
|
|
type = "ollama",
|
|
env = { url = "http://192.168.1.165:11434" },
|
|
parameters = { sync = true },
|
|
schema = { num_ctx = { default = 8192 } },
|
|
},
|
|
gemini_pro = {
|
|
type = "gemini",
|
|
schema = { model = { default = "gemini-2.5-pro-preview-05-06" } },
|
|
},
|
|
gemini_none = {
|
|
type = "gemini",
|
|
schema = {
|
|
model = { default = "gemini-2.5-flash-preview-05-20" },
|
|
reasoning_effort = { default = "none" },
|
|
temperature = { default = 0 },
|
|
},
|
|
},
|
|
gemini_high = {
|
|
type = "gemini",
|
|
schema = {
|
|
model = { default = "gemini-2.5-flash-preview-05-20" },
|
|
reasoning_effort = { default = "high" },
|
|
},
|
|
},
|
|
openai_high = {
|
|
type = "openai",
|
|
schema = {
|
|
model = { default = "o4-mini-2025-04-16" },
|
|
reasoning_effort = { default = "high" },
|
|
},
|
|
},
|
|
}
|
|
|
|
-- Dynamically generate adapter functions
|
|
local adapters = {}
|
|
for name, config in pairs(adapter_configs) do
|
|
adapters[name] = function()
|
|
return create_adapter(config.type, name, config)
|
|
end
|
|
end
|
|
|
|
return {
|
|
{
|
|
"olimorris/codecompanion.nvim",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-treesitter/nvim-treesitter",
|
|
"echasnovski/mini.diff",
|
|
},
|
|
opts = {
|
|
display = {
|
|
diff = { provider = "mini_diff" },
|
|
chat = {
|
|
show_settings = false,
|
|
window = { position = "right", opts = { number = false } },
|
|
},
|
|
},
|
|
strategies = {
|
|
chat = { adapter = "gemini_high" },
|
|
inline = { adapter = "gemini_none" },
|
|
cmd = { adapter = "gemini_none" },
|
|
},
|
|
adapters = adapters,
|
|
},
|
|
keys = {
|
|
{ "<leader>cc", "<cmd>CodeCompanionChat<cr>", desc = "CodeCompanion Chat", silent = true },
|
|
{
|
|
"<leader>cf",
|
|
"<cmd>CodeCompanionChat gemini_none<cr>",
|
|
desc = "CodeCompanion Chat (Fast)",
|
|
silent = true,
|
|
},
|
|
{ "<leader>ca", "<cmd>CodeCompanionActions<cr>", desc = "CodeCompanion Actions", silent = true },
|
|
{ "<leader>ci", ":CodeCompanion<space>", mode = { "n", "v" }, desc = "CodeCompanion Inline" },
|
|
},
|
|
},
|
|
}
|