neovim/test/functional/legacy/088_conceal_tabs_spec.lua

98 lines
2.2 KiB
Lua
Raw Normal View History

2015-05-15 10:03:49 -07:00
-- Tests for correct display (cursor column position) with +conceal and
-- tabulators.
local helpers = require('test.functional.helpers')(after_each)
local feed, insert, clear, feed_command =
helpers.feed, helpers.insert, helpers.clear, helpers.feed_command
2015-06-20 16:37:05 -07:00
local expect_pos = function(row, col)
return helpers.eq({row, col}, helpers.eval('[screenrow(), screencol()]'))
end
2015-05-15 10:03:49 -07:00
describe('cursor and column position with conceal and tabulators', function()
setup(clear)
-- luacheck: ignore 621 (Indentation)
2015-05-15 10:03:49 -07:00
it('are working', function()
insert([[
start:
.concealed. text
|concealed| text
2015-05-15 10:03:49 -07:00
.concealed. text
|concealed| text
2015-05-15 10:03:49 -07:00
.a. .b. .c. .d.
|a| |b| |c| |d|]])
-- Conceal settings.
feed_command('set conceallevel=2')
feed_command('set concealcursor=nc')
feed_command('syntax match test /|/ conceal')
2015-05-15 10:03:49 -07:00
-- Start test.
feed_command('/^start:')
2015-05-15 10:03:49 -07:00
feed('ztj')
2015-06-20 16:37:05 -07:00
expect_pos(2, 1)
2015-05-15 10:03:49 -07:00
-- We should end up in the same column when running these commands on the
-- two lines.
2015-06-20 16:37:05 -07:00
feed('ft')
expect_pos(2, 17)
2015-05-15 10:03:49 -07:00
feed('$')
2015-06-20 16:37:05 -07:00
expect_pos(2, 20)
2015-05-15 10:03:49 -07:00
feed('0j')
2015-06-20 16:37:05 -07:00
expect_pos(3, 1)
feed('ft')
expect_pos(3, 17)
2015-05-15 10:03:49 -07:00
feed('$')
2015-06-20 16:37:05 -07:00
expect_pos(3, 20)
2015-05-15 10:03:49 -07:00
feed('j0j')
2015-06-20 16:37:05 -07:00
expect_pos(5, 8)
2015-05-15 10:03:49 -07:00
-- Same for next test block.
2015-06-20 16:37:05 -07:00
feed('ft')
expect_pos(5, 25)
2015-05-15 10:03:49 -07:00
feed('$')
2015-06-20 16:37:05 -07:00
expect_pos(5, 28)
2015-05-15 10:03:49 -07:00
feed('0j')
2015-06-20 16:37:05 -07:00
expect_pos(6, 8)
feed('ft')
expect_pos(6, 25)
2015-05-15 10:03:49 -07:00
feed('$')
2015-06-20 16:37:05 -07:00
expect_pos(6, 28)
2015-05-15 10:03:49 -07:00
feed('0j0j')
2015-06-20 16:37:05 -07:00
expect_pos(8, 1)
2015-05-15 10:03:49 -07:00
-- And check W with multiple tabs and conceals in a line.
feed('W')
2015-06-20 16:37:05 -07:00
expect_pos(8, 9)
2015-05-15 10:03:49 -07:00
feed('W')
2015-06-20 16:37:05 -07:00
expect_pos(8, 17)
2015-05-15 10:03:49 -07:00
feed('W')
2015-06-20 16:37:05 -07:00
expect_pos(8, 25)
2015-05-15 10:03:49 -07:00
feed('$')
2015-06-20 16:37:05 -07:00
expect_pos(8, 27)
2015-05-15 10:03:49 -07:00
feed('0j')
2015-06-20 16:37:05 -07:00
expect_pos(9, 1)
2015-05-15 10:03:49 -07:00
feed('W')
2015-06-20 16:37:05 -07:00
expect_pos(9, 9)
2015-05-15 10:03:49 -07:00
feed('W')
2015-06-20 16:37:05 -07:00
expect_pos(9, 17)
2015-05-15 10:03:49 -07:00
feed('W')
2015-06-20 16:37:05 -07:00
expect_pos(9, 25)
2015-05-15 10:03:49 -07:00
feed('$')
2015-06-20 16:37:05 -07:00
expect_pos(9, 26)
feed_command('set lbr')
2015-05-15 10:03:49 -07:00
feed('$')
2015-06-20 16:37:05 -07:00
expect_pos(9, 26)
feed_command('set list listchars=tab:>-')
feed('0')
expect_pos(9, 1)
feed('W')
expect_pos(9, 9)
feed('W')
expect_pos(9, 17)
feed('W')
expect_pos(9, 25)
feed('$')
expect_pos(9, 26)
2015-05-15 10:03:49 -07:00
end)
end)