local prefix = "a" local user = vim.env.USER or "User" return { { "olimorris/codecompanion.nvim", cmd = { "CodeCompanion", "CodeCompanionActions", "CodeCompanionToggle", "CodeCompanionAdd", "CodeCompanionChat" }, opts = { strategies = { chat = { adapter = "ollama", roles = { llm = " CodeCompanion", user = " " .. user:sub(1, 1):upper() .. user:sub(2), }, keymaps = { close = { modes = { n = "q", i = "" } }, stop = { modes = { n = "" } }, }, }, inline = { adapter = { adapter = "ollama" } }, agent = { adapter = { adapter = "ollama" } }, }, }, keys = { { prefix .. "a", "CodeCompanionActions", mode = { "n", "v" }, desc = "Action Palette" }, { prefix .. "c", "CodeCompanionChat", mode = { "n", "v" }, desc = "New Chat" }, { prefix .. "A", "CodeCompanionAdd", mode = "v", desc = "Add Code" }, { prefix .. "i", "CodeCompanion", mode = "n", desc = "Inline Prompt" }, { prefix .. "C", "CodeCompanionToggle", mode = "n", desc = "Toggle Chat" }, }, }, { "folke/which-key.nvim", opts = { spec = { { prefix, group = "ai", icon = "󱚦 " }, }, }, }, { "folke/edgy.nvim", optional = true, opts = function(_, opts) opts.right = opts.right or {} table.insert(opts.right, { ft = "codecompanion", title = "CodeCompanion", size = { width = 70 }, }) end, }, }