Skip to content

Commit 2cb8d9d

Browse files
authored
Merge pull request #607 from lggruspe/fix-setextoatx
Fixes #606
2 parents 3bbbaa3 + 67571a1 commit 2cb8d9d

File tree

3 files changed

+167
-1
lines changed

3 files changed

+167
-1
lines changed

ftplugin/markdown.vim

+3-1
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,9 @@ endfunction
494494
function! s:SetexToAtx(line1, line2)
495495
let l:originalNumLines = line('$')
496496
execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n\=+$/# \1/'
497-
execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n-+$/## \1/'
497+
498+
let l:changed = l:originalNumLines - line('$')
499+
execute 'silent! ' . a:line1 . ',' . (a:line2 - l:changed) . 'substitute/\v(.*\S.*)\n-+$/## \1'
498500
return l:originalNumLines - line('$')
499501
endfunction
500502

test/header-decrease.vader

+116
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
Given markdown;
2+
# a
3+
4+
## b
5+
6+
### c
7+
8+
#### d
9+
10+
##### e
11+
12+
Execute (HeaderIncrease without forbidden level):
13+
:HeaderIncrease
14+
15+
Expect (increase level of all headers):
16+
## a
17+
18+
### b
19+
20+
#### c
21+
22+
##### d
23+
24+
###### e
25+
26+
Given markdown;
27+
# a
28+
29+
###### b
30+
31+
Execute (HeaderIncrease with forbidden level):
32+
:HeaderIncrease
33+
34+
Expect (no changes):
35+
# a
36+
37+
###### b
38+
39+
Given markdown;
40+
## a
41+
42+
### b
43+
44+
#### c
45+
46+
##### d
47+
48+
###### e
49+
50+
Execute (HeaderDecrease without forbidden level):
51+
:HeaderDecrease
52+
53+
Expect (decrease level of all headers):
54+
# a
55+
56+
## b
57+
58+
### c
59+
60+
#### d
61+
62+
##### e
63+
64+
Given markdown;
65+
# a
66+
67+
## b
68+
69+
### c
70+
71+
#### d
72+
73+
##### e
74+
75+
###### f
76+
77+
Execute (HeaderDecrease with forbidden level):
78+
:HeaderDecrease
79+
80+
Expect (no changes):
81+
# a
82+
83+
## b
84+
85+
### c
86+
87+
#### d
88+
89+
##### e
90+
91+
###### f
92+
93+
Given markdown;
94+
a
95+
=
96+
97+
b
98+
-
99+
100+
Execute (HeaderIncrease with setext headers):
101+
:HeaderIncrease
102+
103+
Expect (convert to atx headers):
104+
## a
105+
106+
### b
107+
108+
Given markdown;
109+
a
110+
-
111+
112+
Execute (HeaderDecrease with setext headers):
113+
:HeaderDecrease
114+
115+
Expect (convert to atx headers):
116+
# a

test/setextoatx.vader

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
Given markdown;
2+
# a
3+
4+
a
5+
=
6+
7+
## b
8+
9+
b
10+
-
11+
12+
Execute (SetexToAtx):
13+
:SetexToAtx
14+
15+
Expect (convert setex-style headings to atx):
16+
# a
17+
18+
# a
19+
20+
## b
21+
22+
## b
23+
24+
Given markdown;
25+
a
26+
=
27+
28+
b
29+
=
30+
31+
c
32+
-
33+
34+
d
35+
-
36+
37+
Execute (SetexToAtx with range):
38+
:1,8SetexToAtx
39+
40+
Expect (only convert setex headings in original range):
41+
# a
42+
43+
# b
44+
45+
## c
46+
47+
d
48+
-

0 commit comments

Comments
 (0)