Merge branch 'master' into gcc_refactor

This commit is contained in:
LCD 47 2013-07-15 18:38:57 +03:00
commit 9d15f1f891
4 changed files with 76 additions and 24 deletions

View File

@ -129,7 +129,8 @@ function! s:UpdateErrors(auto_invoked, ...)
return return
endif endif
if !a:auto_invoked || s:modemap.allowsAutoChecking(&filetype) let run_checks = !a:auto_invoked || s:modemap.allowsAutoChecking(&filetype)
if run_checks
if a:0 >= 1 if a:0 >= 1
call s:CacheErrors(a:1) call s:CacheErrors(a:1)
else else
@ -141,7 +142,7 @@ function! s:UpdateErrors(auto_invoked, ...)
if g:syntastic_always_populate_loc_list || g:syntastic_auto_jump if g:syntastic_always_populate_loc_list || g:syntastic_auto_jump
call setloclist(0, loclist.filteredRaw()) call setloclist(0, loclist.filteredRaw())
if g:syntastic_auto_jump && loclist.hasErrorsOrWarningsToDisplay() if run_checks && g:syntastic_auto_jump && loclist.hasErrorsOrWarningsToDisplay()
silent! lrewind silent! lrewind
endif endif
endif endif

View File

@ -15,19 +15,7 @@ function! SyntaxCheckers_python_flake8_IsAvailable()
endfunction endfunction
function! SyntaxCheckers_python_flake8_GetHighlightRegex(i) function! SyntaxCheckers_python_flake8_GetHighlightRegex(i)
if match(a:i['text'], 'is assigned to but never used') > -1 return SyntaxCheckers_python_pyflakes_GetHighlightRegex(a:i)
\ || 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 endfunction
function! SyntaxCheckers_python_flake8_GetLocList() function! SyntaxCheckers_python_flake8_GetLocList()
@ -52,3 +40,5 @@ endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({ call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'python', \ 'filetype': 'python',
\ 'name': 'flake8'}) \ 'name': 'flake8'})
runtime! syntax_checkers/python/pyflakes.vim

View File

@ -17,16 +17,24 @@ endfunction
function! SyntaxCheckers_python_pyflakes_GetHighlightRegex(i) function! SyntaxCheckers_python_pyflakes_GetHighlightRegex(i)
if match(a:i['text'], 'is assigned to but never used') > -1 if match(a:i['text'], 'is assigned to but never used') > -1
\ || match(a:i['text'], 'imported but unused') > -1 \ || match(a:i['text'], 'imported but unused') > -1
\ || match(a:i['text'], 'undefined name') > -1 \ || match(a:i['text'], 'undefined name') > -1
\ || match(a:i['text'], 'redefinition of') > -1 \ || match(a:i['text'], 'redefinition of') > -1
\ || match(a:i['text'], 'referenced before assignment') > -1 \ || match(a:i['text'], 'referenced before assignment') > -1
\ || match(a:i['text'], 'duplicate argument') > -1 \ || match(a:i['text'], 'duplicate argument') > -1
\ || match(a:i['text'], 'after other statements') > -1 \ || match(a:i['text'], 'after other statements') > -1
\ || match(a:i['text'], 'shadowed by loop variable') > -1 \ || match(a:i['text'], 'shadowed by loop variable') > -1
let term = split(a:i['text'], "'", 1)[1] " fun with Python's %r: try "..." first, then '...'
return '\V\<'.term.'\>' let terms = split(a:i['text'], '"', 1)
if len(terms) > 2
return terms[1]
endif
let terms = split(a:i['text'], "'", 1)
if len(terms) > 2
return terms[1]
endif
endif endif
return '' return ''
endfunction endfunction

View File

@ -0,0 +1,53 @@
"============================================================================
"File: pylama.vim
"Description: Syntax checking plugin for syntastic.vim
"Maintainer: LCD 47 <lcd047 at gmail dot com>
"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.
"
"============================================================================
if exists("g:loaded_syntastic_python_pylama_checker")
finish
endif
let g:loaded_syntastic_python_pylama_checker=1
function! SyntaxCheckers_python_pylama_IsAvailable()
return executable('pylama')
endfunction
function! SyntaxCheckers_python_pylama_GetHighlightRegex(i)
return SyntaxCheckers_python_pyflakes_GetHighlightRegex(a:i)
endfunction
function! SyntaxCheckers_python_pylama_GetLocList()
let makeprg = syntastic#makeprg#build({
\ 'exe': 'pylama',
\ 'post_args': ' -f pep8',
\ 'filetype': 'python',
\ 'subchecker': 'pylama' })
let errorformat = '%A%f:%l:%c: %m'
let loclist=SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'postprocess': ['sort'] })
for n in range(len(loclist))
let loclist[n]['type'] = match(['R', 'C', 'W'], loclist[n]['text'][0]) >= 0 ? 'W' : 'E'
if loclist[n]['text'] =~# '\v\[%(pep8|pep257|mccabe)\]$'
let loclist[n]['subtype'] = 'Style'
endif
endfor
return loclist
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'python',
\ 'name': 'pylama' })
runtime! syntax_checkers/python/pyflakes.vim