mirror of
https://github.com/sxyazi/yazi.git
synced 2024-12-18 14:21:32 +03:00
22 lines
460 B
Lua
22 lines
460 B
Lua
ui = {}
|
|
|
|
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)
|
|
last = r[2]
|
|
end
|
|
if last < #s then
|
|
spans[#spans + 1] = ui.Span(s:sub(last + 1))
|
|
end
|
|
return spans
|
|
end
|