Given markdown;
|
|
a <http://b> c
|
|
|
|
Execute (gx autolink):
|
|
let b:url = 'http://b'
|
|
let b:line = getline(1)
|
|
let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition')
|
|
AssertEqual b:func(1, match(b:line, 'a') + 1), ''
|
|
AssertEqual b:func(1, match(b:line, '<') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, 'h') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, '>') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, 'c') + 1), ''
|
|
|
|
Given markdown;
|
|
a http://b.bb c
|
|
|
|
Execute (gx implicit autolink):
|
|
let b:url = 'http://b.bb'
|
|
let b:line = getline(1)
|
|
let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition')
|
|
AssertEqual b:func(1, match(b:line, 'a') + 1), ''
|
|
AssertEqual b:func(1, match(b:line, 'h') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, 'c') + 1), ''
|
|
|
|
Given markdown;
|
|
[a]: http://b "c"
|
|
|
|
Execute (gx link reference definition):
|
|
let b:url = 'http://b'
|
|
let b:line = getline(1)
|
|
let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition')
|
|
" TODO would be cool if all of the following gave the link.
|
|
AssertEqual b:func(1, match(b:line, 'a') + 1), ''
|
|
AssertEqual b:func(1, match(b:line, 'h') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, 'c') + 1), ''
|
|
|
|
Given markdown;
|
|
a [b](c) d
|
|
|
|
Execute (gx autolink):
|
|
let b:url = 'c'
|
|
let b:line = getline(1)
|
|
let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition')
|
|
AssertEqual b:func(1, match(b:line, 'a') + 1), ''
|
|
AssertEqual b:func(1, match(b:line, '[') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, 'b') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, ']') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, '(') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, 'c') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, ')') + 1), b:url
|
|
AssertEqual b:func(1, match(b:line, 'd') + 1), ''
|
|
|
|
Given markdown;
|
|
# a
|
|
|
|
b
|
|
|
|
# c
|
|
|
|
d
|
|
|
|
Execute (]] same level):
|
|
AssertEqual line('.'), 1
|
|
normal ]]
|
|
AssertEqual line('.'), 5
|
|
normal [[
|
|
AssertEqual line('.'), 1
|
|
|
|
Given markdown;
|
|
# a
|
|
|
|
b
|
|
|
|
## c
|
|
|
|
d
|
|
|
|
Execute (]] different levels level):
|
|
AssertEqual line('.'), 1
|
|
normal ]]
|
|
AssertEqual line('.'), 5
|
|
normal [[
|
|
AssertEqual line('.'), 1
|
|
|
|
Given markdown;
|
|
# a
|
|
|
|
b
|
|
|
|
## c
|
|
|
|
d
|
|
|
|
# e
|
|
|
|
f
|
|
|
|
Execute (][ different levels level):
|
|
AssertEqual line('.'), 1
|
|
normal ][
|
|
AssertEqual line('.'), 9
|
|
normal []
|
|
AssertEqual line('.'), 1
|
|
|
|
Given markdown;
|
|
# a
|
|
|
|
b
|
|
|
|
Execute (]c):
|
|
normal! 3G
|
|
AssertEqual line('.'), 3
|
|
normal ]c
|
|
AssertEqual line('.'), 1
|
|
|
|
Given markdown;
|
|
# a
|
|
|
|
Execute (Toc does not set nomodifiable on other files):
|
|
" Sanity check.
|
|
Assert &modifiable
|
|
|
|
:Toc
|
|
:lclose
|
|
:edit a
|
|
|
|
Assert &modifiable
|