diff options
| author | Wayne-Cole <77279425+Wacky404@users.noreply.github.com> | 2026-06-10 11:06:55 -0500 |
|---|---|---|
| committer | Wayne-Cole <77279425+Wacky404@users.noreply.github.com> | 2026-06-10 11:06:55 -0500 |
| commit | 7e8f65974ddd27a4dc131f2455933c0dc2e5d1ea (patch) | |
| tree | 5ff2e92e22800b554ada35474e2437b6e0e05f1d /lua/99/ops/over-range.lua | |
| parent | 53c60a9213f4e899bc411373ea2f0c20cf716826 (diff) | |
| download | a4-master.tar.xz a4-master.zip | |
Diffstat (limited to 'lua/99/ops/over-range.lua')
| -rw-r--r-- | lua/99/ops/over-range.lua | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/lua/99/ops/over-range.lua b/lua/99/ops/over-range.lua index 0562a7d..c1fca2a 100644 --- a/lua/99/ops/over-range.lua +++ b/lua/99/ops/over-range.lua @@ -3,6 +3,7 @@ local RequestStatus = require("99.ops.request_status") local Mark = require("99.ops.marks") +local BaseProvider = require("99.providers") local geo = require("99.geo") local make_prompt = require("99.ops.make-prompt") local CleanUp = require("99.ops.clean-up") @@ -48,10 +49,9 @@ local function over_range(context, opts) end) local system_cmd = context._99.prompts.prompts.visual_selection(range) - local prompt, refs = make_prompt(context, system_cmd, opts) + local prompt = make_prompt(context, system_cmd, opts) context:add_prompt_content(prompt) - context:add_references(refs) context:add_clean_up(clean_up) top_status:start() @@ -64,7 +64,7 @@ local function over_range(context, opts) ) elseif status == "failed" then logger:error( - "request failed for visual_selection", + "request failed for visual selection", "error response", response or "no response provided" ) @@ -78,16 +78,27 @@ local function over_range(context, opts) return end - if vim.trim(response) == "" then - print("response was empty, visual replacement aborted") + local dt = + BaseProvider.BareMetalProvider._parse_openai_response( + vim.json.decode(response) + ) --[[ @as _A4.OpenAIResponse ]] + + dt.completion.message.content = + BaseProvider.BareMetalProvider._clean_response( + dt.completion.message.content + ) + + if vim.trim(dt.completion.message.content) == "" then logger:debug( "response was empty, visual replacement aborted" ) return end + context.req_response = dt.completion.message.content + local new_range = Range.from_marks(top_mark, bottom_mark) - local lines = vim.split(response, "\n") + local lines = vim.split(dt.completion.message.content, "\n") --- HACK: i am adding a new line here because above range will add a mark to the line above. --- that way this appears to be added to "the same line" as the visual selection was |
