--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 = { { "gc", "CodeCompanion /commit", desc = "AI Generate Commit Message" }, }, }