Tips & Tricks - MunifTanjim/nui.nvim GitHub Wiki

Make winhighlight string from a table

local function make_winhighlight(highlight)
  return table.concat(
    vim.tbl_map(function(key)
      return key .. ":" .. highlight[key]
    end, vim.tbl_keys(highlight)),
    ","
  )
end

local winhighlight = make_winhighlight({
  Normal = "Normal",
  FloatBorder = "SpecialChar"
}) -- Normal:Normal,FloatBorder:SpecialChar

Or, using vim.iter:

local function make_winhighlight(highlight)
  return vim.iter(pairs(highlight))
    :map(function(k, v) return k .. ':' .. v end)
    :join ','
end

local winhighlight = make_winhighlight({
  Normal = "Normal",
  FloatBorder = "SpecialChar"
}) -- Normal:Normal,FloatBorder:SpecialChar