aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-11-25 23:22:46 +0100
committerJustin M. Keyes <justinkz@gmail.com>2017-11-25 23:22:46 +0100
commitb57d9a4ff08fc1ef8db79d422b441b792493ff4e (patch)
tree7c9f9c76098dc4551c2fe8a4b9487198b42d77b1
parent303e1df13f4fbf7173f3805467cacd59c62d40c2 (diff)
parentebed8c6a2eb641397bd7a7b34ea46ca5c02ea346 (diff)
downloadrneovim-b57d9a4ff08fc1ef8db79d422b441b792493ff4e.tar.gz
rneovim-b57d9a4ff08fc1ef8db79d422b441b792493ff4e.tar.bz2
rneovim-b57d9a4ff08fc1ef8db79d422b441b792493ff4e.zip
Merge #7631 'highlight: no refresh on validation error'
-rw-r--r--src/nvim/syntax.c2
-rw-r--r--test/functional/ex_cmds/highlight_spec.lua43
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)