aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/_meta/vimfn.lua
diff options
context:
space:
mode:
authorRiccardo Mazzarini <me@noib3.dev>2026-02-21 00:35:55 +0100
committerGitHub <noreply@github.com>2026-02-20 18:35:55 -0500
commitcb8c9186e6ff563e23ca8faac5e3148fbdf68d10 (patch)
tree7a877dfa8af6883a8b9db8ecd4569434671f054d /runtime/lua/vim/_meta/vimfn.lua
parent57c6b61cf2d10af46eb56e439db9f7c071426865 (diff)
downloadrneovim-cb8c9186e6ff563e23ca8faac5e3148fbdf68d10.tar.gz
rneovim-cb8c9186e6ff563e23ca8faac5e3148fbdf68d10.tar.bz2
rneovim-cb8c9186e6ff563e23ca8faac5e3148fbdf68d10.zip
feat(highlight): support more SGR attributes #37901
Problem: TUI does not support several standard SGR text attributes: - dim/faint (SGR 2) - blink (SGR 5) - conceal (SGR 8) - overline (SGR 53) This means that when a program running in the embedded terminal emits one of these escape codes, we drop it and don't surface it to the outer terminal. Solution: - Add support for those attributes. - Also add corresponding flags to `nvim_set_hl` opts, so users can set these attributes in highlight groups. - refactor(highlight): widen `HlAttrFlags` from `int16_t` to `int32_t` Widen the `rgb_ae_attr` and `cterm_ae_attr` fields in HlAttrs from int16_t to int32_t to make room for new highlight attribute flags, since there was only one spare bit left. - The C flag is named HL_CONCEALED to avoid colliding with the existing HL_CONCEAL in syntax.h (which is a syntax group flag, not an SGR attribute). - Also note that libvterm doesn't currently support the dim and overline attributes, so e.g. `printf '\e[2mThis should be dim\n'` and `printf '\e[53mThis should have an overline\n'` are still not rendered correctly when run from the embedded terminal.
Diffstat (limited to 'runtime/lua/vim/_meta/vimfn.lua')
-rw-r--r--runtime/lua/vim/_meta/vimfn.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua
index 2b859fc8f9..2c95ae8c92 100644
--- a/runtime/lua/vim/_meta/vimfn.lua
+++ b/runtime/lua/vim/_meta/vimfn.lua
@@ -10078,6 +10078,10 @@ function vim.fn.synID(lnum, col, trans) end
--- "strikethrough" "1" if struckthrough
--- "altfont" "1" if alternative font
--- "nocombine" "1" if nocombine
+--- "dim" "1" if half-bright/dimmed
+--- "blink" "1" if blinking
+--- "conceal" "1" if concealed
+--- "overline" "1" if overlined
---
--- Returns an empty string on error.
---