diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-11-25 23:22:46 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-11-25 23:22:46 +0100 |
commit | b57d9a4ff08fc1ef8db79d422b441b792493ff4e (patch) | |
tree | 7c9f9c76098dc4551c2fe8a4b9487198b42d77b1 | |
parent | 303e1df13f4fbf7173f3805467cacd59c62d40c2 (diff) | |
parent | ebed8c6a2eb641397bd7a7b34ea46ca5c02ea346 (diff) | |
download | rneovim-b57d9a4ff08fc1ef8db79d422b441b792493ff4e.tar.gz rneovim-b57d9a4ff08fc1ef8db79d422b441b792493ff4e.tar.bz2 rneovim-b57d9a4ff08fc1ef8db79d422b441b792493ff4e.zip |
Merge #7631 'highlight: no refresh on validation error'
-rw-r--r-- | src/nvim/syntax.c | 2 | ||||
-rw-r--r-- | test/functional/ex_cmds/highlight_spec.lua | 43 |
2 files changed, 44 insertions, 1 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index d28e996581..bc7362af72 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -6648,7 +6648,7 @@ do_highlight(char_u *line, int forceit, int init) { if (error && idx == highlight_ga.ga_len) { syn_unadd_group(); } else { - if (is_normal_group) { + if (!error && is_normal_group) { // Need to update all groups, because they might be using "bg" and/or // "fg", which have been changed now. highlight_attr_set_all(); diff --git a/test/functional/ex_cmds/highlight_spec.lua b/test/functional/ex_cmds/highlight_spec.lua new file mode 100644 index 0000000000..25968b8204 --- /dev/null +++ b/test/functional/ex_cmds/highlight_spec.lua @@ -0,0 +1,43 @@ +local Screen = require('test.functional.ui.screen') +local helpers = require("test.functional.helpers")(after_each) +local eq, command = helpers.eq, helpers.command +local clear = helpers.clear +local eval, exc_exec = helpers.eval, helpers.exc_exec + +describe(':highlight', function() + local screen + + before_each(function() + clear() + screen = Screen.new() + screen:attach() + end) + + after_each(function() + screen:detach() + end) + + it('invalid color name', function() + eq('Vim(highlight):E421: Color name or number not recognized: ctermfg=#181818', + exc_exec("highlight normal ctermfg=#181818")) + eq('Vim(highlight):E421: Color name or number not recognized: ctermbg=#181818', + exc_exec("highlight normal ctermbg=#181818")) + end) + + it('invalid group name', function() + eq('Vim(highlight):E411: highlight group not found: foo', + exc_exec("highlight foo")) + end) + + it('"Normal" foreground with red', function() + eq('', eval('synIDattr(hlID("Normal"), "fg", "cterm")')) + command('highlight normal ctermfg=red') + eq('9', eval('synIDattr(hlID("Normal"), "fg", "cterm")')) + end) + + it('"Normal" background with red', function() + eq('', eval('synIDattr(hlID("Normal"), "bg", "cterm")')) + command('highlight normal ctermbg=red') + eq('9', eval('synIDattr(hlID("Normal"), "bg", "cterm")')) + end) +end) |