Configure CodeCompanion plugin

This commit is contained in:
Daniel McKnight 2025-10-07 20:52:59 -07:00
parent 3ac084f28e
commit 84e15f0e20

View file

@ -1,43 +1,86 @@
return { return {
{ {
"github/copilot.vim", "github/copilot.vim",
config = function() config = function()
vim.keymap.set("n", "<leader>ce", ":Copilot enable<CR>", { desc = "Enable Copilot Completions" }) vim.keymap.set("n", "<leader>ce", ":Copilot enable<CR>", { desc = "Enable Copilot Completions" })
vim.keymap.set("n", "<leader>cd", ":Copilot disable<CR>", { desc = "Disable Copilot Completions" }) vim.keymap.set("n", "<leader>cd", ":Copilot disable<CR>", { desc = "Disable Copilot Completions" })
vim.keymap.set("i", "<C-a>", "copilot#Accept()", { vim.keymap.set("i", "<C-a>", "copilot#Accept()", {
expr = true, expr = true,
silent = true, silent = true,
replace_keycodes = false, replace_keycodes = false,
}) })
vim.g.copilot_no_tab_map = true vim.g.copilot_no_tab_map = true
end, end,
}, },
{ {
"CopilotC-Nvim/CopilotChat.nvim", "CopilotC-Nvim/CopilotChat.nvim",
tag = "v3.4.0", tag = "v3.4.0",
dependencies = { dependencies = {
{ "nvim-lua/plenary.nvim" }, { "nvim-lua/plenary.nvim" },
{ "github/copilot.vim" }, { "github/copilot.vim" },
}, },
build = "make tiktoken", build = "make tiktoken",
config = function() config = function()
vim.keymap.set("n", "<leader>cc", ":CopilotChatToggle<CR>", { desc = "Toggle Copilot Chat" }) -- vim.keymap.set("n", "<leader>cc", ":CopilotChatToggle<CR>", { desc = "Toggle Copilot Chat" })
vim.keymap.set("n", "<leader>cx", ":CopilotChatReset<CR>", { desc = "Reset Copilot Chat" }) -- vim.keymap.set("n", "<leader>cx", ":CopilotChatReset<CR>", { desc = "Reset Copilot Chat" })
require("CopilotChat").setup({ require("CopilotChat").setup({
question_header = "", question_header = "",
answer_header = "", answer_header = "",
separator = "", separator = "",
error_header = "> [!ERROR] Error", error_header = "> [!ERROR] Error",
window = { window = {
layout = "horizontal", layout = "horizontal",
height = 0.3, height = 0.3,
width = 0.25, width = 0.25,
}, },
auto_insert_mode = false, auto_insert_mode = false,
chat_autocomplete = false, chat_autocomplete = false,
highlight_headers = false, highlight_headers = false,
show_help = false, show_help = false,
}) })
end, end,
}, },
{
"olimorris/codecompanion.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"franco-ruggeri/codecompanion-spinner.nvim",
},
config = function()
vim.keymap.set("n", "<leader>cc", ":CodeCompanionChat Toggle<CR>", { desc = "Toggle CodeCompanion Chat" })
vim.keymap.set("v", "<leader>cc", ":CodeCompanionChat Add<CR>", { desc = "Add Context to CodeCompanion Chat" })
vim.keymap.set(
"n",
"<leader>cx",
":CodeCompanion chat clear<CR>",
{ desc = "Clear CodeCompanion Chat History" }
)
require("codecompanion").setup({
strategies = {
chat = {
adapter = "copilot",
model = "claude-3.5-sonnet",
},
},
extensions = {
spinner = {},
},
display = {
action_palette = {
width = 95,
height = 10,
prompt = "Prompt ", -- Prompt used for interactive LLM calls
provider = "default",
opts = {
show_default_actions = true, -- Show the default actions in the action palette?
show_default_prompt_library = true, -- Show the default prompt library in the action palette?
title = "CodeCompanion actions", -- The title of the action palette
},
},
},
log_level = "DEBUG",
})
end,
},
} }