AstroVimConfig/lua/plugins/codecompanion.lua

83 lines
2.5 KiB
Lua
Raw Normal View History

2026-04-04 15:48:59 +00:00
--if true then return {} end
return {
"olimorris/codecompanion.nvim",
opts = function(_, opts)
opts = opts or {}
-- Wir bauen die Struktur EXAKT wie in deinem Doku-Beispiel
opts.adapters = {
-- Die Ebene 'http' ist hier der entscheidende Container
http = {
my_imac = function()
return require("codecompanion.adapters").extend("openai_compatible", {
env = {
url = os.getenv "LOCAL_LLM", -- Dein lokaler iMac Port
api_key = "local-not-needed",
},
schema = {
model = {
default = "qwen2.5-7b-coder",
},
},
})
end,
my_gemini = function()
return require("codecompanion.adapters").extend("gemini", {
env = {
-- Ersetze dies durch deinen echten API Key oder nutze eine Umgebungsvariable
api_key = os.getenv "GEMENI_API_KEY",
},
schema = {
model = {
2026-04-08 20:32:30 +00:00
--default = "gemini-2.5-flash", -- oder "gemini-1.5-flash"
default = "gemma-2-2b-it-Q8_0",
2026-04-04 15:48:59 +00:00
},
},
})
end,
},
}
-- Jetzt sagen wir den Strategien, wo sie suchen sollen:
-- Der Pfad ist intern nun "http.my_imac"
opts.strategies = {
2026-04-08 20:32:30 +00:00
chat = { adapter = "my_gemini" },
inline = { adapter = "my_gemini" },
agent = { adapter = "my_gemini" },
}
opts.prompt_library = {
["Generate Commit Message"] = {
strategy = "chat",
description = "Erstellt eine Commit-Message basierend auf den Staged Changes",
opts = {
index = 1,
is_default = true,
is_slash_cmd = true, -- Erlaubt /commit im Chat
short_name = "commit",
auto_submit = true,
},
prompts = {
{
role = "system",
content = "Write a concise commit message in Conventional Commits format based on the diff provided. Use present tense. Do not use wordy explanations.",
},
{
role = "user",
content = function()
return "Hier ist der Diff der gestageden Änderungen:\n\n```diff\n"
.. vim.fn.system "git diff --staged"
.. "\n```"
end,
},
},
},
2026-04-04 15:48:59 +00:00
}
return opts
end,
2026-04-08 20:32:30 +00:00
keys = {
{ "<leader>gc", "<cmd>CodeCompanion /commit<cr>", desc = "AI Generate Commit Message" },
},
2026-04-04 15:48:59 +00:00
}