Skip to content

Commit 3459528

Browse files
Fix getting lines on big nodes that are over 5k lines.
1 parent c30b645 commit 3459528

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lua/orgmode/utils/init.lua

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,22 @@ function utils.get_node_text(node, content)
293293
if end_col == 0 then
294294
end_line = end_row
295295
end
296-
local lines = { unpack(content, start_line, end_line) }
296+
local range = end_line - start_line + 1
297+
local lines = {}
298+
if range < 5000 then
299+
lines = { unpack(content, start_line, end_line) }
300+
else
301+
local chunks = math.floor(range / 5000)
302+
local leftover = range % 5000
303+
for i = 1, chunks do
304+
lines = utils.concat(lines, { unpack(content, (i - 1) * 5000 + 1, i * 5000) })
305+
end
306+
if leftover > 0 then
307+
local s = chunks * 5000
308+
lines = utils.concat(lines, { unpack(content, s + 1, s + leftover) })
309+
end
310+
end
311+
297312
lines[1] = string.sub(lines[1], start_col + 1)
298313
if end_col > 0 then
299314
lines[#lines] = string.sub(lines[#lines], 1, end_col)

0 commit comments

Comments
 (0)