summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_meta/api_keysets.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/api_keysets.lua
parent57c6b61cf2d10af46eb56e439db9f7c071426865 (diff)
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/api_keysets.lua')
-rw-r--r--runtime/lua/vim/_meta/api_keysets.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/runtime/lua/vim/_meta/api_keysets.lua b/runtime/lua/vim/_meta/api_keysets.lua
index 595e54686d..6d3b4aedf1 100644
--- a/runtime/lua/vim/_meta/api_keysets.lua
+++ b/runtime/lua/vim/_meta/api_keysets.lua
@@ -306,6 +306,10 @@ error('Cannot require a meta file')
--- @field italic? boolean
--- @field reverse? boolean
--- @field altfont? boolean
+--- @field dim? boolean
+--- @field blink? boolean
+--- @field conceal? boolean
+--- @field overline? boolean
--- @field nocombine? boolean
--- @field default? boolean
--- @field cterm? vim.api.keyset.highlight_cterm
@@ -338,6 +342,10 @@ error('Cannot require a meta file')
--- @field italic? boolean
--- @field reverse? boolean
--- @field altfont? boolean
+--- @field dim? boolean
+--- @field blink? boolean
+--- @field conceal? boolean
+--- @field overline? boolean
--- @field nocombine? boolean
--- @class vim.api.keyset.keymap