return { { "CopilotC-Nvim/CopilotChat.nvim", branch = "canary", cmd = "CopilotChat", opts = { model = "gpt-4", auto_insert_mode = true, window = { width = 0.4, }, selection = function(source) local select = require("CopilotChat.select") return select.visual(source) or select.buffer(source) end, }, keys = { { "aa", function() return require("CopilotChat").toggle() end, desc = "Toggle (CopilotChat)", }, { "ax", function() return require("CopilotChat").clear() end, desc = "Clear (CopilotChat)", }, { "aq", function() local input = vim.fn.input("Quick Chat: ") if input ~= "" then require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer }) end end, desc = "Quick Chat (CopilotChat)", }, }, init = function() LazyVim.on_load("which-key.nvim", function() vim.schedule(function() require("which-key").register({ a = { name = "+CopilotChat (AI)" } }, { prefix = "" }) end) end) end, config = function(_, opts) vim.api.nvim_create_autocmd("BufEnter", { pattern = "copilot-chat", callback = function() vim.opt_local.relativenumber = false vim.opt_local.number = false end, }) require("CopilotChat").setup(opts) end, }, { "nvim-telescope/telescope.nvim", optional = true, keys = { -- Show help actions with telescope { "ad", function() local actions = require("CopilotChat.actions") local help = actions.help_actions() if not help then LazyVim.warn("No diagnostics found on the current line") return end require("CopilotChat.integrations.telescope").pick(help) end, desc = "Diagnostic Help (CopilotChat)", }, -- Show prompts actions with telescope { "ap", function() local actions = require("CopilotChat.actions") require("CopilotChat.integrations.telescope").pick(actions.prompt_actions()) end, desc = "Prompt Actions (CopilotChat)", }, }, }, }