From efa331046b8b99b3112ec262e68c0b246796502e Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 4 Jun 2018 22:29:57 +1200 Subject: Correct a comment in ftplugin/php.vim --- vim/ftplugin/php.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/ftplugin/php.vim b/vim/ftplugin/php.vim index b545e18a..39cec4b1 100644 --- a/vim/ftplugin/php.vim +++ b/vim/ftplugin/php.vim @@ -1,6 +1,6 @@ " " Replace Vim's stock PHP filetype plugin, reimplementing only the part I -" actually need (the matchit.vim keyword pairs). +" actually need: the matchit.vim keyword pairs. " " This is mostly because the stock file pulls in HTML's filetype plugins too, " without providing a variable check to stop it. That causes absurd problems -- cgit v1.2.3 From 814bb33ccdd984feb5766db401cc70f7452422c8 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 4 Jun 2018 22:30:25 +1200 Subject: Make private copy of ftplugin/markdown.vim --- vim/ftplugin/markdown.vim | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 vim/ftplugin/markdown.vim diff --git a/vim/ftplugin/markdown.vim b/vim/ftplugin/markdown.vim new file mode 100644 index 00000000..2bd27d14 --- /dev/null +++ b/vim/ftplugin/markdown.vim @@ -0,0 +1,43 @@ +" +" Replace Vim's stock Markdown filetype plugin, reimplementing only the part I +" actually need: the options settings. I don't use the folding, anyway. +" +" This is mostly because the stock file pulls in HTML's filetype plugins too, +" without providing a variable check to stop it. That causes absurd problems +" with defining HTML checkers/linters in the rest of my files. +" +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +" Support line continuation for this file +if &compatible + let s:cpoptions_save = &cpoptions + set cpoptions-=C +endif + +" Set comment/quote patterns +setlocal comments=fb:*,fb:-,fb:+,n:> +setlocal commentstring=>\ %s + +" Set format options +setlocal formatoptions+=tcqln +setlocal formatoptions-=ro + +" Set list format patterns +let &l:formatlistpat = '^\s*\d\+\.\s\+\' + \ .'\|^[-*+]\s\+\' + \ .'\|^\[^\ze[^\]]\+\]:' + +" Define how to undo this plugin's settings +let b:undo_ftplugin = 'setlocal comments<' + \ . '|setlocal commentstring<' + \ . '|setlocal formatoptions<' + \ . '|setlocal formatlistpat<' + +" Restore 'cpoptions' setting if we touched it +if exists('s:cpoptions_save') + let &cpoptions = s:cpoptions_save + unlet s:cpoptions_save +endif -- cgit v1.2.3 From a14bc50707592944bf6e327c912bb197de98ec00 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 4 Jun 2018 22:35:49 +1200 Subject: Move Markdown and PHP ftplugins from after dir Because we use our own private copies of the primary filetype plugins, they'll get loaded in the correct order from here. Also adjust Makefile to accommodate the extra level. --- Makefile | 9 ++- vim/after/ftplugin/markdown/autoformat.vim | 96 ------------------------------ vim/after/ftplugin/markdown/spell.vim | 21 ------- vim/after/ftplugin/php/check.vim | 57 ------------------ vim/ftplugin/markdown/autoformat.vim | 96 ++++++++++++++++++++++++++++++ vim/ftplugin/markdown/spell.vim | 21 +++++++ vim/ftplugin/php/check.vim | 57 ++++++++++++++++++ 7 files changed, 181 insertions(+), 176 deletions(-) delete mode 100644 vim/after/ftplugin/markdown/autoformat.vim delete mode 100644 vim/after/ftplugin/markdown/spell.vim delete mode 100644 vim/after/ftplugin/php/check.vim create mode 100644 vim/ftplugin/markdown/autoformat.vim create mode 100644 vim/ftplugin/markdown/spell.vim create mode 100644 vim/ftplugin/php/check.vim diff --git a/Makefile b/Makefile index fd08950d..134935ae 100644 --- a/Makefile +++ b/Makefile @@ -546,8 +546,13 @@ install-vim-ftdetect: cp -p -- vim/ftdetect/*.vim $(VIMDIR)/ftdetect install-vim-ftplugin: - mkdir -p -- $(VIMDIR)/ftplugin - cp -p -- vim/ftplugin/*.vim $(VIMDIR)/ftplugin + mkdir -p $(VIMDIR)/ftplugin + find vim/ftplugin \ + -type d -exec sh -c \ + 'mkdir -p -- $(VIMDIR)/"$${1#vim/}"' _ {} \; \ + -o \ + -type f -exec sh -c \ + 'cp -p -- "$$1" $(VIMDIR)/"$${1#vim/}"' _ {} \; install-vim-indent: mkdir -p -- $(VIMDIR)/indent diff --git a/vim/after/ftplugin/markdown/autoformat.vim b/vim/after/ftplugin/markdown/autoformat.vim deleted file mode 100644 index 3f620691..00000000 --- a/vim/after/ftplugin/markdown/autoformat.vim +++ /dev/null @@ -1,96 +0,0 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled, or if no autocmd feature, or if Vim -" is too old to support the needed autocmd events -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 !has('*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 = l:count + 1 - endif - endfor - if l:count * 100 / l:total < 5 - setlocal formatoptions+=a - else - setlocal formatoptions-=a - endif - endfunction -endif -call s:Load() - -" Suspend auto-formatting when in a code block (four-space indent) -if !has('*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 -augroup ftplugin_markdown_autoformat - autocmd! - autocmd BufWinEnter,CursorMoved,CursorMovedI,WinEnter - \ - \ call s:Line() -augroup END - -" Suspend auto-format when pasting anything with a linebreak -if !has('*s:Put') - function! s:Put(above) abort - let l:suspended = 0 - if &formatoptions =~# '\ma' && getreg() =~# '\m\n' - setlocal formatoptions-=a - let l:suspended = 1 - endif - if a:above - execute 'normal! "'.v:register.v:count1.'P' - else - execute 'normal! "'.v:register.v:count1.'p' - endif - if l:suspended - setlocal formatoptions+=a - endif - endfunction -endif -nnoremap - \ p - \ :call Put(0) -nnoremap - \ P - \ :call Put(1) - -" 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/after/ftplugin/markdown/spell.vim b/vim/after/ftplugin/markdown/spell.vim deleted file mode 100644 index 05fc7c00..00000000 --- a/vim/after/ftplugin/markdown/spell.vim +++ /dev/null @@ -1,21 +0,0 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled, or if the 'spell' feature isn't -" available -if exists('b:did_ftplugin_markdown_spell') || &compatible - finish -endif -if !has('spell') - finish -endif -let b:did_ftplugin_markdown_spell = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_markdown_spell' -endif - -" Spellcheck documents by default -setlocal spell -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal spell<' -endif diff --git a/vim/after/ftplugin/php/check.vim b/vim/after/ftplugin/php/check.vim deleted file mode 100644 index 33077a72..00000000 --- a/vim/after/ftplugin/php/check.vim +++ /dev/null @@ -1,57 +0,0 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_php_check') || &compatible - finish -endif -let b:did_ftplugin_php_check = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_php_check' -endif - -" Build function for checker -if !exists('*s:PhpCheck') - function s:PhpCheck() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler - compiler php - - " 7.4.191 is the earliest version with the :S file name modifier, which we - " really should use if we can - if v:version >= 704 || v:version == 704 && has('patch191') - make! %:S - else - make! % - endif - - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif - -" Set up a mapping for the checker, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_php_maps') - - " Define a mapping target - nnoremap - \ PhpCheck - \ :call PhpCheck() - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PhpCheck' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('PhpCheck') - nmap - \ c - \ PhpCheck - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap c' - endif - endif - -endif diff --git a/vim/ftplugin/markdown/autoformat.vim b/vim/ftplugin/markdown/autoformat.vim new file mode 100644 index 00000000..3f620691 --- /dev/null +++ b/vim/ftplugin/markdown/autoformat.vim @@ -0,0 +1,96 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled, or if no autocmd feature, or if Vim +" is too old to support the needed autocmd events +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 !has('*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 = l:count + 1 + endif + endfor + if l:count * 100 / l:total < 5 + setlocal formatoptions+=a + else + setlocal formatoptions-=a + endif + endfunction +endif +call s:Load() + +" Suspend auto-formatting when in a code block (four-space indent) +if !has('*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 +augroup ftplugin_markdown_autoformat + autocmd! + autocmd BufWinEnter,CursorMoved,CursorMovedI,WinEnter + \ + \ call s:Line() +augroup END + +" Suspend auto-format when pasting anything with a linebreak +if !has('*s:Put') + function! s:Put(above) abort + let l:suspended = 0 + if &formatoptions =~# '\ma' && getreg() =~# '\m\n' + setlocal formatoptions-=a + let l:suspended = 1 + endif + if a:above + execute 'normal! "'.v:register.v:count1.'P' + else + execute 'normal! "'.v:register.v:count1.'p' + endif + if l:suspended + setlocal formatoptions+=a + endif + endfunction +endif +nnoremap + \ p + \ :call Put(0) +nnoremap + \ P + \ :call Put(1) + +" 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/ftplugin/markdown/spell.vim b/vim/ftplugin/markdown/spell.vim new file mode 100644 index 00000000..05fc7c00 --- /dev/null +++ b/vim/ftplugin/markdown/spell.vim @@ -0,0 +1,21 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled, or if the 'spell' feature isn't +" available +if exists('b:did_ftplugin_markdown_spell') || &compatible + finish +endif +if !has('spell') + finish +endif +let b:did_ftplugin_markdown_spell = 1 +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_markdown_spell' +endif + +" Spellcheck documents by default +setlocal spell +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal spell<' +endif diff --git a/vim/ftplugin/php/check.vim b/vim/ftplugin/php/check.vim new file mode 100644 index 00000000..33077a72 --- /dev/null +++ b/vim/ftplugin/php/check.vim @@ -0,0 +1,57 @@ +" Only do this when not done yet for this buffer +" Also do nothing if 'compatible' enabled +if exists('b:did_ftplugin_php_check') || &compatible + finish +endif +let b:did_ftplugin_php_check = 1 +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_php_check' +endif + +" Build function for checker +if !exists('*s:PhpCheck') + function s:PhpCheck() + let l:save_makeprg = &l:makeprg + let l:save_errorformat = &l:errorformat + unlet! g:current_compiler + compiler php + + " 7.4.191 is the earliest version with the :S file name modifier, which we + " really should use if we can + if v:version >= 704 || v:version == 704 && has('patch191') + make! %:S + else + make! % + endif + + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow + endfunction +endif + +" Set up a mapping for the checker, if we're allowed +if !exists('g:no_plugin_maps') && !exists('g:no_php_maps') + + " Define a mapping target + nnoremap + \ PhpCheck + \ :call PhpCheck() + if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PhpCheck' + endif + + " If there isn't a key mapping already, use a default one + if !hasmapto('PhpCheck') + nmap + \ c + \ PhpCheck + if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap c' + endif + endif + +endif -- cgit v1.2.3 From 200b5154a919ecab27154e58989d23fc237f1018 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 4 Jun 2018 22:43:53 +1200 Subject: Use correct function for function existence check --- vim/ftplugin/markdown/autoformat.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vim/ftplugin/markdown/autoformat.vim b/vim/ftplugin/markdown/autoformat.vim index 3f620691..80bd034c 100644 --- a/vim/ftplugin/markdown/autoformat.vim +++ b/vim/ftplugin/markdown/autoformat.vim @@ -18,7 +18,7 @@ endif " * Longer than 'textwidth' " * Contains at least one space (not an unsplittable line) " * Not a code block (indented with at least four spaces) -if !has('*s:Load') +if !exists('*s:Load') function! s:Load() abort let l:width = &textwidth ? &textwidth : 79 let l:count = 0 @@ -41,7 +41,7 @@ endif call s:Load() " Suspend auto-formatting when in a code block (four-space indent) -if !has('*s:Line') +if !exists('*s:Line') function! s:Line() abort if getline('.') =~# '\m^ ' if &formatoptions =~# '\ma' @@ -62,7 +62,7 @@ augroup ftplugin_markdown_autoformat augroup END " Suspend auto-format when pasting anything with a linebreak -if !has('*s:Put') +if !exists('*s:Put') function! s:Put(above) abort let l:suspended = 0 if &formatoptions =~# '\ma' && getreg() =~# '\m\n' -- cgit v1.2.3 From ffa9e43710335f565b0442c2877c1cc23b9fb34e Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 4 Jun 2018 22:44:44 +1200 Subject: Bump VERSION --- VERSION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index abe82ea1..15dfadf5 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -tejr dotfiles v0.45.0 -Mon Jun 4 10:06:44 UTC 2018 +tejr dotfiles v0.46.0 +Mon Jun 4 10:44:39 UTC 2018 -- cgit v1.2.3