diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-19 23:43:53 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-19 23:43:53 +1300 |
commit | 062274de75e25ad96f52d39e17844048003b90dc (patch) | |
tree | 093c2479feb70548882938177d0edb95d47056e9 /vim/after/ftplugin/sh/check.vim | |
parent | Merge branch 'hotfix/v0.17.2' (diff) | |
parent | Rebuild dotfiles(7) manual from README.md (diff) | |
download | dotfiles-0.18.0.tar.gz (sig) dotfiles-0.18.0.zip |
Merge branch 'release/v0.18.0'v0.18.0
* release/v0.18.0:
Rebuild dotfiles(7) manual from README.md
Bump version number to 0.18.0
Use %:S expansion only when available
Force g:current_compiler removal before check/lint
Use quickfix window for check/lint
Add vim/compiler scripts to vint targets
Use :compiler quickfix systems for Vim/HTML lint
Use :compiler scripts for makeprg setup
Add :lwindow support to Perl check/lint
Adapt sh check/lint to use :lmake
Remove 'shellpipe' setting
Use single-quotes for strings in sh.vim
Use full word "syntax" in sh.vim
Coax sh.vim into accepting #/% param expansion
Mention the Vim plugin dist target in README.md
Add Makefile targets for Vim plugin dists
Diffstat (limited to 'vim/after/ftplugin/sh/check.vim')
-rw-r--r-- | vim/after/ftplugin/sh/check.vim | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/vim/after/ftplugin/sh/check.vim b/vim/after/ftplugin/sh/check.vim index 334ec1db..3eaf3f57 100644 --- a/vim/after/ftplugin/sh/check.vim +++ b/vim/after/ftplugin/sh/check.vim @@ -11,15 +11,31 @@ endif " Choose checker based on shell family if exists('b:is_bash') - let b:sh_check = 'write !bash -n' + let b:sh_check_makeprg = 'bash -n %:S' elseif exists('b:is_kornshell') - let b:sh_check = 'write !ksh -n' + let b:sh_check_makeprg = 'ksh -n %:S' else - let b:sh_check = 'write !sh -n' + 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' + \ . '|unlet b:sh_check_makeprg' + \ . '|unlet b:sh_check_errorformat' +endif + +" 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 " Set up a mapping for the checker, if we're allowed @@ -28,7 +44,7 @@ if !exists('g:no_plugin_maps') && !exists('g:no_sh_maps') " Define a mapping target nnoremap <buffer> <silent> <unique> \ <Plug>ShCheck - \ :<C-U>execute b:sh_check<CR> + \ :<C-U>call <SID>ShCheck()<CR> if exists('b:undo_ftplugin') let b:undo_ftplugin = b:undo_ftplugin \ . '|nunmap <buffer> <Plug>ShCheck' |