summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/highlight.vim6
-rw-r--r--test/test_highlight_placement.vader2
2 files changed, 7 insertions, 1 deletions
diff --git a/autoload/ale/highlight.vim b/autoload/ale/highlight.vim
index f3a479e3..5e4cbdb0 100644
--- a/autoload/ale/highlight.vim
+++ b/autoload/ale/highlight.vim
@@ -109,7 +109,11 @@ function! ale#highlight#BufferHidden(buffer) abort
endif
endfor
- let s:buffer_restore_map[a:buffer] = l:loclist
+ let s:buffer_restore_map[a:buffer] = filter(
+ \ copy(l:loclist),
+ \ 'v:val.bufnr == a:buffer && v:val.col > 0'
+ \)
+
call clearmatches()
endif
endfunction
diff --git a/test/test_highlight_placement.vader b/test/test_highlight_placement.vader
index 25c98784..b5816852 100644
--- a/test/test_highlight_placement.vader
+++ b/test/test_highlight_placement.vader
@@ -96,8 +96,10 @@ Execute(Highlights set by ALE should be removed when buffer cleanup is done):
Execute(Highlights should be cleared when buffers are hidden):
call ale#engine#InitBufferInfo(bufnr('%'))
+ " The second item should be ignored, as it has no column infomration.
let g:ale_buffer_info[bufnr('%')].loclist = [
\ {'bufnr': bufnr('%'), 'type': 'E', 'lnum': 3, 'col': 2},
+ \ {'bufnr': bufnr('%'), 'type': 'E', 'lnum': 4, 'col': 0},
\]
call ale#highlight#SetHighlights(
\ bufnr('%'),