feat(ext_messages): add hl_id to ext_messages chunks

Problem:  Ext_messages chunks only contain the highlight attr id, which
          is not very useful for vim.ui_attach() consumers.
Solotion: Add highlight group id to message chunks, which can easily be
          used to highlight text in the TUI through nvim_buf_set_extmark():
          hl_group = synIDattr(id, "name").
This commit is contained in:
Luuk van Baal
2024-03-08 14:44:58 +01:00
parent 5cfa7a72f8
commit 4f9260d06a
8 changed files with 112 additions and 81 deletions

View File

@@ -1524,7 +1524,7 @@ end
function Screen:_chunks_repr(chunks, attr_state)
local repr_chunks = {}
for i, chunk in ipairs(chunks) do
local hl, text = unpack(chunk)
local hl, text, id = unpack(chunk)
local attrs
if self._options.ext_linegrid then
attrs = self._attr_table[hl][1]
@@ -1532,7 +1532,7 @@ function Screen:_chunks_repr(chunks, attr_state)
attrs = hl
end
local attr_id = self:_get_attr_id(attr_state, attrs, hl)
repr_chunks[i] = { text, attr_id }
repr_chunks[i] = { text, attr_id, attr_id and id or nil }
end
return repr_chunks
end