neovim/test/functional/legacy/068_text_formatting_spec.lua
dundargoc 052498ed42 test: improve test conventions
Specifically, functions that are run in the context of the test runner
are put in module `test/testutil.lua` while the functions that are run
in the context of the test session are put in
`test/functional/testnvim.lua`.

Closes https://github.com/neovim/neovim/issues/27004.
2024-04-23 18:17:04 +02:00

213 lines
2.7 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local n = require('test.functional.testnvim')()
local feed = n.feed
local clear = n.clear
local insert = n.insert
local feed_command = n.feed_command
local expect = n.expect
describe('text formatting', function()
setup(clear)
-- luacheck: ignore 613 (Trailing whitespace in a string)
it('is working', function()
-- The control character <C-A> (byte \x01) needs to be put in the buffer
-- directly. But the insert function sends the text to nvim in insert
-- mode so it has to be escaped with <C-V>.
insert([[
Results of test68:
{
}
{
a b
a
}
{
a 
}
{
a b
#a b
}
{
1 a
# 1 a
}
{
x a
b
c
}
{
# 1 a b
}
{
# x
# a b
}
{
1aa
2bb
}
/* abc def ghi jkl
* mno pqr stu
*/
# 1 xxxxx
]])
feed_command('/^{/+1')
feed_command('set noai tw=2 fo=t')
feed('gRa b<esc>')
feed_command('/^{/+1')
feed_command('set ai tw=2 fo=tw')
feed('gqgqjjllab<esc>')
feed_command('/^{/+1')
feed_command('set tw=3 fo=t')
feed('gqgqo<cr>')
feed('a <C-V><C-A><esc><esc>')
feed_command('/^{/+1')
feed_command('set tw=2 fo=tcq1 comments=:#')
feed('gqgqjgqgqo<cr>')
feed('a b<cr>')
feed('#a b<esc>')
feed_command('/^{/+1')
feed_command('set tw=5 fo=tcn comments=:#')
feed('A b<esc>jA b<esc>')
feed_command('/^{/+3')
feed_command('set tw=5 fo=t2a si')
feed('i <esc>A_<esc>')
feed_command('/^{/+1')
feed_command('set tw=5 fo=qn comments=:#')
feed('gwap<cr>')
feed_command('/^{/+1')
feed_command('set tw=5 fo=q2 comments=:#')
feed('gwap<cr>')
feed_command('/^{/+2')
feed_command('set tw& fo=a')
feed('I^^<esc><esc>')
feed_command('/mno pqr/')
feed_command('setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/')
feed('A vwx yz<esc>')
feed_command('/^#/')
feed_command('setl tw=12 fo=tqnc comments=:#')
feed('A foobar<esc>')
-- Assert buffer contents.
expect([[
Results of test68:
{
a
b
}
{
a
b
a
b
}
{
a

a

}
{
a b
#a b
a b
#a b
}
{
1 a
b
# 1 a
# b
}
{
x a
b_
c
}
{
# 1 a
# b
}
{
# x a
# b
}
{ 1aa ^^2bb }
/* abc def ghi jkl
* mno pqr stu
* vwx yz
*/
# 1 xxxxx
# foobar
]])
end)
end)