@@ -9,8 +9,6 @@ local RenderState = require('opencode.ui.render_state')
99local M = {
1010 _prev_line_count = 0 ,
1111 _render_state = RenderState .new (),
12- _full_render_in_flight = nil ,
13- _full_render_pending_opts = nil ,
1412 _last_part_formatted = {
1513 part_id = nil ,
1614 formatted_data = nil --[[ @as Output|nil]] ,
@@ -41,7 +39,6 @@ end, config.ui.output.rendering.markdown_debounce_ms or 250)
4139function M .reset ()
4240 M ._prev_line_count = 0
4341 M ._render_state :reset ()
44- M ._full_render_pending_opts = nil
4542 M ._last_part_formatted = { part_id = nil , formatted_data = nil }
4643
4744 output_window .clear ()
@@ -125,50 +122,17 @@ local function fetch_session()
125122 return require (' opencode.session' ).get_messages (session )
126123end
127124
128- --- @param opts ? { force_scroll ?: boolean }
125+ --- Request all of the session data from the opencode server and render it
129126--- @return Promise<OpencodeMessage[]>
130- function M .render_full_session (opts )
131- opts = opts or {}
132-
127+ function M .render_full_session ()
133128 if not output_window .mounted () or not state .api_client then
134129 return Promise .new ():resolve (nil )
135130 end
136131
137- if M ._full_render_in_flight then
138- M ._full_render_pending_opts = M ._full_render_pending_opts or {}
139- M ._full_render_pending_opts .force_scroll = M ._full_render_pending_opts .force_scroll
140- or (opts .force_scroll == true )
141- return M ._full_render_in_flight
142- end
143-
144- local render_promise = fetch_session ():and_then (function (session_data )
145- return M ._render_full_session_data (session_data , opts )
146- end )
147-
148- M ._full_render_in_flight = render_promise
149-
150- render_promise :finally (function ()
151- M ._full_render_in_flight = nil
152-
153- local pending_opts = M ._full_render_pending_opts
154- if pending_opts then
155- M ._full_render_pending_opts = nil
156- vim .schedule (function ()
157- if output_window .mounted () and state .api_client then
158- M .render_full_session (pending_opts )
159- end
160- end )
161- end
162- end )
163-
164- return render_promise
132+ return fetch_session ():and_then (M ._render_full_session_data )
165133end
166134
167- --- @param session_data table
168- --- @param opts ? { force_scroll ?: boolean }
169- function M ._render_full_session_data (session_data , opts )
170- opts = opts or {}
171- session_data = session_data or {}
135+ function M ._render_full_session_data (session_data , prev_revert , revert )
172136 M .reset ()
173137
174138 if not state .active_session or not state .messages then
@@ -200,7 +164,7 @@ function M._render_full_session_data(session_data, opts)
200164 if set_mode_from_messages then
201165 M ._set_model_and_mode_from_messages ()
202166 end
203- M .scroll_to_bottom (opts . force_scroll == true )
167+ M .scroll_to_bottom (true )
204168
205169 if config .hooks and config .hooks .on_session_loaded then
206170 pcall (config .hooks .on_session_loaded , state .active_session )
0 commit comments