local prefix = "A" return { { "jellydn/gen.nvim", opts = { model = "codellama", host = "localhost", port = "11434", display_mode = "split", show_prompt = true, show_model = true, no_auto_close = false, init = function(options) pcall(io.popen, "ollama serve > /dev/null 2>&1 &") end, command = function(options) local body = { model = options.model, stream = true } return "curl --silent --no-buffer -X POST http://" .. options.host .. ":" .. options.port .. "/api/generate -d $body" end, }, config = function(_, opts) local gen = require("gen") gen.setup(opts) gen.prompts["Elaborate_Text"] = { prompt = "Elaborate the following text:\n$text", } gen.prompts["Fix_Code"] = { prompt = "Fix the following code. Only output the result in format ```$filetype\n...\n```:\n```$filetype\n$text\n```", extract = "```$filetype\n(.-)```", } end, keys = { { prefix .. "i", "Gen", mode = { "n", "v" }, desc = "IA (Gen)" }, { prefix .. "g", "Gen Generate", mode = { "n" }, desc = "Generate" }, { prefix .. "c", "Gen Chat", mode = { "n" }, desc = "Chat" }, { prefix .. "s", "Gen Summarize", mode = { "n", "v" }, desc = "Summarize" }, { prefix .. "a", "Gen Ask", mode = { "v" }, desc = "Ask" }, { prefix .. "H", "Gen Change", mode = { "v" }, desc = "Change" }, { prefix .. "G", "Gen Enhance_Grammar_Spelling", mode = { "v" }, desc = "Enhance Grammar Spelling" }, { prefix .. "w", "Gen Enhance_Wording", mode = { "v" }, desc = "Enhance Wording" }, { prefix .. "C", "Gen Make_Concise", mode = { "v" }, desc = "Make Concise" }, { prefix .. "l", "Gen Make_List", mode = { "v" }, desc = "Make List" }, { prefix .. "t", "Gen Make_Table", mode = { "v" }, desc = "Make Table" }, { prefix .. "r", "Gen Review_Code", mode = { "v" }, desc = "Review Code" }, { prefix .. "e", "Gen Enhance_Code", mode = { "v" }, desc = "Enhance Code" }, { prefix .. "h", "Gen Change_Code", mode = { "v" }, desc = "Change Code" }, { prefix .. "f", "Gen Fix_Code", mode = { "v" }, desc = "Fix Code" }, { prefix .. "E", "Gen Elaborate_Text", mode = { "v" }, desc = "Elaborate Text" }, }, }, { "folke/which-key.nvim", opts = { spec = { { prefix, group = "IA (Gen)", icon = "󱚦 " }, }, }, }, }