From 996b0d855fd3d010b417b80cdef648a84eade835 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 14 Jun 2018 14:18:27 +1200 Subject: Add more names to Vim Bash types --- vim/filetype.vim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vim/filetype.vim b/vim/filetype.vim index 2dc44889..99d07cfa 100644 --- a/vim/filetype.vim +++ b/vim/filetype.vim @@ -300,10 +300,14 @@ augroup filetypedetect autocmd BufNewFile,BufRead \ ?*.bash \,.bash_aliases + \,.bash_completion \,.bash_logout \,.bash_profile \,.bashrc \,bash-fc.?* + \,bash_aliases + \,bash_completion + \,bash_logout \,bash_profile \,bashrc \ let b:is_bash = 1 -- cgit v1.2.3 From f80afbca7db4d726c4af44b399c8a59217923931 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 14 Jun 2018 17:20:46 +1200 Subject: Add Xresources filenames --- vim/filetype.vim | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vim/filetype.vim b/vim/filetype.vim index 99d07cfa..c259c43f 100644 --- a/vim/filetype.vim +++ b/vim/filetype.vim @@ -420,6 +420,8 @@ augroup filetypedetect autocmd BufNewFile,BufRead \ .Xresources \,*/.Xresources.d/* + \,Xresources + \,*/Xresources.d/* \ setfiletype xdefaults " XHTML files autocmd BufNewFile,BufRead -- cgit v1.2.3 From 4b2d193d7b3d9676e317f5515725d2c3527841f6 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 14 Jun 2018 23:45:33 +1200 Subject: Set 'comments' blank by default --- vim/vimrc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vim/vimrc b/vim/vimrc index c268582c..69a05cd0 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -93,6 +93,10 @@ if has('unix') nnoremap D :read !date -u endif +" Start with blank comment strings rather than the old default; let the +" filetype handle it +set comments= + " Don't try to complete strings from included files, just use the strings in " the open buffers; I'll open the file if I want to complete from it set complete-=i -- cgit v1.2.3 From 77999aa4f231d675501e7acac91692bc8ef75fa5 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Fri, 15 Jun 2018 12:58:15 +1200 Subject: Fix comments in vim/filetype.vim --- vim/filetype.vim | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vim/filetype.vim b/vim/filetype.vim index c259c43f..3cd2b203 100644 --- a/vim/filetype.vim +++ b/vim/filetype.vim @@ -1,13 +1,17 @@ -" Override filetypes.vim +" Override system filetype.vim if exists('g:did_load_filetypes') finish endif let g:did_load_filetypes = 1 + +" If we don't have +autocmd or are 'compatible', do nothing, and don't try +" again later if !has('autocmd') || &compatible finish endif -" Run the 'filetypedetect' group on a file with its extension stripped off +" Helper function to run the 'filetypedetect' group on a file with its +" extension stripped off function! s:StripRepeat() " Check we have the fnameescape() function -- cgit v1.2.3 From 0d8a2b3c99df6bc357378962e979b991e3d92256 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 16 Jun 2018 13:16:28 +1200 Subject: Use `function!` consistently in ftplugins --- vim/after/ftplugin/html/lint.vim | 22 ++++++++++------------ vim/after/ftplugin/html/url_link.vim | 26 ++++++++++++-------------- vim/after/ftplugin/perl/check.vim | 22 ++++++++++------------ vim/after/ftplugin/perl/lint.vim | 22 ++++++++++------------ vim/after/ftplugin/php/check.vim | 34 ++++++++++++++++------------------ vim/after/ftplugin/sh/lint.vim | 22 ++++++++++------------ vim/after/ftplugin/vim/lint.vim | 22 ++++++++++------------ vim/after/ftplugin/zsh/check.vim | 22 ++++++++++------------ 8 files changed, 88 insertions(+), 104 deletions(-) diff --git a/vim/after/ftplugin/html/lint.vim b/vim/after/ftplugin/html/lint.vim index b24b18c9..65742267 100644 --- a/vim/after/ftplugin/html/lint.vim +++ b/vim/after/ftplugin/html/lint.vim @@ -16,18 +16,16 @@ if exists('b:undo_ftplugin') endif " Build function for linter -if !exists('*s:HtmlLint') - function s:HtmlLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler - compiler tidy - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif +function! s:HtmlLint() + let l:save_makeprg = &l:makeprg + let l:save_errorformat = &l:errorformat + unlet! g:current_compiler + compiler tidy + make! + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow +endfunction " Set up a mapping for the linter, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') diff --git a/vim/after/ftplugin/html/url_link.vim b/vim/after/ftplugin/html/url_link.vim index 2e600b5e..a5a926d6 100644 --- a/vim/after/ftplugin/html/url_link.vim +++ b/vim/after/ftplugin/html/url_link.vim @@ -14,22 +14,20 @@ if exists('b:undo_ftplugin') endif " Make a bare URL into a link to itself -if !exists('*s:HtmlUrlLink') - function! s:HtmlUrlLink() +function! s:HtmlUrlLink() - " Yank this whole whitespace-separated word - normal! yiW - " Open a link tag - normal! i - " Paste the URL into the quotes - normal! hP - " Move to the end of the link text URL - normal! E - " Close the link tag - normal! a + " Yank this whole whitespace-separated word + normal! yiW + " Open a link tag + normal! i + " Paste the URL into the quotes + normal! hP + " Move to the end of the link text URL + normal! E + " Close the link tag + normal! a - endfunction -endif +endfunction " Set up a mapping for the function, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') diff --git a/vim/after/ftplugin/perl/check.vim b/vim/after/ftplugin/perl/check.vim index df90784f..a9b23c2b 100644 --- a/vim/after/ftplugin/perl/check.vim +++ b/vim/after/ftplugin/perl/check.vim @@ -10,18 +10,16 @@ if exists('b:undo_ftplugin') endif " Build function for checker -if !exists('*s:PerlCheck') - function s:PerlCheck() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler - compiler perl - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif +function! s:PerlCheck() + let l:save_makeprg = &l:makeprg + let l:save_errorformat = &l:errorformat + unlet! g:current_compiler + compiler perl + make! + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow +endfunction " Set up a mapping for the checker, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') diff --git a/vim/after/ftplugin/perl/lint.vim b/vim/after/ftplugin/perl/lint.vim index 48b23091..235ee69a 100644 --- a/vim/after/ftplugin/perl/lint.vim +++ b/vim/after/ftplugin/perl/lint.vim @@ -10,18 +10,16 @@ if exists('b:undo_ftplugin') endif " Build function for linter -if !exists('*s:PerlLint') - function s:PerlLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler - compiler perlcritic - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif +function! s:PerlLint() + let l:save_makeprg = &l:makeprg + let l:save_errorformat = &l:errorformat + unlet! g:current_compiler + compiler perlcritic + make! + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow +endfunction " Set up a mapping for the linter, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') diff --git a/vim/after/ftplugin/php/check.vim b/vim/after/ftplugin/php/check.vim index 33077a72..58b41c21 100644 --- a/vim/after/ftplugin/php/check.vim +++ b/vim/after/ftplugin/php/check.vim @@ -10,26 +10,24 @@ if exists('b:undo_ftplugin') 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 +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 + " 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 + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow +endfunction " Set up a mapping for the checker, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_php_maps') diff --git a/vim/after/ftplugin/sh/lint.vim b/vim/after/ftplugin/sh/lint.vim index 7d6e4d75..a8d65702 100644 --- a/vim/after/ftplugin/sh/lint.vim +++ b/vim/after/ftplugin/sh/lint.vim @@ -25,18 +25,16 @@ if exists('b:undo_ftplugin') endif " Build function for checker -if !exists('*s:ShLint') - function s:ShLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - let &l:makeprg = b:sh_lint_makeprg - let &l:errorformat = b:sh_lint_errorformat - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif +function! s:ShLint() + let l:save_makeprg = &l:makeprg + let l:save_errorformat = &l:errorformat + let &l:makeprg = b:sh_lint_makeprg + let &l:errorformat = b:sh_lint_errorformat + make! + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow +endfunction " Set up a mapping for the linter, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_sh_maps') diff --git a/vim/after/ftplugin/vim/lint.vim b/vim/after/ftplugin/vim/lint.vim index 2c402964..86a8b16f 100644 --- a/vim/after/ftplugin/vim/lint.vim +++ b/vim/after/ftplugin/vim/lint.vim @@ -10,18 +10,16 @@ if exists('b:undo_ftplugin') endif " Build function for checker -if !exists('*s:VimLint') - function s:VimLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler - compiler vint - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif +function! s:VimLint() + let l:save_makeprg = &l:makeprg + let l:save_errorformat = &l:errorformat + unlet! g:current_compiler + compiler vint + make! + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow +endfunction " Set up a mapping for the linter, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_vim_maps') diff --git a/vim/after/ftplugin/zsh/check.vim b/vim/after/ftplugin/zsh/check.vim index 39faf44a..371ca2c6 100644 --- a/vim/after/ftplugin/zsh/check.vim +++ b/vim/after/ftplugin/zsh/check.vim @@ -10,18 +10,16 @@ if exists('b:undo_ftplugin') endif " Build function for checker -if !exists('*s:ZshCheck') - function s:ZshCheck() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler - compiler zsh - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif +function! s:ZshCheck() + let l:save_makeprg = &l:makeprg + let l:save_errorformat = &l:errorformat + unlet! g:current_compiler + compiler zsh + make! + let &l:makeprg = l:save_makeprg + let &l:errorformat = l:save_errorformat + cwindow +endfunction " Set up a mapping for the checker, if we're allowed if !exists('g:no_plugin_maps') && !exists('g:no_zsh_maps') -- cgit v1.2.3 From 948ece4750598f649b2bb7fe3961cf5acb763df7 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 16 Jun 2018 13:20:35 +1200 Subject: Upgrade insert_suspend_hlsearch.vim --- vim/bundle/insert_suspend_hlsearch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/bundle/insert_suspend_hlsearch b/vim/bundle/insert_suspend_hlsearch index e71b7605..7dc6de6d 160000 --- a/vim/bundle/insert_suspend_hlsearch +++ b/vim/bundle/insert_suspend_hlsearch @@ -1 +1 @@ -Subproject commit e71b7605705cc2caed9ae74b8578c71c304b2777 +Subproject commit 7dc6de6d44575d238d82461d46def0b51d90af88 -- cgit v1.2.3 From e084c69ff30472856a3a91ece6d8bc6ec99238a6 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 16 Jun 2018 20:41:46 +1200 Subject: Consistently require 'nocompatible' for ftplugins --- vim/ftplugin/markdown.vim | 14 +------------- vim/ftplugin/php.vim | 14 +------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/vim/ftplugin/markdown.vim b/vim/ftplugin/markdown.vim index 94f49c9b..c6a180a9 100644 --- a/vim/ftplugin/markdown.vim +++ b/vim/ftplugin/markdown.vim @@ -6,17 +6,11 @@ " 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') +if exists('b:did_ftplugin') || &compatible 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 @@ -37,9 +31,3 @@ 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 diff --git a/vim/ftplugin/php.vim b/vim/ftplugin/php.vim index 39cec4b1..35292e15 100644 --- a/vim/ftplugin/php.vim +++ b/vim/ftplugin/php.vim @@ -6,17 +6,11 @@ " 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') +if exists('b:did_ftplugin') || &compatible finish endif let b:did_ftplugin = 1 -" Support line continuation for this file -if &compatible - let s:cpoptions_save = &cpoptions - set cpoptions-=C -endif - " Define keywords for matchit.vim if exists('g:loaded_matchit') let b:match_words = '' @@ -30,9 +24,3 @@ endif " Define how to undo this plugin's settings let b:undo_ftplugin = 'unlet b:match_words' - -" 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 408ec4c0450fe11064dfea6d786ae543111a2575 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 16 Jun 2018 21:57:33 +1200 Subject: Correct g:current_compiler setting Copypaste error. --- vim/compiler/perlcritic.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/compiler/perlcritic.vim b/vim/compiler/perlcritic.vim index afbb73c7..03d21683 100644 --- a/vim/compiler/perlcritic.vim +++ b/vim/compiler/perlcritic.vim @@ -1,7 +1,7 @@ if exists('g:current_compiler') finish endif -let g:current_compiler = 'tidy' +let g:current_compiler = 'perlcritic' if exists(':CompilerSet') != 2 command -nargs=* CompilerSet setlocal -- cgit v1.2.3 From 88defc4fc528bad2b0664c634d95e4363665472d Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 16 Jun 2018 21:59:31 +1200 Subject: Use short-circuit for no-mapping check --- vim/after/ftplugin/html/lint.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/html/tidy.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/html/url_link.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/perl/check.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/perl/lint.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/perl/tidy.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/php/check.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/sh/check.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/sh/lint.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/vim/lint.vim | 36 ++++++++++++++++++------------------ vim/after/ftplugin/zsh/check.vim | 34 +++++++++++++++++----------------- 11 files changed, 197 insertions(+), 197 deletions(-) diff --git a/vim/after/ftplugin/html/lint.vim b/vim/after/ftplugin/html/lint.vim index 65742267..64df3447 100644 --- a/vim/after/ftplugin/html/lint.vim +++ b/vim/after/ftplugin/html/lint.vim @@ -27,27 +27,27 @@ function! s:HtmlLint() cwindow endfunction -" Set up a mapping for the linter, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_html_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ HtmlLint + \ :call HtmlLint() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap HtmlLint' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('HtmlLint') + nmap + \ l \ HtmlLint - \ :call HtmlLint() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap HtmlLint' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('HtmlLint') - nmap - \ l - \ HtmlLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + \ . '|nunmap l' endif - endif diff --git a/vim/after/ftplugin/html/tidy.vim b/vim/after/ftplugin/html/tidy.vim index 6e612feb..3d14e79e 100644 --- a/vim/after/ftplugin/html/tidy.vim +++ b/vim/after/ftplugin/html/tidy.vim @@ -13,27 +13,27 @@ if exists('b:undo_ftplugin') \ . '|unlet b:did_ftplugin_html_tidy' endif -" Set up a mapping for the tidier, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_html_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ HtmlTidy + \ :%!tidy -quiet +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap HtmlTidy' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('HtmlTidy') + nmap + \ t \ HtmlTidy - \ :%!tidy -quiet if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap HtmlTidy' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('HtmlTidy') - nmap - \ t - \ HtmlTidy - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap t' - endif + \ . '|nunmap t' endif - endif diff --git a/vim/after/ftplugin/html/url_link.vim b/vim/after/ftplugin/html/url_link.vim index a5a926d6..c256b3b9 100644 --- a/vim/after/ftplugin/html/url_link.vim +++ b/vim/after/ftplugin/html/url_link.vim @@ -29,27 +29,27 @@ function! s:HtmlUrlLink() endfunction -" Set up a mapping for the function, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_html_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_html_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ HtmlUrlLink + \ :call HtmlUrlLink() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap HtmlUrlLink' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('HtmlUrlLink') + nmap + \ r \ HtmlUrlLink - \ :call HtmlUrlLink() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap HtmlUrlLink' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('HtmlUrlLink') - nmap - \ r - \ HtmlUrlLink - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap r' - endif + \ . '|nunmap r' endif - endif diff --git a/vim/after/ftplugin/perl/check.vim b/vim/after/ftplugin/perl/check.vim index a9b23c2b..e5eaf44a 100644 --- a/vim/after/ftplugin/perl/check.vim +++ b/vim/after/ftplugin/perl/check.vim @@ -21,27 +21,27 @@ function! s:PerlCheck() cwindow endfunction -" Set up a mapping for the checker, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_perl_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ PerlCheck + \ :call PerlCheck() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PerlCheck' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('PerlCheck') + nmap + \ c \ PerlCheck - \ :call PerlCheck() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PerlCheck' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('PerlCheck') - nmap - \ c - \ PerlCheck - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap c' - endif + \ . '|nunmap c' endif - endif diff --git a/vim/after/ftplugin/perl/lint.vim b/vim/after/ftplugin/perl/lint.vim index 235ee69a..50770a13 100644 --- a/vim/after/ftplugin/perl/lint.vim +++ b/vim/after/ftplugin/perl/lint.vim @@ -21,27 +21,27 @@ function! s:PerlLint() cwindow endfunction -" Set up a mapping for the linter, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_perl_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ PerlLint + \ :call PerlLint() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PerlLint' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('PerlLint') + nmap + \ l \ PerlLint - \ :call PerlLint() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PerlLint' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('PerlLint') - nmap - \ l - \ PerlLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + \ . '|nunmap l' endif - endif diff --git a/vim/after/ftplugin/perl/tidy.vim b/vim/after/ftplugin/perl/tidy.vim index 18033a42..bd3e73a1 100644 --- a/vim/after/ftplugin/perl/tidy.vim +++ b/vim/after/ftplugin/perl/tidy.vim @@ -9,27 +9,27 @@ if exists('b:undo_ftplugin') \ . '|unlet b:did_ftplugin_perl_tidy' endif -" Set up a mapping for the tidier, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_perl_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_perl_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ PerlTidy + \ :%!perltidy +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PerlTidy' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('PerlTidy') + nmap + \ t \ PerlTidy - \ :%!perltidy if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PerlTidy' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('PerlTidy') - nmap - \ t - \ PerlTidy - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap t' - endif + \ . '|nunmap t' endif - endif diff --git a/vim/after/ftplugin/php/check.vim b/vim/after/ftplugin/php/check.vim index 58b41c21..5f131d94 100644 --- a/vim/after/ftplugin/php/check.vim +++ b/vim/after/ftplugin/php/check.vim @@ -29,27 +29,27 @@ function! s:PhpCheck() cwindow endfunction -" Set up a mapping for the checker, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_php_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_php_maps') + finish +endif - " Define a mapping target - nnoremap +" 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 - \ :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 + \ . '|nunmap c' endif - endif diff --git a/vim/after/ftplugin/sh/check.vim b/vim/after/ftplugin/sh/check.vim index 3eaf3f57..dce6552c 100644 --- a/vim/after/ftplugin/sh/check.vim +++ b/vim/after/ftplugin/sh/check.vim @@ -38,27 +38,27 @@ if !exists('*s:ShCheck') endfunction endif -" Set up a mapping for the checker, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_sh_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_sh_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ ShCheck + \ :call ShCheck() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap ShCheck' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('ShCheck') + nmap + \ c \ ShCheck - \ :call ShCheck() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap ShCheck' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('ShCheck') - nmap - \ c - \ ShCheck - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap c' - endif + \ . '|nunmap c' endif - endif diff --git a/vim/after/ftplugin/sh/lint.vim b/vim/after/ftplugin/sh/lint.vim index a8d65702..b89645f7 100644 --- a/vim/after/ftplugin/sh/lint.vim +++ b/vim/after/ftplugin/sh/lint.vim @@ -36,27 +36,27 @@ function! s:ShLint() cwindow endfunction -" Set up a mapping for the linter, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_sh_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_sh_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ ShLint + \ :call ShLint() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap ShLint' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('ShLint') + nmap + \ l \ ShLint - \ :call ShLint() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap ShLint' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('ShLint') - nmap - \ l - \ ShLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + \ . '|nunmap l' endif - endif diff --git a/vim/after/ftplugin/vim/lint.vim b/vim/after/ftplugin/vim/lint.vim index 86a8b16f..ef04d852 100644 --- a/vim/after/ftplugin/vim/lint.vim +++ b/vim/after/ftplugin/vim/lint.vim @@ -21,27 +21,27 @@ function! s:VimLint() cwindow endfunction -" Set up a mapping for the linter, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_vim_maps') +" Stop here if the user doesn't want ftplugin mappings +if exists('g:no_plugin_maps') || exists('g:no_vim_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ VimLint + \ :call VimLint() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap VimLint' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('VimLint') + nmap + \ l \ VimLint - \ :call VimLint() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap VimLint' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('VimLint') - nmap - \ l - \ VimLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + \ . '|nunmap l' endif - endif diff --git a/vim/after/ftplugin/zsh/check.vim b/vim/after/ftplugin/zsh/check.vim index 371ca2c6..c0c8a342 100644 --- a/vim/after/ftplugin/zsh/check.vim +++ b/vim/after/ftplugin/zsh/check.vim @@ -22,26 +22,26 @@ function! s:ZshCheck() endfunction " Set up a mapping for the checker, if we're allowed -if !exists('g:no_plugin_maps') && !exists('g:no_zsh_maps') +if exists('g:no_plugin_maps') || exists('g:no_zsh_maps') + finish +endif - " Define a mapping target - nnoremap +" Define a mapping target +nnoremap + \ ZshCheck + \ :call ZshCheck() +if exists('b:undo_ftplugin') + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap ZshCheck' +endif + +" If there isn't a key mapping already, use a default one +if !hasmapto('ZshCheck') + nmap + \ c \ ZshCheck - \ :call ZshCheck() if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap ZshCheck' - endif - - " If there isn't a key mapping already, use a default one - if !hasmapto('ZshCheck') - nmap - \ c - \ ZshCheck - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap c' - endif + \ . '|nunmap c' endif - endif -- cgit v1.2.3 From 81ff3c0f3ae44bb88a129b7395cb050290a37518 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 00:19:45 +1200 Subject: Completely overhaul after/ftplugin files Should have done some of this in separate commits; oh well. * Rewrite headers for each ftplugin * Require Vim version >= 7.0, and thereby: * Switch back to location list * Don't check for b:undo_ftplugin existence, assume it * Save and restore compiler instead of internal options * Add bash, ksh, sh, and shellcheck compilers * Rename mail/format_flowed.vim to mail/flowed.vim * Rename sh/bash_han.vim to sh/han.vim --- vim/after/ftplugin/html/lint.vim | 52 +++++++++++----------- vim/after/ftplugin/html/tidy.vim | 37 +++++++++------- vim/after/ftplugin/html/url_link.vim | 37 +++++++++------- vim/after/ftplugin/mail/flowed.vim | 21 +++++++++ vim/after/ftplugin/mail/format_flowed.vim | 17 ------- vim/after/ftplugin/markdown/spell.vim | 26 +++++------ vim/after/ftplugin/perl/check.vim | 47 +++++++++++--------- vim/after/ftplugin/perl/lint.vim | 47 +++++++++++--------- vim/after/ftplugin/perl/tidy.vim | 32 ++++++------- vim/after/ftplugin/php/check.vim | 54 +++++++++++----------- vim/after/ftplugin/sh/bash_han.vim | 19 -------- vim/after/ftplugin/sh/check.vim | 74 ++++++++++++++----------------- vim/after/ftplugin/sh/han.vim | 26 +++++++++++ vim/after/ftplugin/sh/lint.vim | 64 +++++++++++--------------- vim/after/ftplugin/sh/posix.vim | 27 ----------- vim/after/ftplugin/text/spell.vim | 26 +++++------ vim/after/ftplugin/vim/lint.vim | 49 ++++++++++---------- vim/after/ftplugin/zsh/check.vim | 47 +++++++++++--------- vim/compiler/bash.vim | 17 +++++++ vim/compiler/ksh.vim | 17 +++++++ vim/compiler/sh.vim | 17 +++++++ vim/compiler/shellcheck.vim | 27 +++++++++++ 22 files changed, 424 insertions(+), 356 deletions(-) create mode 100644 vim/after/ftplugin/mail/flowed.vim delete mode 100644 vim/after/ftplugin/mail/format_flowed.vim delete mode 100644 vim/after/ftplugin/sh/bash_han.vim create mode 100644 vim/after/ftplugin/sh/han.vim delete mode 100644 vim/after/ftplugin/sh/posix.vim create mode 100644 vim/compiler/bash.vim create mode 100644 vim/compiler/ksh.vim create mode 100644 vim/compiler/sh.vim create mode 100644 vim/compiler/shellcheck.vim diff --git a/vim/after/ftplugin/html/lint.vim b/vim/after/ftplugin/html/lint.vim index 64df3447..a3776d60 100644 --- a/vim/after/ftplugin/html/lint.vim +++ b/vim/after/ftplugin/html/lint.vim @@ -1,30 +1,36 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled, or if the current filetype is -" actually markdown -if exists('b:did_ftplugin_html_lint') || &compatible +" html/lint.vim: Use tidy(1) to lint HTML documents for errors + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -if &filetype ==# 'markdown' + +" Don't load if already loaded +if exists('b:did_ftplugin_html_lint') finish endif -let b:did_ftplugin_html_lint = 1 -" Initialise undo variable if not already done -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_html_lint' +" Don't load if the primary filetype isn't HTML +if &filetype !=# 'html' + finish endif +" Flag as loaded +let b:did_ftplugin_html_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_html_lint' + " Build function for linter function! s:HtmlLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif compiler tidy - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow + lmake! + lwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif endfunction " Stop here if the user doesn't want ftplugin mappings @@ -36,18 +42,14 @@ endif nnoremap \ HtmlLint \ :call HtmlLint() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap HtmlLint' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap HtmlLint' " If there isn't a key mapping already, use a default one if !hasmapto('HtmlLint') nmap \ l \ HtmlLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap l' endif diff --git a/vim/after/ftplugin/html/tidy.vim b/vim/after/ftplugin/html/tidy.vim index 3d14e79e..e0c43f01 100644 --- a/vim/after/ftplugin/html/tidy.vim +++ b/vim/after/ftplugin/html/tidy.vim @@ -1,18 +1,25 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled, or if the current filetype is -" actually markdown -if exists('b:did_ftplugin_html_tidy') || &compatible +" html/tidy.vim: Use tidy(1) to filter HTML documents + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -if &filetype ==# 'markdown' + +" Don't load if already loaded +if exists('b:did_ftplugin_html_tidy') finish endif -let b:did_ftplugin_html_tidy = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_html_tidy' + +" Don't load if the primary filetype isn't HTML +if &filetype !=# 'html' + finish endif +" Flag as loaded +let b:did_ftplugin_html_tidy = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_html_tidy' + " Stop here if the user doesn't want ftplugin mappings if exists('g:no_plugin_maps') || exists('g:no_html_maps') finish @@ -22,18 +29,14 @@ endif nnoremap \ HtmlTidy \ :%!tidy -quiet -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap HtmlTidy' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap HtmlTidy' " If there isn't a key mapping already, use a default one if !hasmapto('HtmlTidy') nmap \ t \ HtmlTidy - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap t' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap t' endif diff --git a/vim/after/ftplugin/html/url_link.vim b/vim/after/ftplugin/html/url_link.vim index c256b3b9..1cf57a7b 100644 --- a/vim/after/ftplugin/html/url_link.vim +++ b/vim/after/ftplugin/html/url_link.vim @@ -1,18 +1,25 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled, or if the current filetype is -" actually markdown -if exists('b:did_ftplugin_html_url_link') || &compatible +" html/url_link.vim: Make a URL into a link + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -if &filetype ==# 'markdown' + +" Don't load if already loaded +if exists('b:did_ftplugin_html_url_link') finish endif -let b:did_ftplugin_html_url_link = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_html_url_link' + +" Don't load if the primary filetype isn't HTML +if &filetype !=# 'html' + finish endif +" Flag as loaded +let b:did_ftplugin_html_url_link = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_html_url_link' + " Make a bare URL into a link to itself function! s:HtmlUrlLink() @@ -38,18 +45,14 @@ endif nnoremap \ HtmlUrlLink \ :call HtmlUrlLink() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap HtmlUrlLink' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap HtmlUrlLink' " If there isn't a key mapping already, use a default one if !hasmapto('HtmlUrlLink') nmap \ r \ HtmlUrlLink - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap r' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap r' endif diff --git a/vim/after/ftplugin/mail/flowed.vim b/vim/after/ftplugin/mail/flowed.vim new file mode 100644 index 00000000..78353360 --- /dev/null +++ b/vim/after/ftplugin/mail/flowed.vim @@ -0,0 +1,21 @@ +" mail/flowed.vim: Add 'w' flag to 'formatoptions' for mail + +" Don't load if running compatible or too old +if &compatible || v:version < 700 + finish +endif + +" Don't load if already loaded +if exists('b:did_ftplugin_mail_flowed') + finish +endif + +" Flag as loaded +let b:did_ftplugin_mail_flowed = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_mail_flowed' + +" Use trailing whitespace to denote continued paragraph +setlocal formatoptions+=w +let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal formatoptions<' diff --git a/vim/after/ftplugin/mail/format_flowed.vim b/vim/after/ftplugin/mail/format_flowed.vim deleted file mode 100644 index 040a1a51..00000000 --- a/vim/after/ftplugin/mail/format_flowed.vim +++ /dev/null @@ -1,17 +0,0 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_mail_format_flowed') || &compatible - finish -endif -let b:did_ftplugin_mail_format_flowed = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_mail_format_flowed' -endif - -" Use trailing whitespace to denote continued paragraph -setlocal formatoptions+=w -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal formatoptions<' -endif diff --git a/vim/after/ftplugin/markdown/spell.vim b/vim/after/ftplugin/markdown/spell.vim index 05fc7c00..873f9f93 100644 --- a/vim/after/ftplugin/markdown/spell.vim +++ b/vim/after/ftplugin/markdown/spell.vim @@ -1,21 +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 +" markdown/spell.vim: Turn on spell checking for Markdown files + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -if !has('spell') + +" Don't load if already loaded +if exists('b:did_ftplugin_markdown_spell') finish endif + +" Flag as loaded 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 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_markdown_spell' " Spellcheck documents by default setlocal spell -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal spell<' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal spell<' diff --git a/vim/after/ftplugin/perl/check.vim b/vim/after/ftplugin/perl/check.vim index e5eaf44a..e115b37f 100644 --- a/vim/after/ftplugin/perl/check.vim +++ b/vim/after/ftplugin/perl/check.vim @@ -1,24 +1,31 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_perl_check') || &compatible +" perl/check.vim: Use Perl binary to check for errors + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -let b:did_ftplugin_perl_check = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_perl_check' + +" Don't load if already loaded +if exists('b:did_ftplugin_perl_check') + finish endif +" Flag as loaded +let b:did_ftplugin_perl_check = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_perl_check' + " Build function for checker function! s:PerlCheck() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif compiler perl - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow + lmake! + lwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif endfunction " Stop here if the user doesn't want ftplugin mappings @@ -30,18 +37,14 @@ endif nnoremap \ PerlCheck \ :call PerlCheck() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PerlCheck' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PerlCheck' " If there isn't a key mapping already, use a default one if !hasmapto('PerlCheck') nmap \ c \ PerlCheck - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap c' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap c' endif diff --git a/vim/after/ftplugin/perl/lint.vim b/vim/after/ftplugin/perl/lint.vim index 50770a13..3e73ac9a 100644 --- a/vim/after/ftplugin/perl/lint.vim +++ b/vim/after/ftplugin/perl/lint.vim @@ -1,24 +1,31 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_perl_lint') || &compatible +" perl/lint.vim: Use Perl::Critic to lint scripts + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -let b:did_ftplugin_perl_lint = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_perl_lint' + +" Don't load if already loaded +if exists('b:did_ftplugin_perl_lint') + finish endif +" Flag as loaded +let b:did_ftplugin_perl_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_perl_lint' + " Build function for linter function! s:PerlLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif compiler perlcritic - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow + lmake! + lwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif endfunction " Stop here if the user doesn't want ftplugin mappings @@ -30,18 +37,14 @@ endif nnoremap \ PerlLint \ :call PerlLint() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PerlLint' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PerlLint' " If there isn't a key mapping already, use a default one if !hasmapto('PerlLint') nmap \ l \ PerlLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap l' endif diff --git a/vim/after/ftplugin/perl/tidy.vim b/vim/after/ftplugin/perl/tidy.vim index bd3e73a1..01ca0210 100644 --- a/vim/after/ftplugin/perl/tidy.vim +++ b/vim/after/ftplugin/perl/tidy.vim @@ -1,14 +1,20 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_perl_tidy') || &compatible +" perl/tidy.vim: Use Perl::Tidy to format and filter scripts + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -let b:did_ftplugin_perl_tidy = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_perl_tidy' + +" Don't load if already loaded +if exists('b:did_ftplugin_perl_tidy') + finish endif +" Flag as loaded +let b:did_ftplugin_perl_tidy = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_perl_tidy' + " Stop here if the user doesn't want ftplugin mappings if exists('g:no_plugin_maps') || exists('g:no_perl_maps') finish @@ -18,18 +24,14 @@ endif nnoremap \ PerlTidy \ :%!perltidy -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PerlTidy' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PerlTidy' " If there isn't a key mapping already, use a default one if !hasmapto('PerlTidy') nmap \ t \ PerlTidy - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap t' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap t' endif diff --git a/vim/after/ftplugin/php/check.vim b/vim/after/ftplugin/php/check.vim index 5f131d94..f211a642 100644 --- a/vim/after/ftplugin/php/check.vim +++ b/vim/after/ftplugin/php/check.vim @@ -1,32 +1,40 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_php_check') || &compatible +" php/check.vim: Use PHP binary to check scripts for errors + +" Don't load if running compatible or too old +if &compatible || v:version < 700 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' + +" Don't load if already loaded +if exists('b:did_ftplugin_php_check') + finish endif +" Flag as loaded +let b:did_ftplugin_php_check = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_php_check' + " Build function for checker function! s:PhpCheck() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif compiler php - " 7.4.191 is the earliest version with the :S file name modifier, which we - " really should use if we can + " The PHP compiler is unusual: it gets us to provide the filename argument + " ourselves. 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 + lmake! %:S else - make! % + lmake! % endif + lwindow - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif endfunction " Stop here if the user doesn't want ftplugin mappings @@ -38,18 +46,14 @@ endif nnoremap \ PhpCheck \ :call PhpCheck() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap PhpCheck' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap PhpCheck' " 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 + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap c' endif diff --git a/vim/after/ftplugin/sh/bash_han.vim b/vim/after/ftplugin/sh/bash_han.vim deleted file mode 100644 index a160165c..00000000 --- a/vim/after/ftplugin/sh/bash_han.vim +++ /dev/null @@ -1,19 +0,0 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_sh_bash_han') || &compatible - finish -endif -let b:did_ftplugin_sh_bash_han = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_sh_bash_han' -endif - -" Use han(1df) as a man(1) wrapper for Bash files if available -if exists('b:is_bash') && executable('han') - setlocal keywordprg=han - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal keywordprg<' - endif -endif diff --git a/vim/after/ftplugin/sh/check.vim b/vim/after/ftplugin/sh/check.vim index dce6552c..e92409cf 100644 --- a/vim/after/ftplugin/sh/check.vim +++ b/vim/after/ftplugin/sh/check.vim @@ -1,42 +1,38 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_sh_check') || &compatible +" sh/check.vim: Use appropriate shell binary to check scripts for errors + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -let b:did_ftplugin_sh_check = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_sh_check' -endif -" Choose checker based on shell family -if exists('b:is_bash') - let b:sh_check_makeprg = 'bash -n %:S' -elseif exists('b:is_kornshell') - let b:sh_check_makeprg = 'ksh -n %:S' -else - let b:sh_check_makeprg = 'sh -n %:S' -endif -let b:sh_check_errorformat = '%f: %l: %m' -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:sh_check_makeprg' - \ . '|unlet b:sh_check_errorformat' +" Don't load if already loaded +if exists('b:did_ftplugin_sh_check') + finish endif +" Flag as loaded +let b:did_ftplugin_sh_check = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_sh_check' + " Build function for checker -if !exists('*s:ShCheck') - function s:ShCheck() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - let &l:makeprg = b:sh_check_makeprg - let &l:errorformat = b:sh_check_errorformat - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow - endfunction -endif +function! s:ShCheck() + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif + if exists('b:is_bash') + compiler bash + elseif exists('b:is_kornshell') + compiler ksh + else + compiler sh + endif + lmake! + lwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif +endfunction " Stop here if the user doesn't want ftplugin mappings if exists('g:no_plugin_maps') || exists('g:no_sh_maps') @@ -47,18 +43,14 @@ endif nnoremap \ ShCheck \ :call ShCheck() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap ShCheck' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap ShCheck' " If there isn't a key mapping already, use a default one if !hasmapto('ShCheck') nmap \ c \ ShCheck - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap c' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap c' endif diff --git a/vim/after/ftplugin/sh/han.vim b/vim/after/ftplugin/sh/han.vim new file mode 100644 index 00000000..3aacdb7e --- /dev/null +++ b/vim/after/ftplugin/sh/han.vim @@ -0,0 +1,26 @@ +" sh/han.vim: Use han(1df) as 'keywordprg' for Bash scripts + +" Don't load if running compatible or too old +if &compatible || v:version < 700 + finish +endif + +" Don't load if already loaded +if exists('b:did_ftplugin_sh_han') + finish +endif + +" Don't load if this isn't Bash or if han(1df) isn't available +if !exists('b:is_bash') || !executable('han') + finish +endif + +" Flag as loaded +let b:did_ftplugin_sh_han = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_sh_han' + +" Set 'keywordprg' to han(1df) +setlocal keywordprg=han +let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal keywordprg<' diff --git a/vim/after/ftplugin/sh/lint.vim b/vim/after/ftplugin/sh/lint.vim index b89645f7..87f1c07e 100644 --- a/vim/after/ftplugin/sh/lint.vim +++ b/vim/after/ftplugin/sh/lint.vim @@ -1,39 +1,31 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_sh_lint') || &compatible +" sh/lint.vim: Use appropriate shell binary to lint scripts for errors + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -let b:did_ftplugin_sh_lint = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_sh_lint' -endif -" Choose linter based on shell family -if exists('b:is_bash') - let b:sh_lint_makeprg = 'shellcheck -e SC1090 -f gcc -s bash %:S' -elseif exists('b:is_kornshell') - let b:sh_lint_makeprg = 'shellcheck -e SC1090 -f gcc -s ksh %:S' -else - let b:sh_lint_makeprg = 'shellcheck -e SC1090 -f gcc -s sh %:S' -endif -let b:sh_lint_errorformat = '%f:%l:%c: %m [SC%n]' -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:sh_lint_makeprg' - \ . '|unlet b:sh_lint_errorformat' +" Don't load if already loaded +if exists('b:did_ftplugin_sh_lint') + finish endif -" Build function for checker +" Flag as loaded +let b:did_ftplugin_sh_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_sh_lint' + +" Build function for linter function! s:ShLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - let &l:makeprg = b:sh_lint_makeprg - let &l:errorformat = b:sh_lint_errorformat - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif + compiler shellcheck + lmake! + lwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif endfunction " Stop here if the user doesn't want ftplugin mappings @@ -45,18 +37,14 @@ endif nnoremap \ ShLint \ :call ShLint() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap ShLint' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap ShLint' " If there isn't a key mapping already, use a default one if !hasmapto('ShLint') nmap \ l \ ShLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap l' endif diff --git a/vim/after/ftplugin/sh/posix.vim b/vim/after/ftplugin/sh/posix.vim deleted file mode 100644 index a1b2c7ff..00000000 --- a/vim/after/ftplugin/sh/posix.vim +++ /dev/null @@ -1,27 +0,0 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_sh_posix') || &compatible - finish -endif -let b:did_ftplugin_sh_posix = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_sh_posix' -endif - -" -" If we have a #!/bin/sh shebang and filetype.vim determined we were neither -" POSIX nor Bash nor Korn shell, we'll guess POSIX, just because it's far more -" likely that's what I want to write than plain Bourne shell. -" -" You're supposed to be able to do this by setting g:is_posix, but if that's -" set, the syntax file ends up setting g:is_kornshell for you too, for reasons -" I don't really understand. This method works though, and is cleaner than -" the other workaround I had been trying. -" -if exists('b:is_sh') - unlet b:is_sh - if !exists('b:is_bash') && !exists('b:is_kornshell') - let b:is_posix = 1 - endif -endif diff --git a/vim/after/ftplugin/text/spell.vim b/vim/after/ftplugin/text/spell.vim index 73ca5486..a9f5422b 100644 --- a/vim/after/ftplugin/text/spell.vim +++ b/vim/after/ftplugin/text/spell.vim @@ -1,21 +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_text_spell') || &compatible +" text/spell.vim: Turn on spell checking for text files + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -if !has('spell') + +" Don't load if already loaded +if exists('b:did_ftplugin_text_spell') finish endif + +" Flag as loaded let b:did_ftplugin_text_spell = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_text_spell' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_text_spell' " Spellcheck documents by default setlocal spell -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|setlocal spell<' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|setlocal spell<' diff --git a/vim/after/ftplugin/vim/lint.vim b/vim/after/ftplugin/vim/lint.vim index ef04d852..1e4f7d39 100644 --- a/vim/after/ftplugin/vim/lint.vim +++ b/vim/after/ftplugin/vim/lint.vim @@ -1,24 +1,31 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_vim_lint') || &compatible +" vim/lint.vim: Use Vint to lint VimL scripts + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -let b:did_ftplugin_vim_lint = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_vim_lint' + +" Don't load if already loaded +if exists('b:did_ftplugin_vim_lint') + finish endif -" Build function for checker +" Flag as loaded +let b:did_ftplugin_vim_lint = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_vim_lint' + +" Build function for linter function! s:VimLint() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif compiler vint - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow + lmake! + lwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif endfunction " Stop here if the user doesn't want ftplugin mappings @@ -30,18 +37,14 @@ endif nnoremap \ VimLint \ :call VimLint() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap VimLint' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap VimLint' " If there isn't a key mapping already, use a default one if !hasmapto('VimLint') nmap \ l \ VimLint - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap l' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap l' endif diff --git a/vim/after/ftplugin/zsh/check.vim b/vim/after/ftplugin/zsh/check.vim index c0c8a342..1d327a62 100644 --- a/vim/after/ftplugin/zsh/check.vim +++ b/vim/after/ftplugin/zsh/check.vim @@ -1,24 +1,31 @@ -" Only do this when not done yet for this buffer -" Also do nothing if 'compatible' enabled -if exists('b:did_ftplugin_zsh_check') || &compatible +" zsh/check.vim: Use Z shell binary to check for errors + +" Don't load if running compatible or too old +if &compatible || v:version < 700 finish endif -let b:did_ftplugin_zsh_check = 1 -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|unlet b:did_ftplugin_zsh_check' + +" Don't load if already loaded +if exists('b:did_ftplugin_zsh_check') + finish endif +" Flag as loaded +let b:did_ftplugin_zsh_check = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_zsh_check' + " Build function for checker function! s:ZshCheck() - let l:save_makeprg = &l:makeprg - let l:save_errorformat = &l:errorformat - unlet! g:current_compiler + if exists('b:current_compiler') + let l:save_compiler = b:current_compiler + endif compiler zsh - make! - let &l:makeprg = l:save_makeprg - let &l:errorformat = l:save_errorformat - cwindow + lmake! + lwindow + if exists('l:save_compiler') + execute 'compiler ' . l:save_compiler + endif endfunction " Set up a mapping for the checker, if we're allowed @@ -30,18 +37,14 @@ endif nnoremap \ ZshCheck \ :call ZshCheck() -if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap ZshCheck' -endif +let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap ZshCheck' " If there isn't a key mapping already, use a default one if !hasmapto('ZshCheck') nmap \ c \ ZshCheck - if exists('b:undo_ftplugin') - let b:undo_ftplugin = b:undo_ftplugin - \ . '|nunmap c' - endif + let b:undo_ftplugin = b:undo_ftplugin + \ . '|nunmap c' endif diff --git a/vim/compiler/bash.vim b/vim/compiler/bash.vim new file mode 100644 index 00000000..70997f92 --- /dev/null +++ b/vim/compiler/bash.vim @@ -0,0 +1,17 @@ +if exists('g:current_compiler') + finish +endif +let g:current_compiler = 'bash' + +if exists(':CompilerSet') != 2 + command -nargs=* CompilerSet setlocal +endif + +" 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') + CompilerSet makeprg=bash\ -n\ %:S +else + CompilerSet makeprg=bash\ -n\ % +endif +CompilerSet errorformat=%f:\ line\ %l:\ %m diff --git a/vim/compiler/ksh.vim b/vim/compiler/ksh.vim new file mode 100644 index 00000000..1b31ffa7 --- /dev/null +++ b/vim/compiler/ksh.vim @@ -0,0 +1,17 @@ +if exists('g:current_compiler') + finish +endif +let g:current_compiler = 'ksh' + +if exists(':CompilerSet') != 2 + command -nargs=* CompilerSet setlocal +endif + +" 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') + CompilerSet makeprg=ksh\ -n\ %:S +else + CompilerSet makeprg=ksh\ -n\ % +endif +CompilerSet errorformat=%f:\ %l:\ %m diff --git a/vim/compiler/sh.vim b/vim/compiler/sh.vim new file mode 100644 index 00000000..ff5ed314 --- /dev/null +++ b/vim/compiler/sh.vim @@ -0,0 +1,17 @@ +if exists('g:current_compiler') + finish +endif +let g:current_compiler = 'sh' + +if exists(':CompilerSet') != 2 + command -nargs=* CompilerSet setlocal +endif + +" 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') + CompilerSet makeprg=sh\ -n\ %:S +else + CompilerSet makeprg=sh\ -n\ % +endif +CompilerSet errorformat=%f:\ %l:\ %m diff --git a/vim/compiler/shellcheck.vim b/vim/compiler/shellcheck.vim new file mode 100644 index 00000000..6d6498da --- /dev/null +++ b/vim/compiler/shellcheck.vim @@ -0,0 +1,27 @@ +if exists('g:current_compiler') + finish +endif +let g:current_compiler = 'shellcheck' + +if exists(':CompilerSet') != 2 + command -nargs=* CompilerSet setlocal +endif + +" Build :CompilerSet command based on buffer shell type +let s:set = 'CompilerSet makeprg=shellcheck\ -e\ SC1090\ -f\ gcc' +if exists('b:is_bash') + let s:set = s:set . '\ -s\ bash' +elseif exists('b:is_kornshell') + let s:set = s:set . '\ -s\ ksh' +else + let s:set = s:set . '\ -s\ sh' +endif + +" 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') + execute s:set . '\ %:S' +else + execute s:set . '\ %' +endif +CompilerSet errorformat=%f:%l:%c:\ %m\ [SC%n] -- cgit v1.2.3 From 9e41bb048b9f430a17462a307c4c7492b1618043 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 00:24:09 +1200 Subject: Update surround.vim --- vim/bundle/surround | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/bundle/surround b/vim/bundle/surround index 643a4245..aa1f120a 160000 --- a/vim/bundle/surround +++ b/vim/bundle/surround @@ -1 +1 @@ -Subproject commit 643a42454bc8c2b2735de14f309523ce733a5358 +Subproject commit aa1f120ad3a29c27cc41d581cda3751c59343cce -- cgit v1.2.3 From 0086f00732b424650f9867ceac4db81112b5376c Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 00:24:16 +1200 Subject: Update markdown_autoformat.vim --- vim/bundle/markdown_autoformat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/bundle/markdown_autoformat b/vim/bundle/markdown_autoformat index 8d152a1b..aedaec55 160000 --- a/vim/bundle/markdown_autoformat +++ b/vim/bundle/markdown_autoformat @@ -1 +1 @@ -Subproject commit 8d152a1be09a229cf3adcd158cb023a04f89cc9b +Subproject commit aedaec551e8f172a3a30cd893c8374d3e7e27008 -- cgit v1.2.3 From 054fd12294d979b66ca757bd2e6a80138ce45ef1 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 00:38:10 +1200 Subject: Arrange for tidiers to hold window position --- vim/after/ftplugin/html/tidy.vim | 9 ++++++++- vim/after/ftplugin/perl/tidy.vim | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/vim/after/ftplugin/html/tidy.vim b/vim/after/ftplugin/html/tidy.vim index e0c43f01..5a8ded7e 100644 --- a/vim/after/ftplugin/html/tidy.vim +++ b/vim/after/ftplugin/html/tidy.vim @@ -20,6 +20,13 @@ let b:did_ftplugin_html_tidy = 1 let b:undo_ftplugin = b:undo_ftplugin \ . '|unlet b:did_ftplugin_html_tidy' +" Plugin function +function s:HtmlTidy() + let l:view = winsaveview() + %!tidy -quiet + call winrestview(l:view) +endfunction + " Stop here if the user doesn't want ftplugin mappings if exists('g:no_plugin_maps') || exists('g:no_html_maps') finish @@ -28,7 +35,7 @@ endif " Define a mapping target nnoremap \ HtmlTidy - \ :%!tidy -quiet + \ :call HtmlTidy() let b:undo_ftplugin = b:undo_ftplugin \ . '|nunmap HtmlTidy' diff --git a/vim/after/ftplugin/perl/tidy.vim b/vim/after/ftplugin/perl/tidy.vim index 01ca0210..f6744f3a 100644 --- a/vim/after/ftplugin/perl/tidy.vim +++ b/vim/after/ftplugin/perl/tidy.vim @@ -15,6 +15,13 @@ let b:did_ftplugin_perl_tidy = 1 let b:undo_ftplugin = b:undo_ftplugin \ . '|unlet b:did_ftplugin_perl_tidy' +" Plugin function +function s:PerlTidy() + let l:view = winsaveview() + %!perltidy + call winrestview(l:view) +endfunction + " Stop here if the user doesn't want ftplugin mappings if exists('g:no_plugin_maps') || exists('g:no_perl_maps') finish @@ -23,7 +30,7 @@ endif " Define a mapping target nnoremap \ PerlTidy - \ :%!perltidy + \ :call PerlTidy() let b:undo_ftplugin = b:undo_ftplugin \ . '|nunmap PerlTidy' -- cgit v1.2.3 From 6ddd1d068871ee0f5c45ae888fefbdb1ac5491de Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 00:58:32 +1200 Subject: Add note about compiler scripts --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 447e7db2..b8f2f801 100644 --- a/README.md +++ b/README.md @@ -378,6 +378,14 @@ tweaks to core syntax files in `~/.vim/after/syntax`, especially for shell script (`sh.vim`). Some of these filetype plugins are also due to be separately distributed and installed via submodules instead. +#### Compilers + +I define a few of my own `:compiler` scripts for `~/.vim/compiler`, for use for +checking and linting of appropriate filetypes. Because checking (does it work?) +and linting (is it well-written?) are separate processes for me, I bind them +separately with local leader maps; for example, `_c` runs a `perl -c` syntax +check of Perl scripts, and `_l` runs a Perl::Critic check. + #### Neovim I test my configuration every now and then with the [Neovim -- cgit v1.2.3 From 4757d2912f5fe1812db1efb19cc84f716838eea7 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 01:00:32 +1200 Subject: Bump VERSION --- VERSION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 849846ff..92021c1b 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -tejr dotfiles v0.53.0 -Thu Jun 14 00:39:32 UTC 2018 +tejr dotfiles v0.54.0 +Sat Jun 16 12:59:27 UTC 2018 -- cgit v1.2.3 From 7271ce11df45a507967c73df23866630a5345cc1 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 17 Jun 2018 01:00:47 +1200 Subject: Regenerate dotfiles(7) manual --- man/man7/dotfiles.7df | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/man/man7/dotfiles.7df b/man/man7/dotfiles.7df index 6960e3c5..4daf288d 100644 --- a/man/man7/dotfiles.7df +++ b/man/man7/dotfiles.7df @@ -523,6 +523,15 @@ There are also a few tweaks to core syntax files in (\f[C]sh.vim\f[]). Some of these filetype plugins are also due to be separately distributed and installed via submodules instead. +.SS Compilers +.PP +I define a few of my own \f[C]:compiler\f[] scripts for +\f[C]~/.vim/compiler\f[], for use for checking and linting of +appropriate filetypes. +Because checking (does it work?) and linting (is it well\-written?) are +separate processes for me, I bind them separately with local leader +maps; for example, \f[C]_c\f[] runs a \f[C]perl\ \-c\f[] syntax check of +Perl scripts, and \f[C]_l\f[] runs a Perl::Critic check. .SS Neovim .PP I test my configuration every now and then with the Neovim @@ -832,6 +841,8 @@ Good for quick tests. .IP \[bu] 2 \f[C]mi5(1df)\f[] is a crude preprocessor for \f[C]m4\f[]. .IP \[bu] 2 +\f[C]mim(1df)\f[] starts an interactive Mutt message with its input. +.IP \[bu] 2 \f[C]mftl(1df)\f[] finds usable\-looking targets in makefiles. .IP \[bu] 2 \f[C]mkcp(1df)\f[] creates a directory and copies preceding arguments -- cgit v1.2.3