diff options
author | Evgeni Chasnovski <evgeni.chasnovski@gmail.com> | 2024-12-02 02:24:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-02 08:24:58 +0800 |
commit | 8de1dc6923396b46c327a31daa8a1562a196a255 (patch) | |
tree | 09822d3a27d384279386cc53835fac598e6cbcd7 | |
parent | fb689d7ebd680c4921f4ec617fe5e01cd09ba96c (diff) | |
download | rneovim-8de1dc6923396b46c327a31daa8a1562a196a255.tar.gz rneovim-8de1dc6923396b46c327a31daa8a1562a196a255.tar.bz2 rneovim-8de1dc6923396b46c327a31daa8a1562a196a255.zip |
fix(api): make `nvim_set_hl()` respect all `cterm` attributes (#31390)
-rw-r--r-- | src/nvim/highlight.c | 3 | ||||
-rw-r--r-- | test/functional/api/highlight_spec.lua | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c index b063a7708d..1a4b211f9c 100644 --- a/src/nvim/highlight.c +++ b/src/nvim/highlight.c @@ -1100,6 +1100,9 @@ HlAttrs dict2hlattrs(Dict(highlight) *dict, bool use_rgb, int *link_id, Error *e CHECK_FLAG(cterm, cterm_mask, italic, , HL_ITALIC); CHECK_FLAG(cterm, cterm_mask, underline, , HL_UNDERLINE); CHECK_FLAG(cterm, cterm_mask, undercurl, , HL_UNDERCURL); + CHECK_FLAG(cterm, cterm_mask, underdouble, , HL_UNDERDOUBLE); + CHECK_FLAG(cterm, cterm_mask, underdotted, , HL_UNDERDOTTED); + CHECK_FLAG(cterm, cterm_mask, underdashed, , HL_UNDERDASHED); CHECK_FLAG(cterm, cterm_mask, standout, , HL_STANDOUT); CHECK_FLAG(cterm, cterm_mask, strikethrough, , HL_STRIKETHROUGH); CHECK_FLAG(cterm, cterm_mask, altfont, , HL_ALTFONT); diff --git a/test/functional/api/highlight_spec.lua b/test/functional/api/highlight_spec.lua index 1bbfe203b6..8f98ae3650 100644 --- a/test/functional/api/highlight_spec.lua +++ b/test/functional/api/highlight_spec.lua @@ -309,6 +309,15 @@ describe('API: set highlight', function() eq({ underdotted = true }, api.nvim_get_hl_by_name('Test_hl', true)) end) + it('can set all underline cterm attributes #31385', function() + local ns = get_ns() + local attrs = { 'underline', 'undercurl', 'underdouble', 'underdotted', 'underdashed' } + for _, attr in ipairs(attrs) do + api.nvim_set_hl(ns, 'Test_' .. attr, { cterm = { [attr] = true } }) + eq({ [attr] = true }, api.nvim_get_hl_by_name('Test_' .. attr, false)) + end + end) + it('can set a highlight in the global namespace', function() api.nvim_set_hl(0, 'Test_hl', highlight2_config) eq( |