X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/290e866599e2ab709a7cc3dff69b7659a9eddbcb..2d1ddb78ce695204735d87fcc13540cad377f775:/autoload/flake8.vim diff --git a/autoload/flake8.vim b/autoload/flake8.vim index 67d6965..a8dc7d6 100644 --- a/autoload/flake8.vim +++ b/autoload/flake8.vim @@ -8,7 +8,7 @@ let s:save_cpo = &cpo set cpo&vim -"" external {{{ +"" ** external ** {{{ function! flake8#Flake8() call s:Flake8() @@ -26,9 +26,18 @@ endfunction function! s:DeclareOption(name, globalPrefix, default) " {{{ if !exists('g:'.a:name) - execute 'let s:'.a:name.'='.a:default + if a:default != '' + execute 'let s:'.a:name.'='.a:default + else + execute 'let s:'.a:name.'=""' + endif else - execute 'let s:'.a:name.'="'.a:globalPrefix.'".g:'.a:name + execute 'let l:global="g:".a:name' + if l:global != '' + execute 'let s:'.a:name.'="'.a:globalPrefix.'".g:'.a:name + else + execute 'let s:'.a:name.'=""' + endif endif endfunction " }}} @@ -175,30 +184,45 @@ function! s:PlaceMarkers(results) " {{{ endfor endif + " in file? + let l:matchstr = "" + if !s:flake8_show_in_file == 0 + let l:matchstr = '\%(' + endif + " clear old call s:UnplaceMarkers() let s:matchids = [] let s:signids = [] " place - let index = 100 + let l:index0 = 100 + let l:index = l:index0 for result in a:results - let type = strpart(result.text, 0, 1) - if has_key(s:markerdata, type) + if l:index >= (s:flake8_max_markers+l:index0) + break + endif + let l:type = strpart(result.text, 0, 1) + if has_key(s:markerdata, l:type) " file markers if !s:flake8_show_in_file == 0 - let s:matchids += [matchadd(s:markerdata[type]['color'], - \ "\\%".result.lnum."l\\%".result.col."c")] + "let s:matchstr .= '\|\%'.result.lnum.'l\%'.result.col.'c' + let s:matchids += [matchadd(s:markerdata[l:type]['color'], "\\%".result.lnum."l\\%".result.col."c")] endif " gutter markers if !s:flake8_show_in_gutter == 0 - execute ":sign place ".index." name=".s:markerdata[type]['sign'] + execute ":sign place ".index." name=".s:markerdata[l:type]['sign'] \ . " line=".result.lnum." file=".expand("%:p") - let s:signids += [index] - let index += 1 + let s:signids += [l:index] endif + let l:index += 1 endif endfor + + " in file? + if !s:flake8_show_in_file == 0 + call matchadd(Error, s:matchstr.'\)') + endif endfunction " }}} function! s:UnplaceMarkers() " {{{