From 259f7717fb22a34503efef7ab3300005f5e0262e Mon Sep 17 00:00:00 2001 From: aswna Date: Tue, 26 Mar 2013 00:40:50 +0100 Subject: [PATCH] Use and adapt to more recent checkbashisms.pl. Some refactoring. --- syntax_checkers/sh/checkbashisms.vim | 44 ++++++++-------------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/syntax_checkers/sh/checkbashisms.vim b/syntax_checkers/sh/checkbashisms.vim index 0ef461d9..3f79130d 100644 --- a/syntax_checkers/sh/checkbashisms.vim +++ b/syntax_checkers/sh/checkbashisms.vim @@ -1,13 +1,9 @@ "============================================================================ -"File: checkbashisms.vim -"Description: Syntax/style checking plugin for syntastic.vim -"Maintainer: András Szilárd -"License: This program is free software. It comes without any warranty, -" to the extent permitted by applicable law. You can redistribute -" it and/or modify it under the terms of the Do What The Fuck You -" Want To Public License, Version 2, as published by Sam Hocevar. -" See http://sam.zoy.org/wtfpl/COPYING for more details. -" +"File: checkbashisms.vim +"Description: Shell script syntax/style checking plugin for syntastic.vim +"Notes: checkbashisms.pl can be downloaded from +" http://debian.inode.at/debian/pool/main/d/devscripts/ +" as part of the devscripts package. "============================================================================ if exists("g:loaded_syntastic_sh_checkbashisms_checker") @@ -16,35 +12,21 @@ endif let g:loaded_syntastic_sh_checkbashisms_checker=1 -function! s:IsShShell() - let shebang = getbufline(bufnr('%'), 1)[0] - if len(shebang) > 0 - if match(shebang, '\') > 0 - return 1 - endif - endif - return 0 -endfunction - - function! SyntaxCheckers_sh_checkbashisms_IsAvailable() - return executable('checkbashisms') + return executable('checkbashisms.pl') endfunction function! SyntaxCheckers_sh_checkbashisms_GetLocList() - if !s:IsShShell() - return [] - endif + let l:makeprg = syntastic#makeprg#build({'exe': 'checkbashisms.pl', 'args': '-fpx'}) - let makeprg = syntastic#makeprg#build({'exe': 'checkbashisms'}) + let l:errorformat = + \ '%Eerror: %f: %m,' . + \ '%Ecannot open script %f for reading: %m,' . + \ '%Wscript %f %m,%C%.# lines,' . + \ '%Wpossible bashism in %f line %l (%m):,%C%.%#,%Z.%#' - let errorformat = '%Eerror: %f: %m,' - let errorformat = errorformat . '%Ecannot open script %f for reading: %m,' - let errorformat = errorformat . '%Wscript %f %m,%C%.# lines,' - let errorformat = errorformat . '%Wpossible bashism in %f line %l (%m):,%C%.%#,%Z.%#' - - return SyntasticMake({'makeprg': makeprg, 'errorformat': errorformat}) + return SyntasticMake({'makeprg': l:makeprg, 'errorformat': l:errorformat}) endfunction