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
" 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
+
+ if exists("g:flake8_hide_quickfix")
+ let s:flake8_hide_quickfix=g:flake8_hide_quickfix
+ else
+ let s:flake8_hide_quickfix=0
+ 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'
- setlocal wrap
- nnoremap <buffer> <silent> c :cclose<CR>
- nnoremap <buffer> <silent> q :cclose<CR>
+ if s:flake8_hide_quickfix == 0
+ execute s:flake8_quickfix_location." copen"
+ setlocal wrap
+ nnoremap <buffer> <silent> c :cclose<CR>
+ nnoremap <buffer> <silent> q :cclose<CR>
+ endif
endif
set nolazyredraw