summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/list.vim10
-rw-r--r--test/test_list_opening.vader8
2 files changed, 14 insertions, 4 deletions
diff --git a/autoload/ale/list.vim b/autoload/ale/list.vim
index 6486d906..63d51ab5 100644
--- a/autoload/ale/list.vim
+++ b/autoload/ale/list.vim
@@ -36,10 +36,12 @@ function! ale#list#SetLists(buffer, loclist) abort
if len(a:loclist) > 0 || g:ale_keep_list_window_open
let l:winnr = winnr()
- if g:ale_set_quickfix
- copen
- elseif g:ale_set_loclist
- lopen
+ if !ale#list#IsQuickfixOpen()
+ if g:ale_set_quickfix
+ copen
+ elseif g:ale_set_loclist
+ lopen
+ endif
endif
" If focus changed, restore it (jump to the last window).
diff --git a/test/test_list_opening.vader b/test/test_list_opening.vader
index 942f592f..6d0164fd 100644
--- a/test/test_list_opening.vader
+++ b/test/test_list_opening.vader
@@ -49,6 +49,10 @@ Execute(The quickfix window should open for just the loclist):
call ale#list#SetLists(bufnr('%'), g:loclist)
Assert ale#list#IsQuickfixOpen()
+ " Clear the list and it should close again.
+ call ale#list#SetLists(bufnr('%'), [])
+ Assert !ale#list#IsQuickfixOpen()
+
Execute(The quickfix window should stay open for just the loclist):
let g:ale_open_list = 1
let g:ale_keep_list_window_open = 1
@@ -76,6 +80,10 @@ Execute(The quickfix window should open for the quickfix list):
call ale#list#SetLists(bufnr('%'), g:loclist)
Assert ale#list#IsQuickfixOpen()
+ " Clear the list and it should close again.
+ call ale#list#SetLists(bufnr('%'), [])
+ Assert !ale#list#IsQuickfixOpen()
+
Execute(The quickfix window should stay open for the quickfix list):
let g:ale_set_quickfix = 1
let g:ale_open_list = 1