endif
endif
if l:url != ''
+ let l:ext = ''
if get(g:, 'vim_markdown_no_extensions_in_markdown', 0)
" use another file extension if preferred
if exists('g:vim_markdown_auto_extension_ext')
- let l:url = '.'.g:vim_markdown_auto_extension_ext
+ let l:ext = '.'.g:vim_markdown_auto_extension_ext
else
- let l:url = '.md'
+ let l:ext = '.md'
endif
endif
- let l:url = fnamemodify(expand('%:h').'/'.l:url, ':.')
- execute 'edit' l:url
+ let l:url = fnameescape(fnamemodify(expand('%:h').'/'.l:url.l:ext, ':.'))
+ let l:editmethod = ''
+ " determine how to open the linked file (split, tab, etc)
+ if exists('g:vim_markdown_edit_url_in')
+ if g:vim_markdown_edit_url_in == 'tab'
+ let l:editmethod = 'tabnew'
+ elseif g:vim_markdown_edit_url_in == 'vsplit'
+ let l:editmethod = 'vsp'
+ elseif g:vim_markdown_edit_url_in == 'hsplit'
+ let l:editmethod = 'sp'
+ else
+ let l:editmethod = 'edit'
+ endif
+ else
+ " default to current buffer
+ let l:editmethod = 'edit'
+ endif
+ execute l:editmethod l:url
endif
if l:anchor != ''
silent! execute '/'.l:anchor
let include = '@' . toupper(filetype)
endif
let command = 'syntax region %s matchgroup=%s start="^\s*```\s*%s$" matchgroup=%s end="\s*```$" keepend contains=%s%s'
- execute printf(command, group, startgroup, ft, endgroup, include, has('conceal') && get(g:, 'vim_markdown_conceal', 1) ? ' concealends' : '')
+ execute printf(command, group, startgroup, ft, endgroup, include, has('conceal') && get(g:, 'vim_markdown_conceal', 1) && get(g:, 'vim_markdown_conceal_code_blocks', 1) ? ' concealends' : '')
execute printf('syntax cluster mkdNonListItem add=%s', group)
let b:mkd_known_filetypes[ft] = 1
function! s:MarkdownRefreshSyntax(force)
- if &filetype == 'markdown' && line('$') > 1
+ if &filetype =~ 'markdown' && line('$') > 1
call s:MarkdownHighlightSources(a:force)
endif
endfunction
function! s:MarkdownClearSyntaxVariables()
- if &filetype == 'markdown'
+ if &filetype =~ 'markdown'
unlet! b:mkd_included_filetypes
endif
endfunction
augroup Mkd
- autocmd!
- au BufWinEnter * call s:MarkdownRefreshSyntax(1)
- au BufUnload * call s:MarkdownClearSyntaxVariables()
- au BufWritePost * call s:MarkdownRefreshSyntax(0)
- au InsertEnter,InsertLeave * call s:MarkdownRefreshSyntax(0)
- au CursorHold,CursorHoldI * call s:MarkdownRefreshSyntax(0)
+ " These autocmd calling s:MarkdownRefreshSyntax need to be kept in sync with
+ " the autocmds calling s:MarkdownSetupFolding in after/ftplugin/markdown.vim.
+ autocmd! * <buffer>
+ autocmd BufWinEnter <buffer> call s:MarkdownRefreshSyntax(1)
+ autocmd BufUnload <buffer> call s:MarkdownClearSyntaxVariables()
+ autocmd BufWritePost <buffer> call s:MarkdownRefreshSyntax(0)
+ autocmd InsertEnter,InsertLeave <buffer> call s:MarkdownRefreshSyntax(0)
+ autocmd CursorHold,CursorHoldI <buffer> call s:MarkdownRefreshSyntax(0)
augroup END