#376 Use the window ID for a given buffer for setting the loclist
This commit is contained in:
parent
1c3f0b1e19
commit
ad49846a48
@ -255,7 +255,7 @@ endfunction
|
|||||||
|
|
||||||
function! ale#engine#SetResults(buffer, loclist) abort
|
function! ale#engine#SetResults(buffer, loclist) abort
|
||||||
if g:ale_set_quickfix || g:ale_set_loclist
|
if g:ale_set_quickfix || g:ale_set_loclist
|
||||||
call ale#list#SetLists(a:loclist)
|
call ale#list#SetLists(a:buffer, a:loclist)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:ale_set_signs
|
if g:ale_set_signs
|
||||||
|
@ -11,11 +11,11 @@ function! ale#list#IsQuickfixOpen() abort
|
|||||||
return 0
|
return 0
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! ale#list#SetLists(loclist) abort
|
function! ale#list#SetLists(buffer, loclist) abort
|
||||||
if g:ale_set_quickfix
|
if g:ale_set_quickfix
|
||||||
call setqflist(a:loclist)
|
call setqflist(a:loclist)
|
||||||
elseif g:ale_set_loclist
|
elseif g:ale_set_loclist
|
||||||
call setloclist(0, a:loclist)
|
call setloclist(bufwinid(str2nr(a:buffer)), a:loclist)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If we don't auto-open lists, bail out here.
|
" If we don't auto-open lists, bail out here.
|
||||||
|
@ -194,7 +194,9 @@ function! s:ALEToggle() abort
|
|||||||
" Lint immediately
|
" Lint immediately
|
||||||
call ale#Queue(0)
|
call ale#Queue(0)
|
||||||
else
|
else
|
||||||
for l:buffer in keys(g:ale_buffer_info)
|
" Make sure the buffer number is a number, not a string,
|
||||||
|
" otherwise things can go wrong.
|
||||||
|
for l:buffer in map(keys(g:ale_buffer_info), 'str2nr(v:val)')
|
||||||
" Stop jobs and delete stored buffer data
|
" Stop jobs and delete stored buffer data
|
||||||
call ale#cleanup#Buffer(l:buffer)
|
call ale#cleanup#Buffer(l:buffer)
|
||||||
" Clear signs, loclist, quicklist
|
" Clear signs, loclist, quicklist
|
||||||
|
@ -35,18 +35,18 @@ Execute(IsQuickfixOpen should return the right output):
|
|||||||
AssertEqual 0, ale#list#IsQuickfixOpen()
|
AssertEqual 0, ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
Execute(The quickfix window should not open by default for the loclist):
|
Execute(The quickfix window should not open by default for the loclist):
|
||||||
call ale#list#SetLists(g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
Assert !ale#list#IsQuickfixOpen()
|
Assert !ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
Execute(The quickfix window should open for just the loclist):
|
Execute(The quickfix window should open for just the loclist):
|
||||||
let g:ale_open_list = 1
|
let g:ale_open_list = 1
|
||||||
|
|
||||||
" It should not open for an empty list.
|
" It should not open for an empty list.
|
||||||
call ale#list#SetLists([])
|
call ale#list#SetLists(bufnr('%'), [])
|
||||||
Assert !ale#list#IsQuickfixOpen()
|
Assert !ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
" With a non-empty loclist, the window must open.
|
" With a non-empty loclist, the window must open.
|
||||||
call ale#list#SetLists(g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
Assert ale#list#IsQuickfixOpen()
|
Assert ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
Execute(The quickfix window should stay open for just the loclist):
|
Execute(The quickfix window should stay open for just the loclist):
|
||||||
@ -54,14 +54,14 @@ Execute(The quickfix window should stay open for just the loclist):
|
|||||||
let g:ale_keep_list_window_open = 1
|
let g:ale_keep_list_window_open = 1
|
||||||
|
|
||||||
" The window should stay open after even after it is made blank again.
|
" The window should stay open after even after it is made blank again.
|
||||||
call ale#list#SetLists(g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
call ale#list#SetLists([])
|
call ale#list#SetLists(bufnr('%'), [])
|
||||||
Assert ale#list#IsQuickfixOpen()
|
Assert ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
Execute(The quickfix window should not open by default when quickfix is on):
|
Execute(The quickfix window should not open by default when quickfix is on):
|
||||||
let g:ale_set_quickfix = 1
|
let g:ale_set_quickfix = 1
|
||||||
|
|
||||||
call ale#list#SetLists(g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
Assert !ale#list#IsQuickfixOpen()
|
Assert !ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
Execute(The quickfix window should open for the quickfix list):
|
Execute(The quickfix window should open for the quickfix list):
|
||||||
@ -69,11 +69,11 @@ Execute(The quickfix window should open for the quickfix list):
|
|||||||
let g:ale_open_list = 1
|
let g:ale_open_list = 1
|
||||||
|
|
||||||
" It should not open for an empty list.
|
" It should not open for an empty list.
|
||||||
call ale#list#SetLists([])
|
call ale#list#SetLists(bufnr('%'), [])
|
||||||
Assert !ale#list#IsQuickfixOpen()
|
Assert !ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
" With a non-empty quickfix list, the window must open.
|
" With a non-empty quickfix list, the window must open.
|
||||||
call ale#list#SetLists(g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
Assert ale#list#IsQuickfixOpen()
|
Assert ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
Execute(The quickfix window should stay open for the quickfix list):
|
Execute(The quickfix window should stay open for the quickfix list):
|
||||||
@ -82,6 +82,6 @@ Execute(The quickfix window should stay open for the quickfix list):
|
|||||||
let g:ale_keep_list_window_open = 1
|
let g:ale_keep_list_window_open = 1
|
||||||
|
|
||||||
" The window should stay open after even after it is made blank again.
|
" The window should stay open after even after it is made blank again.
|
||||||
call ale#list#SetLists(g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
call ale#list#SetLists([])
|
call ale#list#SetLists(bufnr('%'), [])
|
||||||
Assert ale#list#IsQuickfixOpen()
|
Assert ale#list#IsQuickfixOpen()
|
||||||
|
13
test/test_setting_loclist_from_another_buffer.vader
Normal file
13
test/test_setting_loclist_from_another_buffer.vader
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Before:
|
||||||
|
let g:original_buffer = bufnr('%')
|
||||||
|
new
|
||||||
|
|
||||||
|
After:
|
||||||
|
unlet! g:original_buffer
|
||||||
|
|
||||||
|
Execute(Errors should be set in the loclist for the original buffer, not the new one):
|
||||||
|
call ale#list#SetLists(g:original_buffer, [{'lnum': 4, 'text': 'foo'}])
|
||||||
|
|
||||||
|
AssertEqual [], getloclist(0)
|
||||||
|
AssertEqual 1, len(getloclist(bufwinid(g:original_buffer)))
|
||||||
|
AssertEqual 'foo', getloclist(bufwinid(g:original_buffer))[0].text
|
Loading…
Reference in New Issue
Block a user