Merge pull request #148 from parantapa/master

Make pylint available as a python syntax checker
This commit is contained in:
Martin Grenfell 2012-01-18 04:49:52 -08:00
commit 1ef8a5b374

View File

@ -4,13 +4,15 @@
" "
"Authors: Martin Grenfell <martin.grenfell@gmail.com> "Authors: Martin Grenfell <martin.grenfell@gmail.com>
" kstep <me@kstep.me> " kstep <me@kstep.me>
" Parantapa Bhattacharya <parantapa@gmail.com>
" "
"============================================================================ "============================================================================
"
" in order to force the use of pyflakes if both flake8 and pyflakes are " For forcing the use of flake8, pyflakes, or pylint set
" available, add this to your .vimrc:
" "
" let g:syntastic_python_checker = 'pyflakes' " let g:syntastic_python_checker = 'pyflakes'
"
" in your .vimrc. Default is flake8.
if exists("loaded_python_syntax_checker") if exists("loaded_python_syntax_checker")
finish 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 "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 !exists('g:syntastic_python_checker') || !executable('g:syntastic_python_checker')
if executable("flake8") if executable("flake8")
let g:syntastic_python_checker = 'flake8' let g:syntastic_python_checker = 'flake8'
elseif executable("pyflakes") elseif executable("pyflakes")
let g:syntastic_python_checker = 'pyflakes' let g:syntastic_python_checker = 'pyflakes'
else elseif executable("pylint")
finish let g:syntastic_python_checker = 'pylint'
endif else
finish
endif
endif endif
function! SyntaxCheckers_python_Term(i) function! SyntaxCheckers_python_Term(i)
@ -47,14 +51,27 @@ function! SyntaxCheckers_python_Term(i)
return '' return ''
endfunction endfunction
function! SyntaxCheckers_python_GetLocList() if g:syntastic_python_checker == 'pylint'
let makeprg = g:syntastic_python_checker.' '.shellescape(expand('%')) function! SyntaxCheckers_python_GetLocList()
let errorformat = let makeprg = 'pylint -f parseable -r n -i y ' .
\ '%E%f:%l: could not compile,%-Z%p^,%W%f:%l:%c: %m,%W%f:%l: %m,%-G%.%#' \ 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 call SyntasticHighlightErrors(errors, function('SyntaxCheckers_python_Term'))
endfunction
return errors
endfunction
endif