return { "jackMort/ChatGPT.nvim", event = "VeryLazy", opts = { api_key_cmd = nil, yank_register = "+", edit_with_instructions = { diff = false, keymaps = { -- close = "", -- accept = "", -- toggle_diff = "", -- toggle_settings = "", -- toggle_help = "", -- cycle_windows = "", -- use_output_as_input = "", submit = "", }, }, chat = { -- welcome_message = WELCOME_MESSAGE, loading_text = "Loading, please wait ...", question_sign = "", -- 🙂 answer_sign = "ﮧ", -- 🤖 border_left_sign = "", border_right_sign = "", max_line_length = 120, sessions_window = { active_sign = "  ", inactive_sign = "  ", current_line_sign = "", border = { style = "rounded", text = { top = " Sessions ", }, }, win_options = { winhighlight = "Normal:Normal,FloatBorder:FloatBorder", }, }, keymaps = { -- close = "", -- yank_last = "", -- yank_last_code = "", -- scroll_up = "", -- scroll_down = "", -- new_session = "", -- cycle_windows = "", -- cycle_modes = "", -- next_message = "", -- prev_message = "", -- select_session = "", -- rename_session = "r", -- delete_session = "d", -- draft_message = "", -- edit_message = "e", -- delete_message = "d", -- toggle_settings = "", -- toggle_sessions = "", -- toggle_help = "", -- toggle_message_role = "", -- toggle_system_role_open = "", -- stop_generating = "", submit = "", }, }, popup_layout = { default = "center", center = { width = "80%", height = "80%", }, right = { width = "30%", width_settings_open = "50%", }, }, popup_window = { border = { highlight = "FloatBorder", style = "rounded", text = { top = " ChatGPT ", }, }, win_options = { wrap = true, linebreak = true, foldcolumn = "1", winhighlight = "Normal:Normal,FloatBorder:FloatBorder", }, buf_options = { filetype = "markdown", }, }, system_window = { border = { highlight = "FloatBorder", style = "rounded", text = { top = " SYSTEM ", }, }, win_options = { wrap = true, linebreak = true, foldcolumn = "2", winhighlight = "Normal:Normal,FloatBorder:FloatBorder", }, }, popup_input = { prompt = "  ", border = { highlight = "FloatBorder", style = "rounded", text = { top_align = "center", top = " Prompt ", }, }, win_options = { winhighlight = "Normal:Normal,FloatBorder:FloatBorder", }, submit = "", submit_n = "", max_visible_lines = 20, }, settings_window = { setting_sign = "  ", border = { style = "rounded", text = { top = " Settings ", }, }, win_options = { winhighlight = "Normal:Normal,FloatBorder:FloatBorder", }, }, help_window = { setting_sign = "  ", border = { style = "rounded", text = { top = " Help ", }, }, win_options = { winhighlight = "Normal:Normal,FloatBorder:FloatBorder", }, }, openai_params = { model = "gpt-3.5-turbo", frequency_penalty = 0, presence_penalty = 0, max_tokens = 300, temperature = 0, top_p = 1, n = 1, }, openai_edit_params = { model = "gpt-3.5-turbo", frequency_penalty = 0, presence_penalty = 0, temperature = 0, top_p = 1, n = 1, }, use_openai_functions_for_edits = false, actions_paths = {}, show_quickfixes_cmd = "Trouble quickfix", predefined_chat_gpt_prompts = "https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv", highlights = { help_key = "@symbol", help_description = "@comment", }, }, config = function() require("chatgpt").setup() end, dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim", "folke/trouble.nvim", "nvim-telescope/telescope.nvim", }, keys = { { "ap", "ChatGPT", desc = "ChatGPT" }, { "ae", "ChatGPTEditWithInstruction", desc = "Edit with instruction", mode = { "n", "v" } }, { "aa", "ChatGPTActAs", desc = "Act as", mode = { "n", "v" } }, { "ag", "ChatGPTRun grammar_correction", desc = "Grammar Correction", mode = { "n", "v" } }, { "aT", "ChatGPTRun translate", desc = "Translate", mode = { "n", "v" } }, { "ak", "ChatGPTRun keywords", desc = "Keywords", mode = { "n", "v" } }, { "ad", "ChatGPTRun docstring", desc = "Docstring", mode = { "n", "v" } }, { "at", "ChatGPTRun add_tests", desc = "Add Tests", mode = { "n", "v" } }, { "ao", "ChatGPTRun optimize_code", desc = "Optimize Code", mode = { "n", "v" } }, { "as", "ChatGPTRun summarize", desc = "Summarize", mode = { "n", "v" } }, { "af", "ChatGPTRun fix_bugs", desc = "Fix Bugs", mode = { "n", "v" } }, { "ax", "ChatGPTRun explain_code", desc = "Explain Code", mode = { "n", "v" } }, { "ar", "ChatGPTRun roxygen_edit", desc = "Roxygen Edit", mode = { "n", "v" } }, { "al", "ChatGPTRun code_readability_analysis", desc = "Code Readability Analysis", mode = { "n", "v" }, }, }, }