feat(ai): add codecompanion.nvim as alternative to copilotchat.nvim

This commit is contained in:
George Guimarães 2024-08-06 18:35:48 -03:00
parent 3dbace941e
commit 554a304e51
No known key found for this signature in database
GPG key ID: 20E86F6F5FC22FA7

View file

@ -0,0 +1,47 @@
return {
{
"olimorris/codecompanion.nvim",
cmd = { "CodeCompanion", "CodeCompanionActions", "CodeCompanionToggle", "CodeCompanionAdd", "CodeCompanionChat" },
opts = function()
local options = require("codecompanion.config")
local user = vim.env.USER or "User"
options.strategies.chat.roles = {
llm = " CodeCompanion",
user = "" .. user:sub(1, 1):upper() .. user:sub(2),
}
options.strategies.chat.keymaps.close.modes = {
n = "q",
i = "<C-c>",
}
options.strategies.chat.keymaps.stop.modes.n = "<C-c>"
options.strategies.chat.keymaps.send.modes.n = "gS"
return options
end,
keys = {
{ "<leader>a", "", desc = "+ai", mode = { "n", "v" } },
{ "<leader>aA", "<cmd>CodeCompanionActions<cr>", mode = { "n", "v" }, desc = "Prompt Actions (CodeCompanion)" },
{ "<leader>aa", "<cmd>CodeCompanionToggle<cr>", mode = { "n", "v" }, desc = "Toggle (CodeCompanion)" },
{ "<leader>ac", "<cmd>CodeCompanionAdd<cr>", mode = "v", desc = "Add code to CodeCompanion" },
{ "<leader>ap", "<cmd>CodeCompanion<cr>", mode = "n", desc = "Inline prompt (CodeCompanion)" },
},
},
-- Edgy integration
{
"folke/edgy.nvim",
optional = true,
opts = function(_, opts)
opts.right = opts.right or {}
table.insert(opts.right, {
ft = "codecompanion",
title = "CodeCompanion Chat",
size = { width = 50 },
})
end,
},
}