Fix #912 - Close lists automatically when g:ale_open_list is set to 'on_save' again
This commit is contained in:
parent
ff28836616
commit
89cc8ca314
@ -123,13 +123,19 @@ function! s:SetListsImpl(timer_id, buffer, loclist) abort
|
|||||||
" If ALE isn't currently checking for more problems, close the window if
|
" If ALE isn't currently checking for more problems, close the window if
|
||||||
" needed now. This check happens inside of this timer function, so
|
" needed now. This check happens inside of this timer function, so
|
||||||
" the window can be closed reliably.
|
" the window can be closed reliably.
|
||||||
if !ale#engine#IsCheckingBuffer(bufnr(''))
|
if !ale#engine#IsCheckingBuffer(a:buffer)
|
||||||
call s:CloseWindowIfNeeded(a:buffer)
|
call s:CloseWindowIfNeeded(a:buffer)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! ale#list#SetLists(buffer, loclist) abort
|
function! ale#list#SetLists(buffer, loclist) abort
|
||||||
if get(g:, 'ale_set_lists_synchronously') == 1
|
if get(g:, 'ale_set_lists_synchronously') == 1
|
||||||
|
\|| getbufvar(a:buffer, 'ale_save_event_fired', 0)
|
||||||
|
" Update lists immediately if running a test synchronously, or if the
|
||||||
|
" buffer was saved.
|
||||||
|
"
|
||||||
|
" The lists need to be updated immediately when saving a buffer so
|
||||||
|
" that we can reliably close window automatically, if so configured.
|
||||||
call s:SetListsImpl(-1, a:buffer, a:loclist)
|
call s:SetListsImpl(-1, a:buffer, a:loclist)
|
||||||
else
|
else
|
||||||
call ale#util#StartPartialTimer(
|
call ale#util#StartPartialTimer(
|
||||||
|
@ -189,12 +189,19 @@ Execute(The ale_open_list='on_save' option should work):
|
|||||||
" The list shouldn't open yet, the event wasn't fired.
|
" The list shouldn't open yet, the event wasn't fired.
|
||||||
Assert !ale#list#IsQuickfixOpen()
|
Assert !ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
|
" Turn this option off, to ensure that we update lists immediately when we
|
||||||
|
" save buffers.
|
||||||
|
let g:ale_set_lists_synchronously = 0
|
||||||
let b:ale_save_event_fired = 1
|
let b:ale_save_event_fired = 1
|
||||||
|
|
||||||
call ale#list#SetLists(bufnr('%'), g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
" Now the list should have opened.
|
" Now the list should have opened.
|
||||||
Assert ale#list#IsQuickfixOpen()
|
Assert ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
|
call ale#list#SetLists(bufnr('%'), [])
|
||||||
|
" The window should close again when the loclist is empty.
|
||||||
|
Assert !ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
Execute(The window shouldn't open on save when ale_open_list=0):
|
Execute(The window shouldn't open on save when ale_open_list=0):
|
||||||
let b:ale_open_list = 0
|
let b:ale_open_list = 0
|
||||||
let b:ale_save_event_fired = 1
|
let b:ale_save_event_fired = 1
|
||||||
|
Loading…
Reference in New Issue
Block a user