diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-05-21 01:25:15 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-05-21 01:25:15 -0400 |
commit | 34957f7ab96671b1dbea63e074254a97594c4734 (patch) | |
tree | 0bfe78ab12a4215371f75454e3e9d1be5c9842ad | |
parent | 8e20ba9fbd691955fa20bdba3dd5ff66d16f923c (diff) | |
parent | 582fb03f5149bca8f1f52dddbbd0c3e8b5276467 (diff) | |
download | rneovim-34957f7ab96671b1dbea63e074254a97594c4734.tar.gz rneovim-34957f7ab96671b1dbea63e074254a97594c4734.tar.bz2 rneovim-34957f7ab96671b1dbea63e074254a97594c4734.zip |
Merge #4800 'syntax: foo=NONE should clear hi group'
-rw-r--r-- | src/nvim/syntax.c | 3 | ||||
-rw-r--r-- | test/functional/ui/highlight_spec.lua | 41 |
2 files changed, 44 insertions, 0 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index 9a5484704e..1f9dbd8228 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -6972,6 +6972,9 @@ set_hl_attr ( || at_en.rgb_sp_color != -1 || at_en.cterm_ae_attr != 0 || at_en.rgb_ae_attr != 0) { sgp->sg_attr = get_attr_entry(&at_en); + } else { + // If all the fields are cleared, clear the attr field back to default value + sgp->sg_attr = 0; } } diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua index 0229b8bbf7..85fca4d7ca 100644 --- a/test/functional/ui/highlight_spec.lua +++ b/test/functional/ui/highlight_spec.lua @@ -302,6 +302,47 @@ describe('Default highlight groups', function() {1:-- INSERT --} | ]], {[1] = {foreground = Screen.colors.Red, background = Screen.colors.Green}}) end) + it('can be cleared by assigning NONE', function() + execute('syn keyword TmpKeyword neovim') + execute('hi link TmpKeyword ErrorMsg') + insert('neovim') + screen:expect([[ + {1:neovi^m} | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + | + ]], { + [1] = {foreground = Screen.colors.White, background = Screen.colors.Red} + }) + execute("hi ErrorMsg term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE" + .. " gui=NONE guifg=NONE guibg=NONE guisp=NONE") + screen:expect([[ + neovi^m | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + | + ]], {}) + end) end) describe('guisp (special/undercurl)', function() |