aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/088_conceal_tabs_spec.lua
blob: a4c7e265830148c62696e4921b042eb579c7a2c4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
-- 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

local expect_pos = function(row, col)
  return helpers.eq({row, col}, helpers.eval('[screenrow(), screencol()]'))
end

describe('cursor and column position with conceal and tabulators', function()
  setup(clear)

  -- luacheck: ignore 621 (Indentation)
  it('are working', function()
    insert([[
      start:
      .concealed.     text
      |concealed|	text

      	.concealed.	text
      	|concealed|	text

      .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')
    -- Start test.
    feed_command('/^start:')
    feed('ztj')
    expect_pos(2, 1)
    -- We should end up in the same column when running these commands on the
    -- two lines.
    feed('ft')
    expect_pos(2, 17)
    feed('$')
    expect_pos(2, 20)
    feed('0j')
    expect_pos(3, 1)
    feed('ft')
    expect_pos(3, 17)
    feed('$')
    expect_pos(3, 20)
    feed('j0j')
    expect_pos(5, 8)
    -- Same for next test block.
    feed('ft')
    expect_pos(5, 25)
    feed('$')
    expect_pos(5, 28)
    feed('0j')
    expect_pos(6, 8)
    feed('ft')
    expect_pos(6, 25)
    feed('$')
    expect_pos(6, 28)
    feed('0j0j')
    expect_pos(8, 1)
    -- And check W with multiple tabs and conceals in a line.
    feed('W')
    expect_pos(8, 9)
    feed('W')
    expect_pos(8, 17)
    feed('W')
    expect_pos(8, 25)
    feed('$')
    expect_pos(8, 27)
    feed('0j')
    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)
    feed_command('set lbr')
    feed('$')
    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)
  end)
end)