]>
git.madduck.net Git - etc/vim.git/blobdiff - ftplugin/markdown.vim
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
+ call setloclist(0, l:header_list)
if len(l:header_list) == 0
echom "Toc: No headers."
return
endif
if len(l:header_list) == 0
echom "Toc: No headers."
return
endif
- call setloclist(0, l:header_list)
if l:window_type ==# 'horizontal'
lopen
if l:window_type ==# 'horizontal'
lopen
" Search instead of `normal! j` because of the table at beginning of file edge case.
call search('|')
normal! j
" Search instead of `normal! j` because of the table at beginning of file edge case.
call search('|')
normal! j
- " Remove everything that is not a pipe othewise well formated tables would grow
- " because of addition of 2 spaces on the separator line by Tabularize /|.
+ " Remove everything that is not a pipe, colon or hyphen next to a colon othewise
+ " well formated tables would grow because of addition of 2 spaces on the separator
+ " line by Tabularize /|.
let l:flags = (&gdefault ? '' : 'g')
let l:flags = (&gdefault ? '' : 'g')
- execute 's/[^|]//' . l:flags
+ execute 's/\(:\@<!-:\@!\|[^|:-]\)//e' . l:flags
+ execute 's/--/-/e' . l:flags
+ " Move colons for alignment to left or right side of the cell.
+ execute 's/:\( \+\)|/\1:|/e' . l:flags
+ execute 's/|\( \+\):/|:\1/e' . l:flags
execute 's/ /-/' . l:flags
call setpos('.', l:pos)
endfunction
execute 's/ /-/' . l:flags
call setpos('.', l:pos)
endfunction
" Look for code blocks in the current file
let filetypes = {}
for line in getline(1, '$')
" Look for code blocks in the current file
let filetypes = {}
for line in getline(1, '$')
- let ft = matchstr(line, '```\zs[0-9A-Za-z_+-]*')
+ let ft = matchstr(line, '```\s*\ zs[0-9A-Za-z_+-]*')
if !empty(ft) && ft !~ '^\d*$' | let filetypes[ft] = 1 | endif
endfor
if !exists('b:mkd_known_filetypes')
if !empty(ft) && ft !~ '^\d*$' | let filetypes[ft] = 1 | endif
endfor
if !exists('b:mkd_known_filetypes')
else
let include = '@' . toupper(filetype)
endif
else
let include = '@' . toupper(filetype)
endif
- let command = 'syntax region %s matchgroup=%s start="^\s*```%s$" matchgroup=%s end="\s*```$" keepend contains=%s%s'
+ 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('syntax cluster mkdNonListItem add=%s', group)
execute printf(command, group, startgroup, ft, endgroup, include, has('conceal') && get(g:, 'vim_markdown_conceal', 1) ? ' concealends' : '')
execute printf('syntax cluster mkdNonListItem add=%s', group)
+function! s:MarkdownClearSyntaxVariables()
+ if &filetype == 'markdown'
+ unlet! b:mkd_included_filetypes
+ endif
+endfunction
+
augroup Mkd
autocmd!
au BufWinEnter * call s:MarkdownRefreshSyntax(1)
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)
au BufWritePost * call s:MarkdownRefreshSyntax(0)
au InsertEnter,InsertLeave * call s:MarkdownRefreshSyntax(0)
au CursorHold,CursorHoldI * call s:MarkdownRefreshSyntax(0)