Skip to content

Commit

Permalink
Fix #1687 - Parse highlights when verbose > 0
Browse files Browse the repository at this point in the history
  • Loading branch information
w0rp committed Jul 15, 2018
1 parent 72f002d commit d3ed1e5
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 17 deletions.
30 changes: 14 additions & 16 deletions autoload/ale/sign.vim
Original file line number Diff line number Diff line change
Expand Up @@ -45,25 +45,23 @@ if !hlexists('ALESignColumnWithErrors')
highlight link ALESignColumnWithErrors error
endif

if !hlexists('ALESignColumnWithoutErrors')
function! s:SetSignColumnWithoutErrorsHighlight() abort
redir => l:output
silent highlight SignColumn
redir end

let l:highlight_syntax = join(split(l:output)[2:])
function! ale#sign#SetUpDefaultColumnWithoutErrorsHighlight() abort
redir => l:output
0verbose silent highlight SignColumn
redir end

let l:match = matchlist(l:highlight_syntax, '\vlinks to (.+)$')
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 !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
if !hlexists('ALESignColumnWithoutErrors')
call ale#sign#SetUpDefaultColumnWithoutErrorsHighlight()
endif

" Signs show up on the left for error markers.
Expand Down
15 changes: 14 additions & 1 deletion test/sign/test_sign_column_highlighting.vader
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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')

0 comments on commit d3ed1e5

Please sign in to comment.