mirror of
https://github.com/gryf/.vim.git
synced 2025-12-17 11:30:29 +01:00
added pydoc plugin added surround plugin instead of annoying (in the end) delimitMate plugin. removed some experimental files with colors added jythongold folding for python added rst snippets added tmux configuration filetype added pylint compiler updated pyflakes
127 lines
3.4 KiB
VimL
127 lines
3.4 KiB
VimL
" Vim compiler file for Python
|
|
" Compiler: Style checking tool for Python
|
|
" Maintainer: Oleksandr Tymoshenko <gonzo@univ.kiev.ua>
|
|
" Last Change: 2009 Apr 19
|
|
" Version: 0.5
|
|
" Contributors:
|
|
" Artur Wroblewski
|
|
" Menno
|
|
"
|
|
" Installation:
|
|
" Drop pylint.vim in ~/.vim/compiler directory. Ensure that your PATH
|
|
" environment variable includes the path to 'pylint' executable.
|
|
"
|
|
" Add the following line to the autocmd section of .vimrc
|
|
"
|
|
" autocmd FileType python compiler pylint
|
|
"
|
|
" Usage:
|
|
" Pylint is called after a buffer with Python code is saved. QuickFix
|
|
" window is opened to show errors, warnings and hints provided by Pylint.
|
|
" Code rate calculated by Pylint is displayed at the bottom of the
|
|
" window.
|
|
"
|
|
" Above is realized with :Pylint command. To disable calling Pylint every
|
|
" time a buffer is saved put into .vimrc file
|
|
"
|
|
" let g:pylint_onwrite = 0
|
|
"
|
|
" Displaying code rate calculated by Pylint can be avoided by setting
|
|
"
|
|
" let g:pylint_show_rate = 0
|
|
"
|
|
" Openning of QuickFix window can be disabled with
|
|
"
|
|
" let g:pylint_cwindow = 0
|
|
"
|
|
" Of course, standard :make command can be used as in case of every
|
|
" other compiler.
|
|
"
|
|
|
|
if exists('current_compiler')
|
|
finish
|
|
endif
|
|
let current_compiler = 'pylint'
|
|
|
|
if !exists('g:pylint_onwrite')
|
|
let g:pylint_onwrite = 1
|
|
endif
|
|
|
|
if !exists('g:pylint_show_rate')
|
|
let g:pylint_show_rate = 1
|
|
endif
|
|
|
|
if !exists('g:pylint_cwindow')
|
|
let g:pylint_cwindow = 1
|
|
endif
|
|
|
|
if exists(':Pylint') != 2
|
|
command Pylint :call Pylint(0)
|
|
endif
|
|
|
|
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
|
command -nargs=* CompilerSet setlocal <args>
|
|
endif
|
|
|
|
" We should echo filename because pylint truncates .py
|
|
" If someone know better way - let me know :)
|
|
CompilerSet makeprg=(echo\ '[%]';\ pylint\ -r\ y\ %)
|
|
|
|
" We could omit end of file-entry, there is only one file
|
|
" %+I... - include code rating information
|
|
" %-G... - remove all remaining report lines from quickfix buffer
|
|
CompilerSet efm=%+P[%f],%t:\ %#%l:%m,%Z,%+IYour\ code%m,%Z,%-G%.%#
|
|
|
|
if g:pylint_onwrite
|
|
augroup python
|
|
au!
|
|
au BufWritePost * call Pylint(1)
|
|
augroup end
|
|
endif
|
|
|
|
function! Pylint(writing)
|
|
if !a:writing && &modified
|
|
" Save before running
|
|
write
|
|
endif
|
|
|
|
if has('win32') || has('win16') || has('win95') || has('win64')
|
|
setlocal sp=>%s
|
|
else
|
|
setlocal sp=>%s\ 2>&1
|
|
endif
|
|
|
|
" If check is executed by buffer write - do not jump to first error
|
|
if !a:writing
|
|
silent make
|
|
else
|
|
silent make!
|
|
endif
|
|
|
|
if g:pylint_cwindow
|
|
cwindow
|
|
endif
|
|
|
|
call PylintEvaluation()
|
|
|
|
if g:pylint_show_rate
|
|
echon 'code rate: ' b:pylint_rate ', prev: ' b:pylint_prev_rate
|
|
endif
|
|
endfunction
|
|
|
|
function! PylintEvaluation()
|
|
let l:list = getqflist()
|
|
let b:pylint_rate = '0.00'
|
|
let b:pylint_prev_rate = '0.00'
|
|
for l:item in l:list
|
|
if l:item.type == 'I' && l:item.text =~ 'Your code has been rated'
|
|
let l:re_rate = '\(-\?[0-9]\{1,2\}\.[0-9]\{2\}\)/'
|
|
let b:pylint_rate = substitute(l:item.text, '.*rated at '.l:re_rate.'.*', '\1', 'g')
|
|
" Only if there is information about previous run
|
|
if l:item.text =~ 'previous run: '
|
|
let b:pylint_prev_rate = substitute(l:item.text, '.*previous run: '.l:re_rate.'.*', '\1', 'g')
|
|
endif
|
|
endif
|
|
endfor
|
|
endfunction
|