From a01332f54e14e6411ad597e2cf1a88f6daf087f0 Mon Sep 17 00:00:00 2001 From: Parantapa Bhattacharya Date: Sun, 15 Jan 2012 22:46:47 +0530 Subject: [PATCH] Add support for pylint Make pylint one of the available syntax checkers for python in addition to flakes8 and pyflakes. --- syntax_checkers/python.vim | 53 +++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/syntax_checkers/python.vim b/syntax_checkers/python.vim index 894e11d6..ed9a682f 100644 --- a/syntax_checkers/python.vim +++ b/syntax_checkers/python.vim @@ -4,13 +4,15 @@ " "Authors: Martin Grenfell " kstep +" Parantapa Bhattacharya " "============================================================================ - -" in order to force the use of pyflakes if both flake8 and pyflakes are -" available, add this to your .vimrc: +" +" For forcing the use of flake8, pyflakes, or pylint set " " let g:syntastic_python_checker = 'pyflakes' +" +" in your .vimrc. Default is flake8. if exists("loaded_python_syntax_checker") finish @@ -19,13 +21,15 @@ let loaded_python_syntax_checker = 1 "bail if the user doesnt have his favorite checker or flake8 or pyflakes installed if !exists('g:syntastic_python_checker') || !executable('g:syntastic_python_checker') - if executable("flake8") - let g:syntastic_python_checker = 'flake8' - elseif executable("pyflakes") - let g:syntastic_python_checker = 'pyflakes' - else - finish - endif + if executable("flake8") + let g:syntastic_python_checker = 'flake8' + elseif executable("pyflakes") + let g:syntastic_python_checker = 'pyflakes' + elseif executable("pylint") + let g:syntastic_python_checker = 'pylint' + else + finish + endif endif function! SyntaxCheckers_python_Term(i) @@ -47,14 +51,27 @@ function! SyntaxCheckers_python_Term(i) return '' endfunction -function! SyntaxCheckers_python_GetLocList() - let makeprg = g:syntastic_python_checker.' '.shellescape(expand('%')) - let errorformat = - \ '%E%f:%l: could not compile,%-Z%p^,%W%f:%l:%c: %m,%W%f:%l: %m,%-G%.%#' +if g:syntastic_python_checker == 'pylint' + function! SyntaxCheckers_python_GetLocList() + let makeprg = 'pylint -f parseable -r n -i y ' . + \ shellescape(expand('%')) . + \ ' \| sed ''s_: \[[RC]_: \[W_''' . + \ ' \| sed ''s_: \[[F]_:\ \[E_''' + let errorformat = '%f:%l: [%t%n] %m,%-GNo config%m' + let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) - let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + return errors + endfunction +else + function! SyntaxCheckers_python_GetLocList() + let makeprg = g:syntastic_python_checker.' '.shellescape(expand('%')) + let errorformat = + \ '%E%f:%l: could not compile,%-Z%p^,%W%f:%l:%c: %m,%W%f:%l: %m,%-G%.%#' - call SyntasticHighlightErrors(errors, function('SyntaxCheckers_python_Term')) + let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) - return errors -endfunction + call SyntasticHighlightErrors(errors, function('SyntaxCheckers_python_Term')) + + return errors + endfunction +endif