@@ -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
6865end
0 commit comments