X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/dc61d198de36dd3a45b8722617a101d4e4e8e0ae..dce291ccd0397c8dec8a5e980c5e206168dab508:/ftplugin/mkd.vim?ds=sidebyside diff --git a/ftplugin/mkd.vim b/ftplugin/mkd.vim index 41787f0..63d7914 100644 --- a/ftplugin/mkd.vim +++ b/ftplugin/mkd.vim @@ -47,12 +47,12 @@ " For each level, contains the regexp that matches at that level only. let s:levelRegexpDict = { - \ 1: '\v^(#[^#]|.+\n\=+$)', - \ 2: '\v^(##[^#]|.+\n-+$)', - \ 3: '\v^###[^#]', - \ 4: '\v^####[^#]', - \ 5: '\v^#####[^#]', - \ 6: '\v^######[^#]' + \ 1: '\v^(#[^#]@=|.+\n\=+$)', + \ 2: '\v^(##[^#]@=|.+\n-+$)', + \ 3: '\v^###[^#]@=', + \ 4: '\v^####[^#]@=', + \ 5: '\v^#####[^#]@=', + \ 6: '\v^######[^#]@=' \ } " Maches any header level of any type. @@ -318,11 +318,10 @@ function! s:Markdown_Toc(...) else lopen endif - set modifiable - %s/\v^([^|]*\|){2,2} #// + setlocal modifiable for i in range(1, line('$')) - " this is the quickfix data for the current item - let d = getqflist()[i-1] + " this is the location-list data for the current item + let d = getloclist(0)[i-1] " atx headers if match(d.text, "^#") > -1 let l:level = len(matchstr(d.text, '#*', 'g'))-1 @@ -339,8 +338,8 @@ function! s:Markdown_Toc(...) endif call setline(i, repeat(' ', l:level). d.text) endfor - set nomodified - set nomodifiable + setlocal nomodified + setlocal nomodifiable normal! gg endfunction @@ -392,7 +391,7 @@ function! s:HeaderDecrease(line1, line2, ...) endfor let l:numSubstitutions = s:SetexToAtx(a:line1, a:line2) for l:level in range(replaceLevels[0], replaceLevels[1], -l:levelDelta) - execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '\1/g' + execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '/g' endfor endfunction