local oop = require("diffview.oop")
local Scanner = oop.create_class("Scanner")
function Scanner:init(source)
if type(source) == "table" then
self.lines = source
else
self.lines = vim.split(source, "\r?\n")
end
self.line_idx = 0
end
function Scanner:peek_line(n)
return self.lines[self.line_idx + math.max(1, n or 1)]
end
function Scanner:cur_line()
return self.lines[self.line_idx]
end
function Scanner:cur_line_idx()
return self.line_idx
end
function Scanner:next_line()
self.line_idx = self.line_idx + 1
return self.lines[self.line_idx]
end
function Scanner:skip_line(n)
self.line_idx = self.line_idx + math.max(1, n or 1)
return self.lines[self.line_idx]
end
return Scanner