mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
fix(lsp): add spacing for inlay hints separately #24079
Problem: Spacing around inlay hints has the same highlight as the hint itself. The LSP spec for inlay hints specifically mentions the padding should not be coloured: /** Render padding before the hint. Note: Padding should use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint. */ paddingLeft?: boolean; /** Render padding after the hint. Note: Padding should use the editor's background color, not the background color of the hint itself. That means padding can be used to visually align/separate an inlay hint. */ paddingRight?: boolean; Solution: Add the space as separate parts of the virtual text, don't add the space to the text itself.
This commit is contained in:
parent
1b679ac192
commit
e42fdaad21
@ -252,18 +252,18 @@ api.nvim_set_decoration_provider(namespace, {
|
||||
text = text .. part.value
|
||||
end
|
||||
end
|
||||
local vt = {}
|
||||
if hint.paddingLeft then
|
||||
text = ' ' .. text
|
||||
vt[#vt + 1] = { ' ' }
|
||||
end
|
||||
vt[#vt + 1] = { text, 'LspInlayHint' }
|
||||
if hint.paddingRight then
|
||||
text = text .. ' '
|
||||
vt[#vt + 1] = { ' ' }
|
||||
end
|
||||
api.nvim_buf_set_extmark(bufnr, namespace, lnum, hint.position.character, {
|
||||
virt_text_pos = 'inline',
|
||||
ephemeral = false,
|
||||
virt_text = {
|
||||
{ text, 'LspInlayHint' },
|
||||
},
|
||||
virt_text = vt,
|
||||
hl_mode = 'combine',
|
||||
})
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user