2
2
3
3
local util = require (' tests.util' )
4
4
5
+ --- @param row integer
6
+ --- @param col integer
7
+ --- @param win_col integer
8
+ --- @return render.md.MarkInfo
9
+ local function hide_background (row , col , win_col )
10
+ --- @type render.md.MarkInfo
11
+ return {
12
+ row = { row },
13
+ col = { col },
14
+ virt_text = { { string.rep (' ' , vim .opt .columns :get () * 2 ), ' Normal' } },
15
+ virt_text_pos = ' win_col' ,
16
+ virt_text_win_col = win_col ,
17
+ }
18
+ end
19
+
20
+ --- @param row integer
21
+ --- @param col integer
22
+ --- @param offset integer
23
+ --- @param left integer
24
+ --- @return render.md.MarkInfo
25
+ local function padding (row , col , offset , left )
26
+ local virt_text = {}
27
+ if offset > 0 then
28
+ table.insert (virt_text , { string.rep (' ' , offset ), ' Normal' })
29
+ end
30
+ if left > 0 then
31
+ table.insert (virt_text , { string.rep (' ' , left ), util .hl (' Code' ) })
32
+ end
33
+ --- @type render.md.MarkInfo
34
+ return {
35
+ row = { row },
36
+ col = { col },
37
+ virt_text = virt_text ,
38
+ virt_text_pos = ' inline' ,
39
+ }
40
+ end
41
+
5
42
describe (' code.md' , function ()
6
43
it (' default' , function ()
7
44
util .setup (' tests/data/code.md' )
@@ -10,25 +47,94 @@ describe('code.md', function()
10
47
11
48
vim .list_extend (expected , util .heading (row :get (), 1 ))
12
49
50
+ vim .list_extend (expected , {
51
+ util .code_row (row :increment (2 ), 0 ),
52
+ util .code_language (row :get (), 3 , 7 , ' rust' ),
53
+ })
54
+ for _ = 1 , 3 do
55
+ table.insert (expected , util .code_row (row :increment (), 0 ))
56
+ end
57
+ table.insert (expected , util .code_below (row :increment (), 0 ))
58
+
59
+ vim .list_extend (expected , {
60
+ util .bullet (row :increment (2 ), 0 , 1 ),
61
+ util .code_row (row :increment (2 ), 2 ),
62
+ util .code_language (row :get (), 5 , 8 , ' lua' ),
63
+ })
64
+ for _ = 1 , 2 do
65
+ table.insert (expected , util .code_row (row :increment (), 2 ))
66
+ end
67
+ table.insert (expected , util .code_below (row :increment (), 2 ))
68
+
69
+ vim .list_extend (expected , {
70
+ util .bullet (row :increment (2 ), 0 , 1 ),
71
+ util .code_row (row :increment (2 ), 2 ),
72
+ util .code_language (row :get (), 5 , 8 , ' lua' ),
73
+ })
74
+ for _ , col in ipairs ({ 2 , 0 , 2 }) do
75
+ table.insert (expected , util .code_row (row :increment (), col ))
76
+ if col == 0 then
77
+ table.insert (expected , padding (row :get (), 0 , 2 , 0 ))
78
+ end
79
+ end
80
+ table.insert (expected , util .code_below (row :increment (), 2 ))
81
+
82
+ local actual = util .get_actual_marks ()
83
+ util .marks_are_equal (expected , actual )
84
+ end )
85
+
86
+ it (' block padding' , function ()
87
+ util .setup (' tests/data/code.md' , {
88
+ code = { width = ' block' , left_pad = 2 , right_pad = 2 },
89
+ })
90
+
91
+ local expected , row = {}, util .row ()
92
+
93
+ vim .list_extend (expected , util .heading (row :get (), 1 ))
94
+
95
+ vim .list_extend (expected , {
96
+ util .code_row (row :increment (2 ), 0 ),
97
+ hide_background (row :get (), 0 , 34 ),
98
+ util .code_language (row :get (), 3 , 7 , ' rust' ),
99
+ })
100
+ for _ = 1 , 3 do
101
+ vim .list_extend (expected , {
102
+ util .code_row (row :increment (), 0 ),
103
+ padding (row :get (), 0 , 0 , 2 ),
104
+ hide_background (row :get (), 0 , 34 ),
105
+ })
106
+ end
107
+ table.insert (expected , util .code_below (row :increment (), 0 , 34 ))
108
+
13
109
vim .list_extend (expected , {
14
110
util .bullet (row :increment (2 ), 0 , 1 ),
15
111
util .code_row (row :increment (2 ), 2 ),
112
+ hide_background (row :get (), 2 , 20 ),
16
113
util .code_language (row :get (), 5 , 8 , ' lua' ),
17
- util .code_row (row :increment (), 2 ),
18
- util .code_row (row :increment (), 2 ),
19
- util .code_below (row :increment (), 2 ),
20
114
})
115
+ for _ = 1 , 2 do
116
+ vim .list_extend (expected , {
117
+ util .code_row (row :increment (), 2 ),
118
+ padding (row :get (), 2 , 0 , 2 ),
119
+ hide_background (row :get (), 2 , 20 ),
120
+ })
121
+ end
122
+ table.insert (expected , util .code_below (row :increment (), 2 , 20 ))
21
123
22
124
vim .list_extend (expected , {
23
125
util .bullet (row :increment (2 ), 0 , 1 ),
24
126
util .code_row (row :increment (2 ), 2 ),
127
+ hide_background (row :get (), 2 , 20 ),
25
128
util .code_language (row :get (), 5 , 8 , ' lua' ),
26
- util .code_row (row :increment (), 2 ),
27
- util .code_row (row :increment (), 0 ),
28
- util .padding (row :get (), 2 ),
29
- util .code_row (row :increment (), 2 ),
30
- util .code_below (row :increment (), 2 ),
31
129
})
130
+ for _ , col in ipairs ({ 2 , 0 , 2 }) do
131
+ vim .list_extend (expected , {
132
+ util .code_row (row :increment (), col ),
133
+ padding (row :get (), col , 2 - col , 2 ),
134
+ hide_background (row :get (), col , 20 ),
135
+ })
136
+ end
137
+ table.insert (expected , util .code_below (row :increment (), 2 , 20 ))
32
138
33
139
local actual = util .get_actual_marks ()
34
140
util .marks_are_equal (expected , actual )
0 commit comments