Skip to content

Commit 551fd19

Browse files
committed
fix(streaming_renderer): extmarks row needs offset
Fixes diff tool formatting.
1 parent 7c03de6 commit 551fd19

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

lua/opencode/ui/streaming_renderer.lua

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ function M._shift_lines(from_line, delta)
2626
return
2727
end
2828

29+
vim.notify('Shifting lines from: ' .. from_line .. ' by delta: ' .. delta)
30+
2931
for part_id, part_data in pairs(M._part_cache) do
3032
if part_data.line_start and part_data.line_start >= from_line then
3133
part_data.line_start = part_data.line_start + delta
@@ -51,18 +53,13 @@ function M._apply_extmarks(buf, line_offset, extmarks)
5153
end
5254

5355
for line_idx, marks in pairs(extmarks) do
54-
if type(marks) == 'table' then
55-
for _, mark in ipairs(marks) do
56-
local actual_mark = mark
57-
if type(mark) == 'function' then
58-
actual_mark = mark()
59-
end
60-
61-
if type(actual_mark) == 'table' then
62-
local target_line = line_offset + line_idx - 1
63-
pcall(vim.api.nvim_buf_set_extmark, buf, M._namespace, target_line, 0, actual_mark)
64-
end
56+
for _, mark in ipairs(marks) do
57+
local actual_mark = type(mark) == 'function' and mark() or mark
58+
local target_line = line_offset + line_idx - 1
59+
if actual_mark.end_row then
60+
actual_mark.end_row = actual_mark.end_row + line_offset
6561
end
62+
pcall(vim.api.nvim_buf_set_extmark, buf, M._namespace, target_line, 0, actual_mark)
6663
end
6764
end
6865
end

0 commit comments

Comments
 (0)