dotfiles/.config/nvim/lua/plugins/extras/coding/ai/codecompanion.lua
2024-08-25 02:17:06 +02:00

53 lines
1.6 KiB
Lua

local prefix = "<leader>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 = "<C-c>" } },
stop = { modes = { n = "<C-c>" } },
},
},
inline = { adapter = { adapter = "ollama" } },
agent = { adapter = { adapter = "ollama" } },
},
},
keys = {
{ prefix .. "a", "<cmd>CodeCompanionActions<cr>", mode = { "n", "v" }, desc = "Action Palette" },
{ prefix .. "c", "<cmd>CodeCompanionChat<cr>", mode = { "n", "v" }, desc = "New Chat" },
{ prefix .. "A", "<cmd>CodeCompanionAdd<cr>", mode = "v", desc = "Add Code" },
{ prefix .. "i", "<cmd>CodeCompanion<cr>", mode = "n", desc = "Inline Prompt" },
{ prefix .. "C", "<cmd>CodeCompanionToggle<cr>", 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,
},
}