2015-05-15 10:03:49 -07:00
|
|
|
-- Tests for correct display (cursor column position) with +conceal and
|
|
|
|
-- tabulators.
|
|
|
|
|
2016-04-23 16:53:11 -07:00
|
|
|
local helpers = require('test.functional.helpers')(after_each)
|
2017-04-08 14:12:26 -07:00
|
|
|
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)
|
|
|
|
|
2017-09-24 11:42:48 -07:00
|
|
|
-- luacheck: ignore 621 (Indentation)
|
2015-05-15 10:03:49 -07:00
|
|
|
it('are working', function()
|
|
|
|
insert([[
|
|
|
|
start:
|
|
|
|
.concealed. text
|
|
|
|
|concealed| text
|
2017-04-08 14:12:26 -07:00
|
|
|
|
2015-05-15 10:03:49 -07:00
|
|
|
.concealed. text
|
|
|
|
|concealed| text
|
2017-04-08 14:12:26 -07:00
|
|
|
|
2015-05-15 10:03:49 -07:00
|
|
|
.a. .b. .c. .d.
|
|
|
|
|a| |b| |c| |d|]])
|
|
|
|
|
|
|
|
-- Conceal settings.
|
2017-04-08 14:12:26 -07:00
|
|
|
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.
|
2017-04-08 14:12:26 -07:00
|
|
|
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)
|
2017-04-08 14:12:26 -07:00
|
|
|
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)
|
2017-04-08 14:12:26 -07:00
|
|
|
feed_command('set list listchars=tab:>-')
|
2016-02-06 00:25:24 -07:00
|
|
|
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)
|