aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/syntax_conceal_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/syntax_conceal_spec.lua')
-rw-r--r--test/functional/ui/syntax_conceal_spec.lua742
1 files changed, 619 insertions, 123 deletions
diff --git a/test/functional/ui/syntax_conceal_spec.lua b/test/functional/ui/syntax_conceal_spec.lua
index c2ab0711c0..d678784dc9 100644
--- a/test/functional/ui/syntax_conceal_spec.lua
+++ b/test/functional/ui/syntax_conceal_spec.lua
@@ -1,27 +1,33 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
-local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute
+local clear, feed, command = helpers.clear, helpers.feed, helpers.command
local insert = helpers.insert
describe('Screen', function()
- local screen
+ local screen
- before_each(function()
+ before_each(function()
clear()
screen = Screen.new(nil,10)
screen:attach()
- screen:set_default_attr_ignore( {{bold=true, foreground=255}} )
- screen:set_default_attr_ids( {{foreground = Screen.colors.LightGrey, background = Screen.colors.DarkGray}} )
+ screen:set_default_attr_ids( {
+ [0] = {bold=true, foreground=Screen.colors.Blue},
+ [1] = {foreground = Screen.colors.LightGrey, background = Screen.colors.DarkGray},
+ [2] = {bold = true, reverse = true},
+ [3] = {reverse = true},
+ [4] = {bold = true},
+ [5] = {background = Screen.colors.Yellow},
+ } )
end)
-
+
after_each(function()
screen:detach()
- end)
+ end)
describe("match and conceal", function()
before_each(function()
- execute("let &conceallevel=1")
+ command("let &conceallevel=1")
end)
describe("multiple", function()
@@ -34,7 +40,7 @@ describe('Screen', function()
&&
&&
]])
- execute("syn match dAmpersand '[&][&]' conceal cchar=∧")
+ command("syn match dAmpersand '[&][&]' conceal cchar=∧")
end)
it("double characters.", function()
@@ -46,13 +52,13 @@ describe('Screen', function()
{1:∧} |
{1:∧} |
^ |
- ~ |
- ~ |
- :syn match dAmpersand '[&][&]' conceal cchar=∧ |
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
- it('double characters and move the cursor one line up.', function()
+ it('double characters and move the cursor one line up.', function()
feed("k")
screen:expect([[
{1:∧} |
@@ -62,9 +68,9 @@ describe('Screen', function()
{1:∧} |
^&& |
|
- ~ |
- ~ |
- :syn match dAmpersand '[&][&]' conceal cchar=∧ |
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
@@ -78,13 +84,13 @@ describe('Screen', function()
{1:∧} |
{1:∧} |
|
- ~ |
- ~ |
- :syn match dAmpersand '[&][&]' conceal cchar=∧ |
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
- it('double characters and move the cursor to the second line in the file.', function()
+ it('double characters and move the cursor to the second line in the file.', function()
feed("ggj")
screen:expect([[
{1:∧} |
@@ -94,13 +100,13 @@ describe('Screen', function()
{1:∧} |
{1:∧} |
|
- ~ |
- ~ |
- :syn match dAmpersand '[&][&]' conceal cchar=∧ |
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
- it('double characters and then move the cursor to the beginning of the file and back to the end of the file.', function()
+ it('double characters and then move the cursor to the beginning of the file and back to the end of the file.', function()
feed("ggG")
screen:expect([[
{1:∧} |
@@ -110,51 +116,51 @@ describe('Screen', function()
{1:∧} |
{1:∧} |
^ |
- ~ |
- ~ |
- :syn match dAmpersand '[&][&]' conceal cchar=∧ |
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
- end) -- multiple
-
+ end) -- multiple
+
it("keyword instances in initially in the document.", function()
feed("2ilambda<cr><ESC>")
- execute("let &conceallevel=1")
- execute("syn keyword kLambda lambda conceal cchar=λ")
+ command("let &conceallevel=1")
+ command("syn keyword kLambda lambda conceal cchar=λ")
screen:expect([[
{1:λ} |
{1:λ} |
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
- :syn keyword kLambda lambda conceal cchar=λ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
end) -- Keyword
describe("regions in the document", function()
- before_each(function()
+ before_each(function()
feed("2")
insert("<r> a region of text </r>\n")
- execute("let &conceallevel=1")
+ command("let &conceallevel=1")
end)
-
- it('initially and conceal it.', function()
- execute("syn region rText start='<r>' end='</r>' conceal cchar=R")
+
+ it('initially and conceal it.', function()
+ command("syn region rText start='<r>' end='</r>' conceal cchar=R")
screen:expect([[
{1:R} |
{1:R} |
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
|
]])
end)
@@ -162,23 +168,23 @@ describe('Screen', function()
it('initially and conceal its start tag and end tag.', function()
-- concealends has a known bug (todo.txt) where the first match won't
-- be replaced with cchar.
- execute("syn region rText matchgroup=rMatch start='<r>' end='</r>' concealends cchar=-")
+ command("syn region rText matchgroup=rMatch start='<r>' end='</r>' concealends cchar=-")
screen:expect([[
{1: } a region of text {1:-} |
{1: } a region of text {1:-} |
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
|
]])
end)
-
+
it('that are nested and conceal the nested region\'s start and end tags.', function()
- execute("syn region rText contains=rText matchgroup=rMatch start='<r>' end='</r>' concealends cchar=-")
+ command("syn region rText contains=rText matchgroup=rMatch start='<r>' end='</r>' concealends cchar=-")
insert("<r> A region with <r> a nested <r> nested region.</r> </r> </r>\n")
screen:expect([[
{1: } a region of text {1:-} |
@@ -186,21 +192,21 @@ describe('Screen', function()
{1: } A region with {1: } a nested {1: } nested region.{1:-} |
{1:-} {1:-} |
^ |
- ~ |
- ~ |
- ~ |
- ~ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
|
]])
end)
end) -- regions in the document
describe("a region of text", function()
- before_each(function()
- execute("syntax conceal on")
+ before_each(function()
+ command("syntax conceal on")
feed("2")
insert("<r> a region of text </r>\n")
- execute("syn region rText start='<r>' end='</r>' cchar=-")
+ command("syn region rText start='<r>' end='</r>' cchar=-")
end)
it("and turn on implicit concealing", function()
@@ -208,123 +214,613 @@ describe('Screen', function()
{1:-} |
{1:-} |
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
- :syn region rText start='<r>' end='</r>' cchar=- |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
it("and then turn on, then off, and then back on implicit concealing.", function()
- execute("syntax conceal off")
+ command("syntax conceal off")
feed("2")
insert("<i> italian text </i>\n")
- execute("syn region iText start='<i>' end='</i>' cchar=*")
+ command("syn region iText start='<i>' end='</i>' cchar=*")
screen:expect([[
{1:-} |
{1:-} |
<i> italian text </i> |
<i> italian text </i> |
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- :syn region iText start='<i>' end='</i>' cchar=* |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
- execute("syntax conceal on")
- execute("syn region iText start='<i>' end='</i>' cchar=*")
+ command("syntax conceal on")
+ command("syn region iText start='<i>' end='</i>' cchar=*")
screen:expect([[
{1:-} |
{1:-} |
{1:*} |
{1:*} |
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- :syn region iText start='<i>' end='</i>' cchar=* |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
end) -- a region of text (implicit concealing)
end) -- match and conceal
- describe("let the conceal level be", function()
+ describe("let the conceal level be", function()
before_each(function()
- insert("// No Conceal\n")
- insert('"Conceal without a cchar"\n')
- insert("+ With cchar\n\n")
- execute("syn match noConceal '^//.*$'")
- execute("syn match concealNoCchar '\".\\{-}\"$' conceal")
- execute("syn match concealWCchar '^+.\\{-}$' conceal cchar=C")
+ insert("// No Conceal\n")
+ insert('"Conceal without a cchar"\n')
+ insert("+ With cchar\n\n")
+ command("syn match noConceal '^//.*$'")
+ command("syn match concealNoCchar '\".\\{-}\"$' conceal")
+ command("syn match concealWCchar '^+.\\{-}$' conceal cchar=C")
end)
-
- it("0. No concealing.", function()
- execute("let &conceallevel=0")
+
+ it("0. No concealing.", function()
+ command("let &conceallevel=0")
screen:expect([[
// No Conceal |
"Conceal without a cchar" |
+ With cchar |
|
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- :let &conceallevel=0 |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
-
+
it("1. Conceal using cchar or reference listchars.", function()
- execute("let &conceallevel=1")
+ command("let &conceallevel=1")
screen:expect([[
// No Conceal |
{1: } |
{1:C} |
|
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- :let &conceallevel=1 |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
-
+
it("2. Hidden unless cchar is set.", function()
- execute("let &conceallevel=2")
+ command("let &conceallevel=2")
screen:expect([[
// No Conceal |
|
{1:C} |
|
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- :let &conceallevel=2 |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
-
- it("3. Hide all concealed text.", function()
- execute("let &conceallevel=3")
+
+ it("3. Hide all concealed text.", function()
+ command("let &conceallevel=3")
screen:expect([[
// No Conceal |
|
|
|
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- :let &conceallevel=3 |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
]])
end)
end) -- conceallevel
+
+
+ describe("cursor movement", function()
+ before_each(function()
+ command("syn keyword concealy barf conceal cchar=b")
+ command("set cole=2")
+ feed('5Ofoo barf bar barf eggs<esc>')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo barf bar barf egg^s |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ end)
+
+ it('between windows', function()
+ command("split")
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo barf bar barf egg^s |
+ |
+ {2:[No Name] [+] }|
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {3:[No Name] [+] }|
+ |
+ ]])
+ feed('<c-w>w')
+
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {3:[No Name] [+] }|
+ foo {1:b} bar {1:b} eggs |
+ foo barf bar barf egg^s |
+ |
+ {2:[No Name] [+] }|
+ |
+ ]])
+ end)
+
+ it('in insert mode', function()
+ feed('i')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo barf bar barf egg^s |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {4:-- INSERT --} |
+ ]])
+
+ feed('<up>')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo barf bar barf egg^s |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {4:-- INSERT --} |
+ ]])
+ end)
+
+ it('between modes cocu=iv', function()
+ command('set cocu=iv')
+ feed('gg')
+ screen:expect([[
+ ^foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ feed('i')
+ screen:expect([[
+ ^foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {4:-- INSERT --} |
+ ]])
+
+ feed('<esc>')
+ screen:expect([[
+ ^foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ feed('v')
+ screen:expect([[
+ ^foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {4:-- VISUAL --} |
+ ]])
+
+ feed('<esc>')
+ screen:expect([[
+ ^foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ end)
+
+ it('between modes cocu=n', function()
+ command('set cocu=n')
+ feed('gg')
+ screen:expect([[
+ ^foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ feed('i')
+ screen:expect([[
+ ^foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {4:-- INSERT --} |
+ ]])
+
+ feed('<esc>')
+ screen:expect([[
+ ^foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+
+ feed('v')
+ screen:expect([[
+ ^foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {4:-- VISUAL --} |
+ ]])
+
+ feed('<esc>')
+ screen:expect([[
+ ^foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+ end)
+
+ it('and open line', function()
+ feed('o')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ ^ |
+ |
+ {0:~ }|
+ {0:~ }|
+ {4:-- INSERT --} |
+ ]])
+ end)
+
+ it('and open line cocu=i', function()
+ command('set cocu=i')
+ feed('o')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ ^ |
+ |
+ {0:~ }|
+ {0:~ }|
+ {4:-- INSERT --} |
+ ]])
+ end)
+
+ describe('with incsearch', function()
+ before_each(function()
+ command('set incsearch hlsearch')
+ feed('2GA x<esc>3GA xy<esc>gg')
+ screen:expect([[
+ ^foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+ end)
+
+ it('cocu=', function()
+ feed('/')
+ screen:expect([[
+ foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /^ |
+ ]])
+
+ feed('x')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo barf bar barf eggs {3:x} |
+ foo {1:b} bar {1:b} eggs {5:x}y |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /x^ |
+ ]])
+
+ feed('y')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo barf bar barf eggs {3:xy} |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /xy^ |
+ ]])
+
+ feed('<c-w>')
+ screen:expect([[
+ foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /^ |
+ ]])
+ end)
+
+ it('cocu=c', function()
+ command('set cocu=c')
+
+ feed('/')
+ -- NB: we don't do this redraw. Probably best to still skip it,
+ -- to avoid annoying distraction from the cmdline
+ screen:expect([[
+ foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /^ |
+ ]])
+
+ feed('x')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs {3:x} |
+ foo {1:b} bar {1:b} eggs {5:x}y |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /x^ |
+ ]])
+
+ feed('y')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs {3:xy} |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /xy^ |
+ ]])
+
+ feed('<c-w>')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /^ |
+ ]])
+
+ feed('<esc>')
+ screen:expect([[
+ ^foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+ end)
+
+ it('cocu=n', function()
+ command('set cocu=n')
+ screen:expect([[
+ ^foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+
+ feed('/')
+ -- NB: we don't do this redraw. Probably best to still skip it,
+ -- to avoid annoying distraction from the cmdline
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /^ |
+ ]])
+
+ feed('x')
+ screen:expect([[
+ foo {1:b} bar {1:b} eggs |
+ foo barf bar barf eggs {3:x} |
+ foo {1:b} bar {1:b} eggs {5:x}y |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /x^ |
+ ]])
+
+ feed('<c-w>')
+ screen:expect([[
+ foo barf bar barf eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ /^ |
+ ]])
+
+ feed('<esc>')
+ screen:expect([[
+ ^foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs x |
+ foo {1:b} bar {1:b} eggs xy |
+ foo {1:b} bar {1:b} eggs |
+ foo {1:b} bar {1:b} eggs |
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]])
+ end)
+ end)
+ end)
end)