[vim-pyflakes](https://github.com/nvie/vim-pyflakes) and
[vim-pep8](https://github.com/nvie/vim-pep8).
-[Flake8](http://pypi.python.org/pypi/flake8/) is a wrapper around PyFlakes
-(static syntax checker), PEP8 (style checker)
-and Ned's MacCabe script (complexity checker).
+[Flake8](https://pypi.python.org/pypi/flake8/) is a wrapper around PyFlakes
+(static syntax checker), PEP8 (style checker) and Ned's MacCabe script
+(complexity checker).
Installation
------------
Use [vim-pathogen](https://github.com/tpope/vim-pathogen) if you're not using
-it already. Make sure you've installed the [flake8](http://pypi.python.org/pypi/flake8/) package.
-Then, simply put the contents of this repository in your
-`~/.vim/bundle` directory.
+it already. Make sure you've installed the
+[flake8](https://pypi.python.org/pypi/flake8/) package. Then, simply put the
+contents of this repository in your `~/.vim/bundle` directory.
Usage
-----
autocmd FileType python map <buffer> <F3> :call Flake8()<CR>
-To add builtins, in your .vimrc:
+For flake8 configuration options please consult the following page:
- let g:flake8_builtins="_,apply"
-
-To ignore errors, in your .vimrc:
-
- let g:flake8_ignore="E501,W293"
-
-If you want to change the max line length for PEP8:
-
- let g:flake8_max_line_length=99
-
-To set the maximum [McCabe complexity](https://en.wikipedia.org/wiki/Cyclomatic_complexity) before a warning is issued:
-
- let g:flake8_max_complexity=10
+https://flake8.readthedocs.org/en/latest/config.html
To customize the location of your flake8 binary, set `g:flake8_cmd`:
----
A tip might be to run the Flake8 check every time you write a Python file, to
enable this, add the following line to your `.vimrc` file (thanks
-[Godefroid](http://github.com/gotcha)!):
+[Godefroid](https://github.com/gotcha)!):
autocmd BufWritePost *.py call Flake8()
This plugin goes well together with the following plugin:
-- [PyUnit](http://github.com/nvie/vim-pyunit) (unit test helper under `<F8>`
+- [PyUnit](https://github.com/nvie/vim-pyunit) (unit test helper under `<F8>`
and `<F9>`)
History
-------
+1.6: Deprecated configuring flake8 options through Vim settings. Instead,
+advise users to use the flake8 config file.
-1.5: Added markers and the option to don't show the quickfix window, also split functions into
-a autoload file. Added:
+1.5: Added markers and the option to don't show the quickfix window, also split
+functions into a autoload file. Added:
- Options:
- `g:flake8_show_quickfix`
function! flake8#Flake8()
call s:Flake8()
+ call s:Warnings()
endfunction
function! flake8#Flake8UnplaceMarkers()
call s:UnplaceMarkers()
+ call s:Warnings()
endfunction
"" }}}
"" ** internal ** {{{
+"" warnings
+
+let s:displayed_warnings = 0
+function s:Warnings()
+ if !s:displayed_warnings
+ let l:show_website_url = 0
+
+ let l:msg = "has been depreciated in favour of flake8 config files"
+ for setting_name in ['g:flake8_ignore', 'g:flake8_builtins', 'g:flake8_max_line_length', 'g:flake8_max_complexity']
+ if exists(setting_name)
+ echohl WarningMsg | echom setting_name l:msg | echohl None
+ let l:show_website_url = 1
+ endif
+ endfor
+
+ if l:show_website_url
+ let l:url = "http://flake8.readthedocs.org/en/latest/config.html"
+ echohl WarningMsg | echom l:url | echohl None
+ endif
+ let s:displayed_warnings = 1
+ endif
+endfunction
+
"" config
function! s:DeclareOption(name, globalPrefix, default) " {{{
" flake8 command
call s:DeclareOption('flake8_cmd', '', '"flake8"')
- " flake8 stuff
- call s:DeclareOption('flake8_builtins', ' --builtins=', '')
- call s:DeclareOption('flake8_ignore', ' --ignore=', '')
- call s:DeclareOption('flake8_max_line_length', ' --max-line-length=', '')
- call s:DeclareOption('flake8_max_complexity', ' --max-complexity=', '')
" quickfix
call s:DeclareOption('flake8_quickfix_location', '', '"belowright"')
call s:DeclareOption('flake8_quickfix_height', '', 5)
" perform the grep itself
let &grepformat="%f:%l:%c: %m\,%f:%l: %m"
- let &grepprg=s:flake8_cmd.s:flake8_builtins.s:flake8_ignore.s:flake8_max_line_length.s:flake8_max_complexity
+ let &grepprg=s:flake8_cmd
silent! grep! "%"
" restore grep settings