Fix #1687 - Parse highlights when verbose > 0

This commit is contained in:
w0rp 2018-07-15 20:57:51 +01:00
parent ab2b181012
commit d29e32d42d
No known key found for this signature in database
GPG Key ID: 0FC1ECAA8C81CD83
2 changed files with 30 additions and 19 deletions

View File

@ -45,25 +45,23 @@ if !hlexists('ALESignColumnWithErrors')
highlight link ALESignColumnWithErrors error
endif
function! ale#sign#SetUpDefaultColumnWithoutErrorsHighlight() abort
redir => l:output
0verbose silent highlight SignColumn
redir end
let l:highlight_syntax = join(split(l:output)[2:])
let l:match = matchlist(l:highlight_syntax, '\vlinks to (.+)$')
if !empty(l:match)
execute 'highlight link ALESignColumnWithoutErrors ' . l:match[1]
elseif l:highlight_syntax isnot# 'cleared'
execute 'highlight ALESignColumnWithoutErrors ' . l:highlight_syntax
endif
endfunction
if !hlexists('ALESignColumnWithoutErrors')
function! s:SetSignColumnWithoutErrorsHighlight() abort
redir => l:output
silent highlight SignColumn
redir end
let l:highlight_syntax = join(split(l:output)[2:])
let l:match = matchlist(l:highlight_syntax, '\vlinks to (.+)$')
if !empty(l:match)
execute 'highlight link ALESignColumnWithoutErrors ' . l:match[1]
elseif l:highlight_syntax isnot# 'cleared'
execute 'highlight ALESignColumnWithoutErrors ' . l:highlight_syntax
endif
endfunction
call s:SetSignColumnWithoutErrorsHighlight()
delfunction s:SetSignColumnWithoutErrorsHighlight
call ale#sign#SetUpDefaultColumnWithoutErrorsHighlight()
endif
" Signs show up on the left for error markers.

View File

@ -1,12 +1,13 @@
Before:
Save g:ale_change_sign_column_color
Save &verbose
function! ParseHighlight(name) abort
redir => l:output
silent execute 'highlight ' . a:name
redir end
return join(split(l:output)[2:])
return substitute(join(split(l:output)[2:]), ' Last set.*', '', '')
endfunction
function! SetHighlight(name, syntax) abort
@ -53,3 +54,15 @@ Execute(The SignColumn highlight should be set and reset):
call ale#sign#SetSigns(bufnr(''), [])
AssertEqual 'links to ALESignColumnWithoutErrors', ParseHighlight('SignColumn')
Execute(The SignColumn should be correctly parsed when verbose=1):
set verbose=1
highlight SignColumn ctermfg=246 ctermbg=7 guifg=#839496 guibg=Grey
call ale#sign#SetUpDefaultColumnWithoutErrorsHighlight()
AssertEqual
\ has('nvim')
\ ? 'ctermfg=246 ctermbg=7 guifg=#839496 guibg=Grey'
\ : 'term=standout ctermfg=246 ctermbg=7 guifg=#839496 guibg=Grey',
\ ParseHighlight('ALESignColumnWithoutErrors')