2018-02-04 06:35:08 -05:00
|
|
|
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;
|
|
|
|
[ge_test.md](ge_test.md)
|
|
|
|
|
|
|
|
Execute (ge opens file):
|
|
|
|
normal ge
|
|
|
|
AssertEqual @%, 'ge_test.md'
|
|
|
|
AssertEqual getline(1), 'ge test'
|
|
|
|
|
|
|
|
Given markdown;
|
|
|
|
[ge_test](ge_test)
|
|
|
|
|
|
|
|
Execute (ge opens file without .md extensions):
|
|
|
|
let g:vim_markdown_no_extensions_in_markdown = 1
|
|
|
|
normal ge
|
|
|
|
AssertEqual @%, 'ge_test.md'
|
|
|
|
AssertEqual getline(1), 'ge test'
|
|
|
|
unlet g:vim_markdown_no_extensions_in_markdown
|
|
|
|
|
|
|
|
Given markdown;
|
|
|
|
[ge_test.md](ge_test.md)
|
|
|
|
|
|
|
|
Execute (ge does not write before opening file):
|
|
|
|
normal ia
|
|
|
|
normal l
|
|
|
|
normal ge
|
|
|
|
AssertEqual @%, 'ge_test.md'
|
|
|
|
AssertEqual getline(1), 'ge test'
|
|
|
|
|
|
|
|
Given markdown;
|
|
|
|
[ge_test.md](ge_test.md)
|
|
|
|
|
|
|
|
Execute (ge auto-write before opening file):
|
|
|
|
let g:vim_markdown_autowrite = 1
|
|
|
|
normal ia
|
|
|
|
normal l
|
|
|
|
AssertThrows normal ge
|
|
|
|
AssertEqual g:vader_exception, 'Vim(write):E382: Cannot write, ''buftype'' option is set'
|
|
|
|
unlet g:vim_markdown_autowrite
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2022-05-19 10:45:21 -04:00
|
|
|
Execute (]h):
|
2018-02-04 06:35:08 -05:00
|
|
|
normal! 3G
|
|
|
|
AssertEqual line('.'), 3
|
2022-05-19 10:45:21 -04:00
|
|
|
normal ]h
|
2018-02-04 06:35:08 -05:00
|
|
|
AssertEqual line('.'), 1
|