aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/cmdline_highlight_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/cmdline_highlight_spec.lua')
-rw-r--r--test/functional/ui/cmdline_highlight_spec.lua24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/functional/ui/cmdline_highlight_spec.lua b/test/functional/ui/cmdline_highlight_spec.lua
index 671490e668..62c0694c8c 100644
--- a/test/functional/ui/cmdline_highlight_spec.lua
+++ b/test/functional/ui/cmdline_highlight_spec.lua
@@ -7,6 +7,8 @@ local clear = helpers.clear
local meths = helpers.meths
local funcs = helpers.funcs
local source = helpers.source
+local dedent = helpers.dedent
+local curbufmeths = helpers.curbufmeths
local screen
@@ -421,6 +423,8 @@ describe('Command-line coloring', function()
]])
end)
-- TODO Check for all other errors
+ -- TODO Check for colored input() called in a cycle which previously errorred
+ -- out
end)
describe('Ex commands coloring support', function()
it('still executes command-line even if errored out', function()
@@ -430,7 +434,27 @@ describe('Ex commands coloring support', function()
local msg = 'E5405: Chunk 0 start 10 splits multibyte character'
eq('\n'..msg, funcs.execute('messages'))
end)
+ it('does not error out when called from a errorred out cycle', function()
+ -- Apparently when there is a cycle in which one of the commands errors out
+ -- this error may be caught by color_cmdline before it is presented to the
+ -- user.
+ feed(dedent([[
+ :set regexpengine=2
+ :for pat in [' \ze*', ' \zs*']
+ : try
+ : let l = matchlist('x x', pat)
+ : $put ='E888 NOT detected for ' . pat
+ : catch
+ : $put ='E888 detected for ' . pat
+ : endtry
+ :endfor
+ ]]))
+ eq({'', 'E888 detected for \\ze*', 'E888 detected for \\zs*'},
+ curbufmeths.get_lines(0, -1, false))
+ eq('', funcs.execute('messages'))
+ end)
end)
-- TODO Specifically test for coloring in cmdline and expr modes
+-- TODO Check for errors from tv_dict_get_callback()
-- TODO Check using highlighted input() from inside highlighted input()