diff options
| author | theprimeagain <the.primeagen@gmail.com> | 2026-02-16 12:12:35 -0700 |
|---|---|---|
| committer | theprimeagain <the.primeagen@gmail.com> | 2026-02-18 07:00:29 -0700 |
| commit | 3e334a0e08cd6618d7ee50fdf7810712265a3a77 (patch) | |
| tree | 958f9b03210644b38204f73d51385f5d9445baf1 /lua/99/ops/tutorial.lua | |
| parent | 82e5573f753793e89ab614429e3a390c808b1048 (diff) | |
| download | a4-3e334a0e08cd6618d7ee50fdf7810712265a3a77.tar.xz a4-3e334a0e08cd6618d7ee50fdf7810712265a3a77.zip | |
Tutorials are ready (ish)
Diffstat (limited to 'lua/99/ops/tutorial.lua')
| -rw-r--r-- | lua/99/ops/tutorial.lua | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/lua/99/ops/tutorial.lua b/lua/99/ops/tutorial.lua index 10d3530..320366f 100644 --- a/lua/99/ops/tutorial.lua +++ b/lua/99/ops/tutorial.lua @@ -1,10 +1,36 @@ local Request = require("99.request") local CleanUp = require("99.ops.clean-up") +local Window = require("99.window") local make_prompt = require("99.ops.make-prompt") local make_clean_up = CleanUp.make_clean_up local make_observer = CleanUp.make_observer ---- @class _99.Tutorial.Result + +--- @class _99.RequestEntry.Data.Tutorial +--- @field type "tutorial" +--- @field buffer number +--- @field window number +--- @field xid number +--- @field tutorial string[] + +--- @param context _99.RequestContext +---@param response string +---@return _99.RequestEntry.Data.Tutorial +local function open_tutorial(context, response) + local content = vim.split(response, "\n") + local win = Window.create_split(content) + + --- @type _99.RequestEntry.Data.Tutorial + local data = { + type = "tutorial", + buffer = win.buffer, + window = win.win, + xid = context.xid, + tutorial = content, + } + context._99:add_data(context, data) + return data +end --- @param context _99.RequestContext ---@param opts _99.ops.Opts @@ -22,6 +48,7 @@ local function tutorial(context, opts) local prompt, refs = make_prompt(context, context._99.prompts.prompts.tutorial(), opts) + context:add_references(refs) request:add_prompt_content(prompt) context:add_clean_up(clean_up) @@ -37,9 +64,9 @@ local function tutorial(context, opts) response or "no response provided" ) elseif status == "success" then - error("what the hell") + local data = open_tutorial(context, response) + context._99:open_tutorial(data) end end)) - end return tutorial |
