-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
- endif
-
- set lazyredraw " delay redrawing
- cclose " close any existing cwindows
-
- " store old grep settings (to restore later)
- let l:old_gfm=&grepformat
- let l:old_gp=&grepprg
-
- " 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
-
- " perform the grep itself
- let &grepformat="%f:%l:%c: %m\,%f:%l: %m"
- 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
-
- " 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>
- endif
-
- set nolazyredraw
- redraw!
-
- if has_results == 0
- " Show OK status
- hi Green ctermfg=green
- echohl Green
- echon "Flake8 check OK"
- echohl
- endif
- endfunction
-endif
+let s:save_cpo = &cpo
+set cpo&vim
+
+"" Highlight groups for errors
+" pep8 errors
+highlight default Flake8_Error
+ \ ctermbg=DarkRed ctermfg=Red cterm=bold
+ \ guibg=DarkRed guifg=Red gui=bold
+" pep8 warnings
+highlight default Flake8_Warning
+ \ ctermbg=Yellow ctermfg=DarkYellow cterm=bold
+ \ guibg=Yellow guifg=DarkYellow gui=bold
+" PyFlakes codes
+highlight default Flake8_PyFlake
+ \ ctermbg=DarkBlue ctermfg=Blue cterm=bold
+ \ guibg=DarkBlue guifg=Blue gui=bold
+" McCabe complexity warnings
+highlight default Flake8_Complexity
+ \ ctermbg=DarkBlue ctermfg=Blue cterm=bold
+ \ guibg=DarkBlue guifg=Blue gui=bold
+" naming conventions
+highlight default Flake8_Naming
+ \ ctermbg=DarkBlue ctermfg=Blue cterm=bold
+ \ guibg=DarkBlue guifg=Blue gui=bold
+
+" to not break with old versions
+function! Flake8()
+ call flake8#Flake8()
+endfunction