X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/c92a2e54e2dd35e7127ae4939fbbfee50027da3a..f0abe5f5a988426791661079674744f62de0efa2:/autoload/flake8.vim?ds=sidebyside diff --git a/autoload/flake8.vim b/autoload/flake8.vim index 6aee19c..70a2538 100644 --- a/autoload/flake8.vim +++ b/autoload/flake8.vim @@ -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 " }}} @@ -61,9 +70,9 @@ function! s:SetupConfig() " {{{ let s:markerdata = {} if s:flake8_error_marker != '' let s:markerdata['E'] = { - \ 'color': 'Flake8_Error', - \ 'marker': s:flake8_error_marker, - \ 'sign': 'Flake8_E', + \ 'color': 'Flake8_Error', + \ 'marker': s:flake8_error_marker, + \ 'sign': 'Flake8_E', \ } endif if s:flake8_warning_marker != '' @@ -128,8 +137,6 @@ function! s:Flake8() " {{{ let &grepprg=s:flake8_cmd.s:flake8_builtins.s:flake8_ignore.s:flake8_max_line_length.s:flake8_max_complexity silent! grep! "%" - echo s:flake8_cmd.s:flake8_builtins.s:flake8_ignore.s:flake8_max_line_length.s:flake8_max_complexity - " restore grep settings let &grepformat=l:old_gfm let &grepprg=l:old_gp @@ -191,8 +198,12 @@ function! s:PlaceMarkers(results) " {{{ if has_key(s:markerdata, l:type) " file markers if !s:flake8_show_in_file == 0 - let s:matchids += [matchadd(s:markerdata[l:type]['color'], - \ "\\%".result.lnum."l\\%".result.col."c")] + if !has_key(s:markerdata, 'matchstr') + let s:markerdata[l:type]['matchstr'] = '\%(' + else + let s:markerdata[l:type]['matchstr'] .= '\|' + endif + let s:markerdata[l:type]['matchstr'] .= '\%'.result.lnum.'l\%'.result.col.'c' endif " gutter markers if !s:flake8_show_in_gutter == 0 @@ -203,6 +214,15 @@ function! s:PlaceMarkers(results) " {{{ let l:index += 1 endif endfor + + " in file? + if !s:flake8_show_in_file == 0 + for l:val in values(s:markerdata) + if l:val['matchstr'] != '' + let l:val['matchid'] = matchadd(l:val['color'], l:val['matchstr'].'\)') + endif + endfor + endif endfunction " }}} function! s:UnplaceMarkers() " {{{ @@ -214,12 +234,13 @@ function! s:UnplaceMarkers() " {{{ unlet s:signids endif " file markers - if exists('s:matchids') - for i in s:matchids - call matchdelete(i) - endfor - unlet s:matchids - endif + for l:val in values(s:markerdata) + if has_key(l:val, 'matchid') + call matchdelete(l:val['matchid']) + unlet l:val['matchid'] + unlet l:val['matchstr'] + endif + endfor endfunction " }}} "" }}}