catppuccin/resources/lua.lua
2021-12-08 10:45:11 -05:00

43 lines
1 KiB
Lua

local M = {}
local line_text
--- @class example
-- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean accumsan dapibus ex,
-- duis tincidunt consectetur nisl at auctor. Mauris et dictum urna, ac maximus mi.
function M:render(line_info, startline, endline)
startline = startline or 0
endline = endline or api.nvim_buf_line_count(self.buffer)
local lines = {}
for index, line in pairs(line_info) do
local line_no = index
local column = 1
if #line > 0 then
for _, segment in ipairs(line) do
table.insert(self.highlights, {
range = { line_no, column, #segment.text },
color_group = segment.color_group,
})
column = column + #segment.text
line_text = line_text .. segment.text
end
else
table.insert(self.highlights, {
range = { line_no },
color_group = line.color_group,
})
column = column + #line.text
line_text = line_text .. line.text
end
table.insert(lines, line_text)
end
api.nvim_buf_set_lines(self.buffer, start_line, end_line, true, lines)
self:_set_highlights()
end
return M