mirror of https://github.com/dense-analysis/ale
Fix #534 - Stop other higlights being restored when buffers are hidden and shown again
This commit is contained in:
parent
0ac82f0a17
commit
bf8aae02e8
|
@ -97,7 +97,10 @@ endfunction
|
||||||
|
|
||||||
function! ale#highlight#BufferHidden(buffer) abort
|
function! ale#highlight#BufferHidden(buffer) abort
|
||||||
" Remember all matches, so they can be restored later.
|
" Remember all matches, so they can be restored later.
|
||||||
let s:buffer_restore_map[a:buffer] = getmatches()
|
let s:buffer_restore_map[a:buffer] = filter(
|
||||||
|
\ getmatches(),
|
||||||
|
\ 'get(v:val, ''group'', '''')[:2] ==# ''ALE'''
|
||||||
|
\)
|
||||||
call clearmatches()
|
call clearmatches()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
|
@ -28,12 +28,14 @@ Before:
|
||||||
\ 'command': 'echo',
|
\ 'command': 'echo',
|
||||||
\ 'callback': 'GenerateResults',
|
\ 'callback': 'GenerateResults',
|
||||||
\})
|
\})
|
||||||
|
highlight link SomeOtherGroup SpellBad
|
||||||
|
|
||||||
After:
|
After:
|
||||||
delfunction GenerateResults
|
delfunction GenerateResults
|
||||||
call ale#linter#Reset()
|
call ale#linter#Reset()
|
||||||
let g:ale_buffer_info = {}
|
let g:ale_buffer_info = {}
|
||||||
call clearmatches()
|
call clearmatches()
|
||||||
|
highlight clear SomeOtherGroup
|
||||||
|
|
||||||
Given testft(A Javscript file with warnings/errors):
|
Given testft(A Javscript file with warnings/errors):
|
||||||
foo
|
foo
|
||||||
|
@ -107,3 +109,23 @@ Execute(Highlights should be cleared when buffers are hidden):
|
||||||
call ale#highlight#UpdateHighlights()
|
call ale#highlight#UpdateHighlights()
|
||||||
|
|
||||||
AssertEqual 1, len(getmatches()), 'The highlights weren''t set again!'
|
AssertEqual 1, len(getmatches()), 'The highlights weren''t set again!'
|
||||||
|
|
||||||
|
Execute(Only ALE highlights should be restored when buffers are restored):
|
||||||
|
call ale#engine#InitBufferInfo(bufnr('%'))
|
||||||
|
call ale#highlight#SetHighlights(bufnr('%'), [
|
||||||
|
\ {'bufnr': bufnr('%'), 'type': 'E', 'lnum': 3, 'col': 2},
|
||||||
|
\])
|
||||||
|
|
||||||
|
call matchaddpos('SomeOtherGroup', [[1, 1, 1]])
|
||||||
|
|
||||||
|
" We should have one more match here.
|
||||||
|
AssertEqual 2, len(getmatches()), 'The highlights weren''t initially set!'
|
||||||
|
|
||||||
|
call ale#highlight#BufferHidden(bufnr('%'))
|
||||||
|
|
||||||
|
AssertEqual 0, len(getmatches()), 'The highlights weren''t cleared!'
|
||||||
|
|
||||||
|
call ale#highlight#UpdateHighlights()
|
||||||
|
|
||||||
|
" Only our matches should appear again.
|
||||||
|
AssertEqual 1, len(getmatches()), 'The highlights weren''t set again!'
|
||||||
|
|
Loading…
Reference in New Issue