@@ -134,6 +134,23 @@ local function ensure_message_rendered(message)
134134 end
135135end
136136
137+ --- @param message_id string
138+ local function hide_rendered_message (message_id )
139+ local rendered_message = ctx .render_state :get_message (message_id )
140+ local message = rendered_message and rendered_message .message or find_message_in_state (message_id )
141+ if not message then
142+ return
143+ end
144+
145+ ctx .render_state :clear_orphan_parts (message_id )
146+ for _ , part in ipairs (message .parts or {}) do
147+ if part .id then
148+ flush .queue_part_removal (part .id )
149+ end
150+ end
151+ flush .queue_message_removal (message_id )
152+ end
153+
137154--- @param hidden_count integer
138155local function upsert_hidden_messages_notice (hidden_count )
139156 local existing_message = ctx .render_state :get_message (HIDDEN_MESSAGES_NOTICE_MESSAGE_ID )
@@ -156,23 +173,6 @@ local function upsert_hidden_messages_notice(hidden_count)
156173 flush .mark_part_dirty (HIDDEN_MESSAGES_NOTICE_PART_ID , HIDDEN_MESSAGES_NOTICE_MESSAGE_ID )
157174end
158175
159- --- @param message_id string
160- local function hide_rendered_message (message_id )
161- local rendered_message = ctx .render_state :get_message (message_id )
162- local message = rendered_message and rendered_message .message or find_message_in_state (message_id )
163- if not message then
164- return
165- end
166-
167- ctx .render_state :clear_orphan_parts (message_id )
168- for _ , part in ipairs (message .parts or {}) do
169- if part .id then
170- flush .queue_part_removal (part .id )
171- end
172- end
173- flush .queue_message_removal (message_id )
174- end
175-
176176local function reconcile_rendered_message_limit ()
177177 if not state .active_session or not state .messages then
178178 return
@@ -271,22 +271,22 @@ function M.setup_subscriptions(subscribe)
271271 end
272272
273273 local subs = {
274- { ' session.updated' , events .on_session_updated },
275- { ' session.compacted' , events .on_session_compacted },
276- { ' session.error' , events .on_session_error },
277- { ' message.updated' , events .on_message_updated },
278- { ' message.removed' , events .on_message_removed },
279- { ' message.part.updated' , events .on_part_updated },
280- { ' message.part.removed' , events .on_part_removed },
281- { ' permission.updated' , events .on_permission_updated },
282- { ' permission.asked' , events .on_permission_updated },
283- { ' permission.replied' , events .on_permission_replied },
284- { ' question.asked' , events .on_question_asked },
285- { ' question.replied' , events .clear_question_display },
286- { ' question.rejected' , events .clear_question_display },
287- { ' file.edited' , events .on_file_edited },
288- { ' custom.restore_point.created' , events .on_restore_points },
289- { ' custom.emit_events.finished' , M .on_emit_events_finished },
274+ { ' session.updated' , events .on_session_updated },
275+ { ' session.compacted' , events .on_session_compacted },
276+ { ' session.error' , events .on_session_error },
277+ { ' message.updated' , events .on_message_updated },
278+ { ' message.removed' , events .on_message_removed },
279+ { ' message.part.updated' , events .on_part_updated },
280+ { ' message.part.removed' , events .on_part_removed },
281+ { ' permission.updated' , events .on_permission_updated },
282+ { ' permission.asked' , events .on_permission_updated },
283+ { ' permission.replied' , events .on_permission_replied },
284+ { ' question.asked' , events .on_question_asked },
285+ { ' question.replied' , events .clear_question_display },
286+ { ' question.rejected' , events .clear_question_display },
287+ { ' file.edited' , events .on_file_edited },
288+ { ' custom.restore_point.created' , events .on_restore_points },
289+ { ' custom.emit_events.finished' , M .on_emit_events_finished },
290290 }
291291
292292 for _ , sub in ipairs (subs ) do
506506function M .get_prev_rendered_message (current_line )
507507 for i = # (state .messages or {}), 1 , - 1 do
508508 local message = state .messages [i ]
509- local rendered = message and message .info and message .info .id and ctx .render_state :get_message (message .info .id ) or nil
509+ local rendered = message and message .info and message .info .id and ctx .render_state :get_message (message .info .id )
510+ or nil
510511 if rendered and rendered .line_start and rendered .line_start + 1 < current_line then
511512 return rendered
512513 end
0 commit comments