|
|
|
local M = {}
|
|
|
|
|
|
|
|
local line_text = { here = "hey" }
|
|
|
|
local test_tbl = {
|
|
|
|
num = 0,
|
|
|
|
bool = true,
|
|
|
|
str = "aye!",
|
|
|
|
something = line_text.here
|
|
|
|
}
|
|
|
|
|
|
|
|
--- @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,
|
|
|
|
})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
table.insert(lines, line_text)
|
|
|
|
end
|
|
|
|
|
|
|
|
api.nvim_buf_set_lines(self.buffer, start_line, end_line, true, lines)
|
|
|
|
self:_set_highlights()
|
|
|
|
end
|
|
|
|
|
|
|
|
local function setup_win_properties()
|
|
|
|
local buffer_window = require("minimap.modules.logic.buffer_window")
|
|
|
|
|
|
|
|
local win_props = {
|
|
|
|
style = opts["win_properties"]["style"],
|
|
|
|
relative = "win",
|
|
|
|
win = 0,
|
|
|
|
focusable = true,
|
|
|
|
anchor = "NE",
|
|
|
|
row = 0,
|
|
|
|
height = opts["win_properties"]["height"][1],
|
|
|
|
width = opts["win_properties"]["width"][1]
|
|
|
|
}
|
|
|
|
|
|
|
|
if (opts["win_properties"]["align"] == "right") then
|
|
|
|
win_props["col"] = buffer_window.handle_relative_win_properties("col")
|
|
|
|
elseif (opts["win_properties"]["align"] == "left") then
|
|
|
|
win_props["col"] = 0
|
|
|
|
end
|
|
|
|
|
|
|
|
mmbuf_win_api.set_win_properties(win_props)
|
|
|
|
end
|
|
|
|
|
|
|
|
return M
|