637182c181
The error messages that pyflakes outputs dont contain enough information to classify them as errors or warnings. Apart from checking for all known warning outputs and classifying the rest as errors (or vice versa) there is no way classify. Make the syntax checker class all results as errors. Individual warning formats can be checked for later if they become a problem. This addresses #189.
37 lines
1.6 KiB
VimL
37 lines
1.6 KiB
VimL
"============================================================================
|
|
"File: pyflakes.vim
|
|
"Description: Syntax checking plugin for syntastic.vim
|
|
"Authors: Martin Grenfell <martin.grenfell@gmail.com>
|
|
" kstep <me@kstep.me>
|
|
" Parantapa Bhattacharya <parantapa@gmail.com>
|
|
"
|
|
"============================================================================
|
|
function! SyntaxCheckers_python_Term(i)
|
|
if match(a:i['text'], 'is assigned to but never used') > -1
|
|
\ || match(a:i['text'], 'imported but unused') > -1
|
|
\ || match(a:i['text'], 'undefined name') > -1
|
|
\ || match(a:i['text'], 'redefinition of') > -1
|
|
\ || match(a:i['text'], 'referenced before assignment') > -1
|
|
\ || match(a:i['text'], 'duplicate argument') > -1
|
|
\ || match(a:i['text'], 'after other statements') > -1
|
|
\ || match(a:i['text'], 'shadowed by loop variable') > -1
|
|
|
|
let term = split(a:i['text'], "'", 1)[1]
|
|
return '\V\<'.term.'\>'
|
|
endif
|
|
return ''
|
|
endfunction
|
|
|
|
function! SyntaxCheckers_python_GetLocList()
|
|
let makeprg = 'pyflakes '.g:syntastic_python_checker_args.' '.shellescape(expand('%'))
|
|
let errorformat = '%E%f:%l: could not compile,%-Z%p^,%E%f:%l:%c: %m,%E%f:%l: %m,%-G%.%#'
|
|
|
|
let errors = SyntasticMake({ 'makeprg': makeprg,
|
|
\ 'errorformat': errorformat,
|
|
\ 'defaults': {'text': "Syntax error"} })
|
|
|
|
call SyntasticHighlightErrors(errors, function('SyntaxCheckers_python_Term'))
|
|
|
|
return errors
|
|
endfunction
|