aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/popupmenu_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/popupmenu_spec.lua')
-rw-r--r--test/functional/ui/popupmenu_spec.lua727
1 files changed, 698 insertions, 29 deletions
diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua
index 9403f39ba1..c73cec22a0 100644
--- a/test/functional/ui/popupmenu_spec.lua
+++ b/test/functional/ui/popupmenu_spec.lua
@@ -5478,7 +5478,489 @@ describe('builtin popupmenu', function()
end
end)
- it('does not crash when displayed in the last column with rightleft #12032', function()
+ -- oldtest: Test_pum_maxwidth()
+ it('"pummaxwidth"', function()
+ screen:try_resize(60, 8)
+ api.nvim_buf_set_lines(0, 0, -1, true, {
+ '123456789_123456789_123456789_a',
+ '123456789_123456789_123456789_b',
+ ' 123',
+ })
+ feed('G"zyy')
+ feed('A<C-X><C-N>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }|*4
+ ## grid 3
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ## grid 4
+ {s: 123456789_123456789_123456789_a }|
+ {n: 123456789_123456789_123456789_b }|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 3, 11, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }{s: 123456789_123456789_123456789_a }{1: }|
+ {1:~ }{n: 123456789_123456789_123456789_b }{1: }|
+ {1:~ }|*2
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ]])
+ end
+ feed('<Esc>3Gdd"zp')
+
+ command('set pummaxwidth=10')
+ feed('GA<C-X><C-N>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }|*4
+ ## grid 3
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ## grid 4
+ {s: 1234567...}|
+ {n: 1234567...}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 3, 11, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }{s: 1234567...}{1: }|
+ {1:~ }{n: 1234567...}{1: }|
+ {1:~ }|*2
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ]])
+ end
+ feed('<Esc>3Gdd"zp')
+
+ command('set pummaxwidth=20')
+ feed('GA<C-X><C-N>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }|*4
+ ## grid 3
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ## grid 4
+ {s: 123456789_1234567...}|
+ {n: 123456789_1234567...}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 3, 11, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }{s: 123456789_1234567...}{1: }|
+ {1:~ }{n: 123456789_1234567...}{1: }|
+ {1:~ }|*2
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ]])
+ end
+ feed('<Esc>3Gdd"zp')
+
+ command('set pumwidth=20 pummaxwidth=8')
+ feed('GA<C-X><C-N>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }|*4
+ ## grid 3
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ## grid 4
+ {s: 12345...}|
+ {n: 12345...}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 3, 11, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_123456789_a^ |
+ {1:~ }{s: 12345...}{1: }|
+ {1:~ }{n: 12345...}{1: }|
+ {1:~ }|*2
+ {2:-- Keyword Local completion (^N^P) }{5:match 1 of 2} |
+ ]])
+ end
+ feed('<Esc>3Gdd"zp')
+
+ screen:try_resize(32, 10)
+ feed('GA<C-X><C-N>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*9
+ [3:--------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_|
+ 123456789_a^ |
+ {1:~ }|*5
+ ## grid 3
+ {2:-- }{5:match 1 of 2} |
+ ## grid 4
+ {s: 12345...}|
+ {n: 12345...}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 4, 11, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_a |
+ 123456789_123456789_123456789_b |
+ 123456789_123456789_|
+ 123456789_a^ |
+ {1:~ }{s: 12345...}{1: }|
+ {1:~ }{n: 12345...}{1: }|
+ {1:~ }|*3
+ {2:-- }{5:match 1 of 2} |
+ ]])
+ end
+ feed('<Esc>3Gdd"zp')
+ end)
+
+ -- oldtest: Test_pum_maxwidth_multibyte()
+ it("'pummaxwidth' with multibyte", function()
+ screen:try_resize(60, 8)
+ exec([[
+ func Omni_test(findstart, base)
+ if a:findstart
+ return col(".")
+ endif
+ return [
+ \ #{word: "123456789_123456789_123456789_"},
+ \ #{word: "一二三四五六七八九十"},
+ \ #{word: "abcdefghij"},
+ \ #{word: "上下左右"},
+ \ ]
+ endfunc
+ set omnifunc=Omni_test
+ ]])
+
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_^ |
+ {1:~ }|*6
+ ## grid 3
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ## grid 4
+ {s:123456789_123456789_123456789_ }|
+ {n:一二三四五六七八九十 }|
+ {n:abcdefghij }|
+ {n:上下左右 }|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_^ |
+ {s:123456789_123456789_123456789_ }{1: }|
+ {n:一二三四五六七八九十 }{1: }|
+ {n:abcdefghij }{1: }|
+ {n:上下左右 }{1: }|
+ {1:~ }|*2
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ]])
+ end
+ feed('<Esc>')
+
+ command('set pummaxwidth=10')
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_^ |
+ {1:~ }|*6
+ ## grid 3
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ## grid 4
+ {s:1234567...}|
+ {n:一二三 ...}|
+ {n:abcdefghij}|
+ {n:上下左右 }|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_^ |
+ {s:1234567...}{1: }|
+ {n:一二三 ...}{1: }|
+ {n:abcdefghij}{1: }|
+ {n:上下左右 }{1: }|
+ {1:~ }|*2
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ]])
+ end
+ feed('<Esc>')
+
+ command('set rightleft')
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ ^ _987654321_987654321_987654321|
+ {1: ~}|*6
+ ## grid 3
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ## grid 4
+ {s:...7654321}|
+ {n:... 三二一}|
+ {n:jihgfedcba}|
+ {n: 右左下上}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 50, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ _987654321_987654321_987654321|
+ {1: }{s:...7654321}|
+ {1: }{n:... 三二一}|
+ {1: }{n:jihgfedcba}|
+ {1: }{n: 右左下上}|
+ {1: ~}|*2
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ]])
+ end
+ feed('<Esc>')
+ command('set norightleft')
+
+ command('set pummaxwidth=2')
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:------------------------------------------------------------]|*7
+ [3:------------------------------------------------------------]|
+ ## grid 2
+ 123456789_123456789_123456789_^ |
+ {1:~ }|*6
+ ## grid 3
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ## grid 4
+ {s:12}|
+ {n:一}|
+ {n:ab}|
+ {n:上}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ 123456789_123456789_123456789_^ |
+ {s:12}{1: }|
+ {n:一}{1: }|
+ {n:ab}{1: }|
+ {n:上}{1: }|
+ {1:~ }|*2
+ {2:-- Omni completion (^O^N^P) }{5:match 1 of 4} |
+ ]])
+ end
+ feed('<Esc>')
+ end)
+
+ it([['pummaxwidth' works with "kind" and "menu"]], function()
+ exec([[
+ func Omni_test(findstart, base)
+ if a:findstart
+ return col(".")
+ endif
+ return [
+ \ #{word: "foo", menu: "fooMenu", kind: "fooKind"},
+ \ #{word: "bar", menu: "barMenu", kind: "barKind"},
+ \ #{word: "baz", menu: "bazMenu", kind: "bazKind"},
+ \ ]
+ endfunc
+ set omnifunc=Omni_test
+ ]])
+
+ command('set pummaxwidth=14')
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*19
+ [3:--------------------------------]|
+ ## grid 2
+ foo^ |
+ {1:~ }|*18
+ ## grid 3
+ {2:-- }{5:match 1 of 3} |
+ ## grid 4
+ {s:foo fooKind...}|
+ {n:bar barKind...}|
+ {n:baz bazKind...}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ foo^ |
+ {s:foo fooKind...}{1: }|
+ {n:bar barKind...}{1: }|
+ {n:baz bazKind...}{1: }|
+ {1:~ }|*15
+ {2:-- }{5:match 1 of 3} |
+ ]])
+ end
+ feed('<Esc>')
+
+ command('set rightleft')
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*19
+ [3:--------------------------------]|
+ ## grid 2
+ ^ oof|
+ {1: ~}|*18
+ ## grid 3
+ {2:-- }{5:match 1 of 3} |
+ ## grid 4
+ {s:...dniKoof oof}|
+ {n:...dniKrab rab}|
+ {n:...dniKzab zab}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 18, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ oof|
+ {1: }{s:...dniKoof oof}|
+ {1: }{n:...dniKrab rab}|
+ {1: }{n:...dniKzab zab}|
+ {1: ~}|*15
+ {2:-- }{5:match 1 of 3} |
+ ]])
+ end
+ feed('<Esc>')
+ command('set norightleft')
+
+ command('set pummaxwidth=13')
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*19
+ [3:--------------------------------]|
+ ## grid 2
+ foo^ |
+ {1:~ }|*18
+ ## grid 3
+ {2:-- }{5:match 1 of 3} |
+ ## grid 4
+ {s:foo fooKin...}|
+ {n:bar barKin...}|
+ {n:baz bazKin...}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ foo^ |
+ {s:foo fooKin...}{1: }|
+ {n:bar barKin...}{1: }|
+ {n:baz bazKin...}{1: }|
+ {1:~ }|*15
+ {2:-- }{5:match 1 of 3} |
+ ]])
+ end
+ feed('<Esc>')
+
+ command('set rightleft')
+ feed('S<C-X><C-O>')
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*19
+ [3:--------------------------------]|
+ ## grid 2
+ ^ oof|
+ {1: ~}|*18
+ ## grid 3
+ {2:-- }{5:match 1 of 3} |
+ ## grid 4
+ {s:...niKoof oof}|
+ {n:...niKrab rab}|
+ {n:...niKzab zab}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 19, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ oof|
+ {1: }{s:...niKoof oof}|
+ {1: }{n:...niKrab rab}|
+ {1: }{n:...niKzab zab}|
+ {1: ~}|*15
+ {2:-- }{5:match 1 of 3} |
+ ]])
+ end
+ feed('<Esc>')
+ command('set norightleft')
+ end)
+
+ it('does not crash when displayed in last column with rightleft #12032', function()
local col = 30
local items = { 'word', 'choice', 'text', 'thing' }
local max_len = 0
@@ -5498,31 +5980,115 @@ describe('builtin popupmenu', function()
screen:try_resize(32, 8)
command('set completeopt+=menuone,noselect')
feed('i' .. string.rep(' ', 13))
- fn.complete(14, { '哦哦哦哦哦哦哦哦哦哦' })
+
+ fn.complete(14, { '一二三四五六七八九十' })
if multigrid then
screen:expect({
grid = [[
- ## grid 1
- [2:--------------------------------]|*7
- [3:--------------------------------]|
- ## grid 2
- ^ |
- {1:~ }|*6
- ## grid 3
- {2:-- INSERT --} |
- ## grid 4
- {n: 哦哦哦哦哦哦哦哦哦>}|
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1:~ }|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {n: 一二三四五六七八九>}|
]],
float_pos = { [4] = { -1, 'NW', 2, 1, 12, false, 100 } },
})
else
screen:expect([[
^ |
- {1:~ }{n: 哦哦哦哦哦哦哦哦哦>}|
+ {1:~ }{n: 一二三四五六七八九>}|
{1:~ }|*5
{2:-- INSERT --} |
]])
end
+ feed('<C-E>')
+
+ fn.complete(14, { { word = '一二三', kind = '四五六', menu = '七八九十' } })
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1:~ }|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {n: 一二三 四五六 七八>}|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 12, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ |
+ {1:~ }{n: 一二三 四五六 七八>}|
+ {1:~ }|*5
+ {2:-- INSERT --} |
+ ]])
+ end
+ feed('<C-E>')
+
+ command('set rightleft')
+ fn.complete(14, { '一二三四五六七八九十' })
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1: ~}|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {n:<九八七六五四三二一 }|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ |
+ {n:<九八七六五四三二一 }{1: ~}|
+ {1: ~}|*5
+ {2:-- INSERT --} |
+ ]])
+ end
+ feed('<C-E>')
+
+ fn.complete(14, { { word = '一二三', kind = '四五六', menu = '七八九十' } })
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1: ~}|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {n:<八七 六五四 三二一 }|
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ |
+ {n:<八七 六五四 三二一 }{1: ~}|
+ {1: ~}|*5
+ {2:-- INSERT --} |
+ ]])
+ end
+ feed('<C-E>')
end)
it('truncates double-width character correctly with scrollbar', function()
@@ -5530,37 +6096,140 @@ describe('builtin popupmenu', function()
command('set completeopt+=noselect')
command('set pumheight=4')
feed('i' .. string.rep(' ', 12))
- local items = {}
+ local items1 = {}
+ local items2 = {}
for _ = 1, 8 do
- table.insert(items, { word = '哦哦哦哦哦哦哦哦哦哦', equal = 1, dup = 1 })
+ table.insert(items1, { word = '一二三四五六七八九十', equal = 1, dup = 1 })
end
- fn.complete(13, items)
+ for _ = 1, 2 do
+ table.insert(
+ items2,
+ { word = 'abcdef', kind = 'ghijkl', menu = 'mnopqrst', equal = 1, dup = 1 }
+ )
+ end
+ for _ = 3, 8 do
+ table.insert(
+ items2,
+ { word = '一二三', kind = '四五六', menu = '七八九十', equal = 1, dup = 1 }
+ )
+ end
+
+ fn.complete(13, items1)
if multigrid then
screen:expect({
grid = [[
- ## grid 1
- [2:--------------------------------]|*7
- [3:--------------------------------]|
- ## grid 2
- ^ |
- {1:~ }|*6
- ## grid 3
- {2:-- INSERT --} |
- ## grid 4
- {n: 哦哦哦哦哦哦哦哦哦>}{c: }|*2
- {n: 哦哦哦哦哦哦哦哦哦>}{s: }|*2
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1:~ }|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {n: 一二三四五六七八九>}{c: }|*2
+ {n: 一二三四五六七八九>}{s: }|*2
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 11, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ |
+ {1:~ }{n: 一二三四五六七八九>}{c: }|*2
+ {1:~ }{n: 一二三四五六七八九>}{s: }|*2
+ {1:~ }|*2
+ {2:-- INSERT --} |
+ ]])
+ end
+ feed('<C-E>')
+
+ fn.complete(13, items2)
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1:~ }|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {n: abcdef ghijkl mnopq}{c: }|*2
+ {n: 一二三 四五六 七八>}{s: }|*2
]],
float_pos = { [4] = { -1, 'NW', 2, 1, 11, false, 100 } },
})
else
screen:expect([[
^ |
- {1:~ }{n: 哦哦哦哦哦哦哦哦哦>}{c: }|*2
- {1:~ }{n: 哦哦哦哦哦哦哦哦哦>}{s: }|*2
+ {1:~ }{n: abcdef ghijkl mnopq}{c: }|*2
+ {1:~ }{n: 一二三 四五六 七八>}{s: }|*2
{1:~ }|*2
{2:-- INSERT --} |
]])
end
+ feed('<C-E>')
+
+ command('set rightleft')
+ fn.complete(13, items1)
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1: ~}|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {c: }{n:<九八七六五四三二一 }|*2
+ {s: }{n:<九八七六五四三二一 }|*2
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ |
+ {c: }{n:<九八七六五四三二一 }{1: ~}|*2
+ {s: }{n:<九八七六五四三二一 }{1: ~}|*2
+ {1: ~}|*2
+ {2:-- INSERT --} |
+ ]])
+ end
+ feed('<C-E>')
+
+ fn.complete(13, items2)
+ if multigrid then
+ screen:expect({
+ grid = [[
+ ## grid 1
+ [2:--------------------------------]|*7
+ [3:--------------------------------]|
+ ## grid 2
+ ^ |
+ {1: ~}|*6
+ ## grid 3
+ {2:-- INSERT --} |
+ ## grid 4
+ {c: }{n:qponm lkjihg fedcba }|*2
+ {s: }{n:<八七 六五四 三二一 }|*2
+ ]],
+ float_pos = { [4] = { -1, 'NW', 2, 1, 0, false, 100 } },
+ })
+ else
+ screen:expect([[
+ ^ |
+ {c: }{n:qponm lkjihg fedcba }{1: ~}|*2
+ {s: }{n:<八七 六五四 三二一 }{1: ~}|*2
+ {1: ~}|*2
+ {2:-- INSERT --} |
+ ]])
+ end
+ feed('<C-E>')
end)
it('supports mousemodel=popup', function()