From 796cdf1fc88f5b9d99fb34a3925b289ce03faa1f Mon Sep 17 00:00:00 2001 From: 1orzero Date: Sat, 6 Jul 2024 22:51:00 +0800 Subject: [PATCH 1/2] feat: add on_complete_callback to query and Prompt --- lua/gp/init.lua | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lua/gp/init.lua b/lua/gp/init.lua index 4cc668c..af4bfed 100644 --- a/lua/gp/init.lua +++ b/lua/gp/init.lua @@ -1060,7 +1060,8 @@ end ---@param payload table # payload for openai api ---@param handler function # response handler ---@param on_exit function | nil # optional on_exit handler -M.query = function(buf, payload, handler, on_exit) +---@param on_complete_callback function | nil # optional on_complete_callback handler +M.query = function(buf, payload, handler, on_exit, on_complete_callback) -- make sure handler is a function if type(handler) ~= "function" then M.error( @@ -1157,6 +1158,13 @@ M.query = function(buf, payload, handler, on_exit) end) end end + + -- optional on_complete_callback handler + if type(on_complete_callback) == "function" then + vim.schedule(function() + on_complete_callback(qt.response) + end) + end end end end @@ -2496,7 +2504,7 @@ M.cmd.Context = function(params) M._H.feedkeys("G", "xn") end -M.Prompt = function(params, target, prompt, model, template, system_template, whisper) +M.Prompt = function(params, target, prompt, model, template, system_template, whisper, on_complete_callback) -- enew, new, vnew, tabnew should be resolved into table if type(target) == "function" then target = target() @@ -2769,7 +2777,8 @@ M.Prompt = function(params, target, prompt, model, template, system_template, wh vim.schedule_wrap(function(qid) on_exit(qid) vim.cmd("doautocmd User GpDone") - end) + end), + on_complete_callback ) end From 1834a412c99beebbded7c2b6e4a0d5e1e7566d65 Mon Sep 17 00:00:00 2001 From: 1orzero Date: Wed, 10 Jul 2024 18:23:50 +0800 Subject: [PATCH 2/2] fix: add back provider parameter to M.query function --- lua/gp/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/gp/init.lua b/lua/gp/init.lua index efa8692..bada7ae 100644 --- a/lua/gp/init.lua +++ b/lua/gp/init.lua @@ -1299,7 +1299,7 @@ end ---@param handler function # response handler ---@param on_exit function | nil # optional on_exit handler ---@param on_complete_callback function | nil # optional on_complete_callback handler -M.query = function(buf, payload, handler, on_exit, on_complete_callback) +M.query = function(buf, provider, payload, handler, on_exit, on_complete_callback) -- make sure handler is a function if type(handler) ~= "function" then M.error(