X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/ca1dc6d3ef003f7e44eec46231779cb18009c88d..293613dbe731a2875ce93739e7b64ee504d8bbab:/ftplugin/python_flake8.vim?ds=sidebyside diff --git a/ftplugin/python_flake8.vim b/ftplugin/python_flake8.vim index e3b3c61..5310e3b 100644 --- a/ftplugin/python_flake8.vim +++ b/ftplugin/python_flake8.vim @@ -11,24 +11,14 @@ if exists("b:loaded_flake8_ftplugin") endif let b:loaded_flake8_ftplugin=1 -if exists("g:flake8_cmd") - let s:flake8_cmd=g:flake8_cmd -else - let s:flake8_cmd="flake8" -endif - -let s:flake8_ignores="" -if exists("g:flake8_ignore") - let s:flake8_ignores=" --ignore=".g:flake8_ignore -endif - -let s:flake8_max_line_length="" -if exists("g:flake8_max_line_length") - let s:flake8_max_line_length=" --max-line-length=".g:flake8_max_line_length -endif - if !exists("*Flake8()") function Flake8() + if exists("g:flake8_cmd") + let s:flake8_cmd=g:flake8_cmd + else + let s:flake8_cmd="flake8" + endif + if !executable(s:flake8_cmd) echoerr "File " . s:flake8_cmd . " not found. Please install it first." return @@ -40,25 +30,61 @@ if !exists("*Flake8()") " store old grep settings (to restore later) let l:old_gfm=&grepformat let l:old_gp=&grepprg + let l:old_shellpipe=&shellpipe " write any changes before continuing if &readonly == 0 update endif + " read config + if exists("g:flake8_builtins") + let s:flake8_builtins_opt=" --builtins=".g:flake8_builtins + else + let s:flake8_builtins_opt="" + endif + + if exists("g:flake8_ignore") + let s:flake8_ignores=" --ignore=".g:flake8_ignore + else + let s:flake8_ignores="" + endif + + if exists("g:flake8_max_line_length") + let s:flake8_max_line_length=" --max-line-length=".g:flake8_max_line_length + else + let s:flake8_max_line_length="" + endif + + if exists("g:flake8_max_complexity") + let s:flake8_max_complexity=" --max-complexity=".g:flake8_max_complexity + else + let s:flake8_max_complexity="" + endif + + if exists("g:flake8_quickfix_location") + let s:flake8_quickfix_location=g:flake8_quickfix_location + else + let s:flake8_quickfix_location="belowright" + endif + + " set shellpipe to > instead of tee (suppressing output) + set shellpipe=> + " perform the grep itself let &grepformat="%f:%l:%c: %m\,%f:%l: %m" - let &grepprg=s:flake8_cmd.s:flake8_ignores.s:flake8_max_line_length - silent! grep! % + let &grepprg=s:flake8_cmd.s:flake8_builtins_opt.s:flake8_ignores.s:flake8_max_line_length.s:flake8_max_complexity + silent! grep! "%" " restore grep settings let &grepformat=l:old_gfm let &grepprg=l:old_gp + let &shellpipe=l:old_shellpipe " open cwindow let has_results=getqflist() != [] if has_results - execute 'belowright copen' + execute s:flake8_quickfix_location." copen" setlocal wrap nnoremap c :cclose nnoremap q :cclose