fix(picker.highlight): resolve
Some checks are pending
CI / ci (push) Waiting to run

This commit is contained in:
Folke Lemaitre 2025-11-06 12:55:54 +01:00
parent c5257fa690
commit 4438ee4770
No known key found for this signature in database
GPG key ID: 9B52594D560070AB

View file

@ -314,11 +314,10 @@ end
---@param line snacks.picker.Highlight[]
---@param max_width number
function M.resolve(line, max_width)
local offset = 0
local width = 0
local resolve ---@type number?
while true do
local offset = 0
local width = 0
local resolve ---@type number?
for t, text in ipairs(line) do
local w = M.offset({ text }, { char_idx = true })
if not resolve and type(text) == "table" and text.resolve then
@ -336,13 +335,11 @@ function M.resolve(line, max_width)
local ret = {} ---@type snacks.picker.Highlight[]
vim.list_extend(ret, line, 1, resolve - 1)
offset = M.offset(ret)
vim.list_extend(ret, line[resolve].resolve(max_width - width))
vim.list_extend(ret, line[resolve].resolve(math.max(max_width - width, 1)))
local diff = M.offset(ret) - offset
vim.list_extend(ret, line, resolve + 1)
M.fix_offset(ret, diff, resolve + 1)
line = ret
ret = {}
resolve = nil
else
return line
end