return { { "Exafunction/codeium.vim", event = "BufEnter", config = function() vim.g.codeium_disable_bindings = 1 vim.keymap.set("i", "", function() return vim.fn["codeium#Accept"]() end, { expr = true }) vim.keymap.set("i", "", function() return vim.fn["codeium#CycleCompletions"](1) end, { expr = true }) vim.keymap.set("i", "", function() return vim.fn["codeium#CycleCompletions"](-1) end, { expr = true }) vim.keymap.set("i", "", function() return vim.fn["codeium#Clear"]() end, { expr = true }) vim.keymap.set("n", "cI", function() if vim.g.codeium_enabled == true then vim.cmd("CodeiumDisable") else vim.cmd("CodeiumEnable") end end, { noremap = true, desc = "Toggle Codeium" }) end, }, { "jackMort/ChatGPT.nvim", opts = { api_key_cmd = nil, --TODO: manage the API key edit_with_instructions = { diff = false, keymaps = { close = "", accept = "", toggle_diff = "", toggle_settings = "", cycle_windows = "", use_output_as_input = "", }, }, chat = { welcome_message = "", keymaps = { close = { "" }, yank_last = "", yank_last_code = "", scroll_up = "", scroll_down = "", new_session = "", cycle_windows = "", cycle_modes = "", next_message = "", prev_message = "", select_session = { "", "o", "" }, rename_session = "r", delete_session = "d", draft_message = "", edit_message = "e", delete_message = "d", toggle_settings = "", toggle_message_role = "", toggle_system_role_open = "", stop_generating = "", }, }, openai_params = { model = "gpt-3.5-turbo-16k", -- model = "gpt-4", frequency_penalty = 0, presence_penalty = 0, max_tokens = 300, temperature = 0.3, top_p = 0.3, n = 1, -- temperature = 0, -- top_p = 1, }, openai_edit_params = { model = "gpt-3.5-turbo-16k", -- model = "gpt-4", frequency_penalty = 0, presence_penalty = 0, temperature = 0, top_p = 1, n = 1, }, show_quickfixes_cmd = "Trouble quickfix", -- actions_paths = { "~/.config/nvim/custom_actions.json" }, }, cmd = { "ChatGPT", "ChatGPTActAs", "ChatGPTCompleteCode", "ChatGPTEditWithInstructions", "ChatGPTRun", }, keys = { { "Cc", "ChatGPT", desc = "ChatGPT" }, { "Ce", "ChatGPTEditWithInstruction", desc = "Edit with instruction", mode = { "n", "v" } }, { "Cg", "ChatGPTRun grammar_correction", desc = "Grammar Correction", mode = { "n", "v" } }, { "Ct", "ChatGPTRun translate", desc = "Translate", mode = { "n", "v" } }, { "Ck", "ChatGPTRun keywords", desc = "Keywords", mode = { "n", "v" } }, { "Cd", "ChatGPTRun docstring", desc = "Docstring", mode = { "n", "v" } }, { "Ca", "ChatGPTRun add_tests", desc = "Add Tests", mode = { "n", "v" } }, { "Co", "ChatGPTRun optimize_code", desc = "Optimize Code", mode = { "n", "v" } }, { "Cs", "ChatGPTRun summarize", desc = "Summarize", mode = { "n", "v" } }, { "Cf", "ChatGPTRun fix_bugs", desc = "Fix Bugs", mode = { "n", "v" } }, { "Cx", "ChatGPTRun explain_code", desc = "Explain Code", mode = { "n", "v" } }, { "Cr", "ChatGPTRun roxygen_edit", desc = "Roxygen Edit", mode = { "n", "v" } }, { "Cl", "ChatGPTRun code_readability_analysis", desc = "Code Readability Analysis", mode = { "n", "v" }, }, }, }, { "folke/which-key.nvim", opts = { defaults = { ["C"] = { name = "+chatGPT" }, }, }, }, { "zbirenbaum/copilot.lua", enabled = false, opts = { suggestion = { enabled = true, auto_trigger = true, keymap = { accept = "", accept_line = "", accept_word = "", next = "", prev = "", dismiss = "", }, }, panel = { enabled = false }, filetypes = { markdown = true, help = true, }, }, }, }