83 lines
2.5 KiB
Lua
83 lines
2.5 KiB
Lua
--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 = {
|
|
--default = "gemini-2.5-flash", -- oder "gemini-1.5-flash"
|
|
default = "gemma-2-2b-it-Q8_0",
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
}
|
|
|
|
-- Jetzt sagen wir den Strategien, wo sie suchen sollen:
|
|
-- Der Pfad ist intern nun "http.my_imac"
|
|
opts.strategies = {
|
|
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,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
return opts
|
|
end,
|
|
keys = {
|
|
{ "<leader>gc", "<cmd>CodeCompanion /commit<cr>", desc = "AI Generate Commit Message" },
|
|
},
|
|
}
|