Skip to content

Commit 6ffda7d

Browse files
committed
fix(ui/renderer): restore eventignorewin safely and scope markdown rendering
This should fix #350
1 parent 35ea98a commit 6ffda7d

2 files changed

Lines changed: 19 additions & 6 deletions

File tree

lua/opencode/ui/renderer/flush.lua

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,12 @@ local function with_suppressed_output_autocmds(fn)
5555
local begin_ok, began_update = xpcall(output_window.begin_update, debug.traceback)
5656
if not begin_ok then
5757
if has_output_win and supports_eventignorewin then
58-
pcall(vim.api.nvim_set_option_value, 'eventignorewin', saved_eventignorewin, { win = output_win, scope = 'local' })
58+
pcall(
59+
vim.api.nvim_set_option_value,
60+
'eventignorewin',
61+
saved_eventignorewin,
62+
{ win = output_win, scope = 'local' }
63+
)
5964
end
6065
error(began_update)
6166
end
@@ -319,9 +324,15 @@ local function format_part(part_id)
319324
end
320325

321326
local is_last_part = (buffer.get_last_part_for_message(message) == part_id)
322-
local ok, formatted_or_err = pcall(formatter.format_part, rendered_part.part, message, is_last_part, function(session_id)
323-
return ctx.render_state:get_child_session_parts(session_id)
324-
end)
327+
local ok, formatted_or_err = pcall(
328+
formatter.format_part,
329+
rendered_part.part,
330+
message,
331+
is_last_part,
332+
function(session_id)
333+
return ctx.render_state:get_child_session_parts(session_id)
334+
end
335+
)
325336
if not ok then
326337
warn_part_render_error_once(part_id, rendered_part.message_id, formatted_or_err)
327338
return nil, rendered_part.message_id
@@ -448,7 +459,9 @@ local function do_trigger_on_data_rendered()
448459
if cb_type == 'function' then
449460
pcall(config.ui.output.rendering.on_data_rendered, state.windows.output_buf, state.windows.output_win)
450461
elseif vim.fn.exists(':RenderMarkdown') > 0 then
451-
vim.cmd(':RenderMarkdown')
462+
vim.api.nvim_buf_call(state.windows.output_buf, function()
463+
vim.cmd(':RenderMarkdown buf_enable')
464+
end)
452465
elseif vim.fn.exists(':Markview') > 0 then
453466
vim.cmd(':Markview render ' .. state.windows.output_buf)
454467
end

tests/unit/core_spec.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ describe('opencode.core', function()
516516
flush.trigger_on_data_rendered()
517517

518518
assert.equals(output_window.markdown_namespace, vim.b[buf].opencode_markdown_namespace)
519-
assert.stub(cmd_stub).was_called_with(':RenderMarkdown')
519+
assert.stub(cmd_stub).was_called_with(':RenderMarkdown buf_enable')
520520

521521
cmd_stub:revert()
522522
defer_stub:revert()

0 commit comments

Comments
 (0)