Fix #924 - Make changing the sign column color work again
This commit is contained in:
parent
4e9420d1f5
commit
91df9ba2c0
@ -184,16 +184,6 @@ function! s:GroupLoclistItems(buffer, loclist) abort
|
|||||||
return l:grouped_items
|
return l:grouped_items
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! ale#sign#SetSignColumnHighlight(has_problems) abort
|
|
||||||
highlight clear SignColumn
|
|
||||||
|
|
||||||
if a:has_problems
|
|
||||||
highlight link SignColumn ALESignColumnWithErrors
|
|
||||||
else
|
|
||||||
highlight link SignColumn ALESignColumnWithoutErrors
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:UpdateLineNumbers(buffer, current_sign_list, loclist) abort
|
function! s:UpdateLineNumbers(buffer, current_sign_list, loclist) abort
|
||||||
let l:line_map = {}
|
let l:line_map = {}
|
||||||
let l:line_numbers_changed = 0
|
let l:line_numbers_changed = 0
|
||||||
@ -347,7 +337,19 @@ function! ale#sign#SetSigns(buffer, loclist) abort
|
|||||||
\ l:sign_map,
|
\ l:sign_map,
|
||||||
\)
|
\)
|
||||||
|
|
||||||
|
" Change the sign column color if the option is on.
|
||||||
|
if g:ale_change_sign_column_color && !empty(a:loclist)
|
||||||
|
highlight clear SignColumn
|
||||||
|
highlight link SignColumn ALESignColumnWithErrors
|
||||||
|
endif
|
||||||
|
|
||||||
for l:command in l:command_list
|
for l:command in l:command_list
|
||||||
silent! execute l:command
|
silent! execute l:command
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
|
" Reset the sign column color when there are no more errors.
|
||||||
|
if g:ale_change_sign_column_color && empty(a:loclist)
|
||||||
|
highlight clear SignColumn
|
||||||
|
highlight link SignColumn ALESignColumnWithoutErrors
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
Before:
|
Before:
|
||||||
|
Save g:ale_change_sign_column_color
|
||||||
|
|
||||||
function! ParseHighlight(name) abort
|
function! ParseHighlight(name) abort
|
||||||
redir => l:output
|
redir => l:output
|
||||||
silent execute 'highlight ' . a:name
|
silent execute 'highlight ' . a:name
|
||||||
@ -20,14 +22,34 @@ Before:
|
|||||||
let g:sign_highlight = ParseHighlight('SignColumn')
|
let g:sign_highlight = ParseHighlight('SignColumn')
|
||||||
|
|
||||||
After:
|
After:
|
||||||
|
Restore
|
||||||
|
|
||||||
delfunction ParseHighlight
|
delfunction ParseHighlight
|
||||||
call SetHighlight('SignColumn', g:sign_highlight)
|
call SetHighlight('SignColumn', g:sign_highlight)
|
||||||
delfunction SetHighlight
|
delfunction SetHighlight
|
||||||
unlet! g:sign_highlight
|
unlet! g:sign_highlight
|
||||||
|
|
||||||
|
sign unplace *
|
||||||
|
|
||||||
|
Execute(The SignColumn highlight shouldn't be changed if the option is off):
|
||||||
|
let g:ale_change_sign_column_color = 0
|
||||||
|
let b:sign_highlight = ParseHighlight('SignColumn')
|
||||||
|
|
||||||
|
call ale#sign#SetSigns(bufnr(''), [
|
||||||
|
\ {'bufnr': bufnr(''), 'lnum': 1, 'col': 1, 'type': 'W', 'text': 'x'},
|
||||||
|
\])
|
||||||
|
AssertEqual b:sign_highlight, ParseHighlight('SignColumn')
|
||||||
|
|
||||||
|
call ale#sign#SetSigns(bufnr(''), [])
|
||||||
|
AssertEqual b:sign_highlight, ParseHighlight('SignColumn')
|
||||||
|
|
||||||
Execute(The SignColumn highlight should be set and reset):
|
Execute(The SignColumn highlight should be set and reset):
|
||||||
call ale#sign#SetSignColumnHighlight(1)
|
let g:ale_change_sign_column_color = 1
|
||||||
|
|
||||||
|
call ale#sign#SetSigns(bufnr(''), [
|
||||||
|
\ {'bufnr': bufnr(''), 'lnum': 1, 'col': 1, 'type': 'W', 'text': 'x'},
|
||||||
|
\])
|
||||||
AssertEqual 'links to ALESignColumnWithErrors', ParseHighlight('SignColumn')
|
AssertEqual 'links to ALESignColumnWithErrors', ParseHighlight('SignColumn')
|
||||||
|
|
||||||
call ale#sign#SetSignColumnHighlight(0)
|
call ale#sign#SetSigns(bufnr(''), [])
|
||||||
AssertEqual 'links to ALESignColumnWithoutErrors', ParseHighlight('SignColumn')
|
AssertEqual 'links to ALESignColumnWithoutErrors', ParseHighlight('SignColumn')
|
||||||
|
Loading…
Reference in New Issue
Block a user