yazi/yazi-plugin/preset/ui.lua

22 lines
460 B
Lua
Raw Normal View History

2023-12-30 18:41:41 +03:00
ui = {}
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