1
1
mirror of https://github.com/sxyazi/yazi.git synced 2024-12-22 08:11:33 +03:00
yazi/yazi-plugin/preset/ui.lua

41 lines
723 B
Lua
Raw Normal View History

2023-10-11 19:09:10 +03:00
ui = {
-- FIXME: merge those three into their own modules
2023-10-11 19:09:10 +03:00
Alignment = {
LEFT = 0,
CENTER = 1,
RIGHT = 2,
},
Direction = {
HORIZONTAL = false,
VERTICAL = true,
},
Position = {
NONE = 0,
TOP = 1,
RIGHT = 2,
2023-10-17 07:34:35 +03:00
BOTTOM = 4,
LEFT = 8,
ALL = 15,
},
2023-10-11 19:09:10 +03:00
}
function ui.highlight_ranges(s, ranges)
if ranges == nil or #ranges == 0 then
return { ui.Span(s) }
end
local spans = {}
local last = 0
for _, r in ipairs(ranges) do
if r[1] > last then
spans[#spans + 1] = ui.Span(s:sub(last + 1, r[1]))
end
spans[#spans + 1] = ui.Span(s:sub(r[1] + 1, r[2])):style(THEME.manager.find_keyword)
2023-10-11 19:09:10 +03:00
last = r[2]
end
if last < #s then
spans[#spans + 1] = ui.Span(s:sub(last + 1))
end
return spans
end