aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/messages_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/messages_spec.lua')
-rw-r--r--test/functional/ui/messages_spec.lua311
1 files changed, 309 insertions, 2 deletions
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua
index a6b9ef9387..90874a92ef 100644
--- a/test/functional/ui/messages_spec.lua
+++ b/test/functional/ui/messages_spec.lua
@@ -10,6 +10,7 @@ local test_build_dir = helpers.test_build_dir
local nvim_prog = helpers.nvim_prog
local iswin = helpers.iswin
local exc_exec = helpers.exc_exec
+local exec_lua = helpers.exec_lua
describe('ui/ext_messages', function()
local screen
@@ -1058,16 +1059,34 @@ describe('pager', function()
before_each(function()
clear()
- screen = Screen.new(25, 5)
+ screen = Screen.new(35, 8)
screen:attach()
screen:set_default_attr_ids({
[1] = {bold = true, foreground = Screen.colors.Blue1},
+ [2] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red},
+ [3] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red, special=Screen.colors.Yellow},
[4] = {bold = true, foreground = Screen.colors.SeaGreen4},
+ [5] = {special = Screen.colors.Yellow},
+ [6] = {special = Screen.colors.Yellow, bold = true, foreground = Screen.colors.SeaGreen4},
+ [7] = {foreground = Screen.colors.Grey0, background = Screen.colors.Grey100},
+ [8] = {foreground = Screen.colors.Gray90, background = Screen.colors.Grey100},
+ [9] = {foreground = tonumber('0x00000c'), background = Screen.colors.Grey100},
+ [10] = {background = Screen.colors.Grey100, bold = true, foreground = tonumber('0xe5e5ff')},
+ [11] = {background = Screen.colors.Grey100, bold = true, foreground = tonumber ('0x2b8452')},
})
+ command("set more")
+
+ exec_lua('_G.x = ...', [[
+Lorem ipsum dolor sit amet, consectetur
+adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua.
+Ut enim ad minim veniam, quis nostrud xercitation
+ullamco laboris nisi ut
+aliquip ex ea commodo consequat.]])
end)
it('can be quit', function()
- command("set more")
+ screen:try_resize(25,5)
feed(':echon join(map(range(0, &lines*2), "v:val"), "\\n")<cr>')
screen:expect{grid=[[
0 |
@@ -1085,4 +1104,292 @@ describe('pager', function()
|
]]}
end)
+
+ it('handles wrapped lines with line scroll', function()
+ feed(':lua error(_G.x)<cr>')
+ screen:expect{grid=[[
+ {2:E5105: Error while calling lua chun}|
+ {2:k: [string "<VimL compiled string>"}|
+ {2:]:1: Lorem ipsum dolor sit amet, co}|
+ {2:nsectetur} |
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {4:-- More --}^ |
+ ]]}
+
+ feed('j')
+ screen:expect{grid=[[
+ {2:k: [string "<VimL compiled string>"}|
+ {2:]:1: Lorem ipsum dolor sit amet, co}|
+ {2:nsectetur} |
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {2:a aliqua.} |
+ {4:-- More --}^ |
+ ]]}
+
+ feed('k')
+ screen:expect{grid=[[
+ {2:E5105: Error while calling lua chun}|
+ {2:k: [string "<VimL compiled string>"}|
+ {2:]:1: Lorem ipsum dolor sit amet, co}|
+ {2:nsectetur} |
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {4:-- More --}^ |
+ ]]}
+
+ feed('j')
+ screen:expect{grid=[[
+ {2:k: [string "<VimL compiled string>"}|
+ {2:]:1: Lorem ipsum dolor sit amet, co}|
+ {2:nsectetur} |
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {2:a aliqua.} |
+ {4:-- More --}^ |
+ ]]}
+
+ end)
+
+ it('handles wrapped lines with page scroll', function()
+ feed(':lua error(_G.x)<cr>')
+ screen:expect{grid=[[
+ {2:E5105: Error while calling lua chun}|
+ {2:k: [string "<VimL compiled string>"}|
+ {2:]:1: Lorem ipsum dolor sit amet, co}|
+ {2:nsectetur} |
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {4:-- More --}^ |
+ ]]}
+ feed('d')
+ screen:expect{grid=[[
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {2:a aliqua.} |
+ {2:Ut enim ad minim veniam, quis nostr}|
+ {2:ud xercitation} |
+ {2:ullamco laboris nisi ut} |
+ {4:-- More --}^ |
+ ]]}
+ feed('u')
+ screen:expect{grid=[[
+ {2:E5105: Error while calling lua chun}|
+ {2:k: [string "<VimL compiled string>"}|
+ {2:]:1: Lorem ipsum dolor sit amet, co}|
+ {2:nsectetur} |
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {4:-- More --}^ |
+ ]]}
+ feed('d')
+ screen:expect{grid=[[
+ {2:adipisicing elit, sed do eiusmod te}|
+ {2:mpor} |
+ {2:incididunt ut labore et dolore magn}|
+ {2:a aliqua.} |
+ {2:Ut enim ad minim veniam, quis nostr}|
+ {2:ud xercitation} |
+ {2:ullamco laboris nisi ut} |
+ {4:-- More --}^ |
+ ]]}
+ end)
+
+ it('handles wrapped lines with line scroll and MsgArea highlight', function()
+ command("hi MsgArea guisp=Yellow")
+
+ feed(':lua error(_G.x)<cr>')
+ screen:expect{grid=[[
+ {3:E5105: Error while calling lua chun}|
+ {3:k: [string "<VimL compiled string>"}|
+ {3:]:1: Lorem ipsum dolor sit amet, co}|
+ {3:nsectetur}{5: }|
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {6:-- More --}{5:^ }|
+ ]]}
+
+ feed('j')
+ screen:expect{grid=[[
+ {3:k: [string "<VimL compiled string>"}|
+ {3:]:1: Lorem ipsum dolor sit amet, co}|
+ {3:nsectetur}{5: }|
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {3:a aliqua.}{5: }|
+ {6:-- More --}{5:^ }|
+ ]]}
+
+ feed('k')
+ screen:expect{grid=[[
+ {3:E5105: Error while calling lua chun}|
+ {3:k: [string "<VimL compiled string>"}|
+ {3:]:1: Lorem ipsum dolor sit amet, co}|
+ {3:nsectetur}{5: }|
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {6:-- More --}{5:^ }|
+ ]]}
+
+ feed('j')
+ screen:expect{grid=[[
+ {3:k: [string "<VimL compiled string>"}|
+ {3:]:1: Lorem ipsum dolor sit amet, co}|
+ {3:nsectetur}{5: }|
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {3:a aliqua.}{5: }|
+ {6:-- More --}{5:^ }|
+ ]]}
+ end)
+
+ it('handles wrapped lines with page scroll and MsgArea highlight', function()
+ command("hi MsgArea guisp=Yellow")
+ feed(':lua error(_G.x)<cr>')
+ screen:expect{grid=[[
+ {3:E5105: Error while calling lua chun}|
+ {3:k: [string "<VimL compiled string>"}|
+ {3:]:1: Lorem ipsum dolor sit amet, co}|
+ {3:nsectetur}{5: }|
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {6:-- More --}{5:^ }|
+ ]]}
+ feed('d')
+ screen:expect{grid=[[
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {3:a aliqua.}{5: }|
+ {3:Ut enim ad minim veniam, quis nostr}|
+ {3:ud xercitation}{5: }|
+ {3:ullamco laboris nisi ut}{5: }|
+ {6:-- More --}{5:^ }|
+ ]]}
+ feed('u')
+ screen:expect{grid=[[
+ {3:E5105: Error while calling lua chun}|
+ {3:k: [string "<VimL compiled string>"}|
+ {3:]:1: Lorem ipsum dolor sit amet, co}|
+ {3:nsectetur}{5: }|
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {6:-- More --}{5:^ }|
+ ]]}
+ feed('d')
+ screen:expect{grid=[[
+ {3:adipisicing elit, sed do eiusmod te}|
+ {3:mpor}{5: }|
+ {3:incididunt ut labore et dolore magn}|
+ {3:a aliqua.}{5: }|
+ {3:Ut enim ad minim veniam, quis nostr}|
+ {3:ud xercitation}{5: }|
+ {3:ullamco laboris nisi ut}{5: }|
+ {6:-- More --}{5:^ }|
+ ]]}
+ end)
+
+ it('preserves MsgArea highlighting after more prompt', function()
+ screen:try_resize(70,6)
+ command("hi MsgArea guisp=Yellow")
+ command("map x Lorem ipsum labore et dolore magna aliqua")
+ command("map y adipisicing elit")
+ command("map z incididunt ut")
+ command("map a labore et dolore")
+ command("map b ex ea commodo")
+ command("map xx yy")
+ command("map xy yz")
+ feed(':map<cr>')
+ screen:expect{grid=[[
+ {5: a labore et dolore }|
+ {5: b ex ea commodo }|
+ {5: xy yz }|
+ {5: xx yy }|
+ {5: x Lorem ipsum labore et dolore magna aliqua }|
+ {6:-- More --}{5:^ }|
+ ]]}
+ feed('j')
+ screen:expect{grid=[[
+ {5: b ex ea commodo }|
+ {5: xy yz }|
+ {5: xx yy }|
+ {5: x Lorem ipsum labore et dolore magna aliqua }|
+ {5: y adipisicing elit }|
+ {6:-- More --}{5:^ }|
+ ]]}
+ feed('j')
+ screen:expect{grid=[[
+ {5: xy yz }|
+ {5: xx yy }|
+ {5: x Lorem ipsum labore et dolore magna aliqua }|
+ {5: y adipisicing elit }|
+ {5: z incididunt ut }|
+ {6:Press ENTER or type command to continue}{5:^ }|
+ ]]}
+ end)
+
+ it('clears "-- more --" message', function()
+ command("hi MsgArea guisp=Yellow blend=10")
+ feed(':echon join(range(20), "\\n")<cr>')
+ screen:expect{grid=[[
+ {7:0}{8: }|
+ {9:1}{10: }|
+ {9:2}{10: }|
+ {9:3}{10: }|
+ {9:4}{10: }|
+ {9:5}{10: }|
+ {9:6}{10: }|
+ {11:--}{8: }{11:More}{8: }{11:--}{8:^ }|
+ ]]}
+
+ feed('j')
+ screen:expect{grid=[[
+ {7:1}{8: }|
+ {9:2}{10: }|
+ {9:3}{10: }|
+ {9:4}{10: }|
+ {9:5}{10: }|
+ {9:6}{10: }|
+ {9:7}{10: }|
+ {11:--}{8: }{11:More}{8: }{11:--}{8:^ }|
+ ]]}
+
+ feed('k')
+ screen:expect{grid=[[
+ {7:0}{8: }{7:)}{8: }|
+ {9:1}{10: }|
+ {9:2}{10: }|
+ {9:3}{10: }|
+ {9:4}{10: }|
+ {9:5}{10: }|
+ {9:6}{10: }|
+ {11:--}{8: }{11:More}{8: }{11:--}{8:^ }|
+ ]]}
+
+ feed('j')
+ screen:expect{grid=[[
+ {7:1}{8: }|
+ {9:2}{10: }|
+ {9:3}{10: }|
+ {9:4}{10: }|
+ {9:5}{10: }|
+ {9:6}{10: }|
+ {9:7}{10: }|
+ {11:--}{8: }{11:More}{8: }{11:--}{8:^ }|
+ ]]}
+ end)
end)