22
33local util = require (' tests.util' )
44
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+
542describe (' code.md' , function ()
643 it (' default' , function ()
744 util .setup (' tests/data/code.md' )
@@ -10,25 +47,94 @@ describe('code.md', function()
1047
1148 vim .list_extend (expected , util .heading (row :get (), 1 ))
1249
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+
13109 vim .list_extend (expected , {
14110 util .bullet (row :increment (2 ), 0 , 1 ),
15111 util .code_row (row :increment (2 ), 2 ),
112+ hide_background (row :get (), 2 , 20 ),
16113 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 ),
20114 })
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 ))
21123
22124 vim .list_extend (expected , {
23125 util .bullet (row :increment (2 ), 0 , 1 ),
24126 util .code_row (row :increment (2 ), 2 ),
127+ hide_background (row :get (), 2 , 20 ),
25128 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 ),
31129 })
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 ))
32138
33139 local actual = util .get_actual_marks ()
34140 util .marks_are_equal (expected , actual )
0 commit comments