From 73fb9e19126049dca8fd4c3755b3e45098616a84 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Tue, 5 Jun 2018 13:16:47 +1200 Subject: Spin off markdown_autoformat as its own distro --- .gitmodules | 3 + vim/after/ftplugin/markdown/autoformat.vim | 108 ----------------------------- vim/bundle/markdown_autoformat | 1 + 3 files changed, 4 insertions(+), 108 deletions(-) delete mode 100644 vim/after/ftplugin/markdown/autoformat.vim create mode 160000 vim/bundle/markdown_autoformat diff --git a/.gitmodules b/.gitmodules index 9bda87e8..212a4e52 100644 --- a/.gitmodules +++ b/.gitmodules @@ -17,6 +17,9 @@ [submodule "vim/bundle/mail_mutt"] path = vim/bundle/mail_mutt url = https://sanctum.geek.nz/code/vim-mail-mutt.git +[submodule "vim/bundle/markdown_autoformat"] + path = vim/bundle/markdown_autoformat + url = https://sanctum.geek.nz/code/vim-markdown-autoformat.git [submodule "vim/bundle/put_blank_lines"] path = vim/bundle/put_blank_lines url = https://sanctum.geek.nz/code/vim-put-blank-lines.git diff --git a/vim/after/ftplugin/markdown/autoformat.vim b/vim/after/ftplugin/markdown/autoformat.vim deleted file mode 100644 index aa805267..00000000 --- a/vim/after/ftplugin/markdown/autoformat.vim +++ /dev/null @@ -1,108 +0,0 @@ -" -" markdown/autoformat.vim: Refine control over the 'formatoptions' flag 'a' -" for automatic formatting when editing Markdown documents: -" -" - Turn it on automatically on load if the buffer looks wrapped -" - Suspend it if editing a line in a code block (indented by four spaces) -" - Suspend it if pasting something with a linebreak -" -" Author: Tom Ryder -" License: Same as Vim itself -" -if exists('b:did_ftplugin_markdown_autoformat') || &compatible - finish -endif -if !has('autocmd') || v:version < 700 - finish -endif -let b:did_ftplugin_markdown_autoformat = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_markdown_autoformat' -endif - -" Turn on autoformatting if less than 5% of the buffer's lines meet all three -" of these conditions: -" -" - Longer than 'textwidth' -" - Contains at least one space (not an unsplittable line) -" - Not a code block (indented with at least four spaces) -" -if !exists('*s:Load') - function! s:Load() abort - let l:width = &textwidth ? &textwidth : 79 - let l:count = 0 - let l:total = line('$') - for l:li in range(1, l:total) - let l:line = getline(l:li) - if strlen(l:line) > l:width - \ && stridx(l:line, ' ') > -1 - \ && l:line !~# '\m^ ' - let l:count += 1 - endif - endfor - if l:count * 100 / l:total < 5 - setlocal formatoptions+=a - else - setlocal formatoptions-=a - endif - endfunction -endif -if !exists('g:markdown_autoformat_load') || g:markdown_autoformat_load - call s:Load() -endif - -" Suspend auto-formatting when in a code block (four-space indent) -if !exists('*s:Line') - function! s:Line() abort - if getline('.') =~# '\m^ ' - if &formatoptions =~# '\ma' - setlocal formatoptions-=a - let b:markdown_autoformat_suspended = 1 - endif - elseif exists('b:markdown_autoformat_suspended') - setlocal formatoptions+=a - unlet b:markdown_autoformat_suspended - endif - endfunction -endif -if !exists('g:markdown_autoformat_line') || g:markdown_autoformat_line - augroup ftplugin_markdown_autoformat - autocmd! - autocmd BufWinEnter,CursorMoved,CursorMovedI,WinEnter - \ - \ call s:Line() - augroup END -endif - -" Suspend auto-format when pasting anything with a linebreak -if !exists('*s:Put') - function! s:Put(key) abort - let l:suspended = 0 - if &formatoptions =~# '\ma' && getreg() =~# '\m\n' - setlocal formatoptions-=a - let l:suspended = 1 - endif - execute 'normal! "'.v:register.v:count1.a:key - if l:suspended - setlocal formatoptions+=a - endif - endfunction -endif -if !exists('g:markdown_autoformat_put') || g:markdown_autoformat_put - nnoremap - \ p - \ :call Put('p') - nnoremap - \ P - \ :call Put('P') -endif - -" Undo all the above -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal formatoptions<' - \ . '|augroup ftplugin_markdown_autoformat' - \ . '|autocmd! * ' - \ . '|augroup END' -endif diff --git a/vim/bundle/markdown_autoformat b/vim/bundle/markdown_autoformat new file mode 160000 index 00000000..0b403358 --- /dev/null +++ b/vim/bundle/markdown_autoformat @@ -0,0 +1 @@ +Subproject commit 0b403358bc35c4a1303b2a4e7ca8c536b13222fa -- cgit v1.2.3