Fix #499 Set an explicit height for the quickfix list, and make the height configurable
This commit is contained in:
parent
81f27a99c8
commit
d5ae9b50ea
@ -46,9 +46,9 @@ function! ale#list#SetLists(buffer, loclist) abort
|
|||||||
|
|
||||||
if !ale#list#IsQuickfixOpen()
|
if !ale#list#IsQuickfixOpen()
|
||||||
if g:ale_set_quickfix
|
if g:ale_set_quickfix
|
||||||
copen
|
execute 'copen ' . str2nr(ale#Var(a:buffer, 'list_window_size'))
|
||||||
elseif g:ale_set_loclist
|
elseif g:ale_set_loclist
|
||||||
lopen
|
execute 'lopen ' . str2nr(ale#Var(a:buffer, 'list_window_size'))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
15
doc/ale.txt
15
doc/ale.txt
@ -365,6 +365,19 @@ g:ale_keep_list_window_open *g:ale_keep_list_window_open*
|
|||||||
See: |g:ale_open_list|
|
See: |g:ale_open_list|
|
||||||
|
|
||||||
|
|
||||||
|
g:ale_list_window_size *g:ale_list_window_size*
|
||||||
|
*b:ale_list_window_size*
|
||||||
|
Type: |Number|
|
||||||
|
Default: `10`
|
||||||
|
|
||||||
|
This number configures the number of lines to set for the height of windows
|
||||||
|
opened automatically for ALE problems. The default of `10` matches the Vim
|
||||||
|
default height.
|
||||||
|
|
||||||
|
See |g:ale_open_list| for information on automatically opening windows
|
||||||
|
for quickfix or the loclist.
|
||||||
|
|
||||||
|
|
||||||
g:ale_lint_delay *g:ale_lint_delay*
|
g:ale_lint_delay *g:ale_lint_delay*
|
||||||
|
|
||||||
Type: |Number|
|
Type: |Number|
|
||||||
@ -550,6 +563,8 @@ g:ale_open_list *g:ale_open_list*
|
|||||||
including those not set by ALE, unless |g:ale_keep_list_window_open| is set
|
including those not set by ALE, unless |g:ale_keep_list_window_open| is set
|
||||||
to `1`, in which case the window will be kept open until closed manually.
|
to `1`, in which case the window will be kept open until closed manually.
|
||||||
|
|
||||||
|
The window size can be configured with |g:ale_list_window_size|.
|
||||||
|
|
||||||
|
|
||||||
g:ale_pattern_options *g:ale_pattern_options*
|
g:ale_pattern_options *g:ale_pattern_options*
|
||||||
|
|
||||||
|
@ -106,6 +106,9 @@ let g:ale_open_list = get(g:, 'ale_open_list', 0)
|
|||||||
" This flag dictates if ale keeps open loclist even if there is no error in loclist
|
" This flag dictates if ale keeps open loclist even if there is no error in loclist
|
||||||
let g:ale_keep_list_window_open = get(g:, 'ale_keep_list_window_open', 0)
|
let g:ale_keep_list_window_open = get(g:, 'ale_keep_list_window_open', 0)
|
||||||
|
|
||||||
|
" The window size to set for the quickfix and loclist windows
|
||||||
|
call ale#Set('list_window_size', 10)
|
||||||
|
|
||||||
" This flag can be set to 0 to disable setting signs.
|
" This flag can be set to 0 to disable setting signs.
|
||||||
" This is enabled by default only if the 'signs' feature exists.
|
" This is enabled by default only if the 'signs' feature exists.
|
||||||
let g:ale_set_signs = get(g:, 'ale_set_signs', has('signs'))
|
let g:ale_set_signs = get(g:, 'ale_set_signs', has('signs'))
|
||||||
|
@ -1,6 +1,17 @@
|
|||||||
" Author: Yann Fery <yann@fery.me>
|
" Author: Yann Fery <yann@fery.me>
|
||||||
|
|
||||||
Before:
|
Before:
|
||||||
|
Save g:ale_set_loclist
|
||||||
|
Save g:ale_set_quickfix
|
||||||
|
Save g:ale_open_list
|
||||||
|
Save g:ale_keep_list_window_open
|
||||||
|
Save g:ale_list_window_size
|
||||||
|
|
||||||
|
let g:ale_set_loclist = 1
|
||||||
|
let g:ale_set_quickfix = 0
|
||||||
|
let g:ale_open_list = 0
|
||||||
|
let g:ale_keep_list_window_open = 0
|
||||||
|
let g:ale_list_window_size = 10
|
||||||
|
|
||||||
let g:loclist = [
|
let g:loclist = [
|
||||||
\ {'lnum': 5, 'col': 5},
|
\ {'lnum': 5, 'col': 5},
|
||||||
\ {'lnum': 5, 'col': 4},
|
\ {'lnum': 5, 'col': 4},
|
||||||
@ -8,18 +19,28 @@ Before:
|
|||||||
\ {'lnum': 3, 'col': 2},
|
\ {'lnum': 3, 'col': 2},
|
||||||
\]
|
\]
|
||||||
|
|
||||||
|
function GetQuickfixHeight() abort
|
||||||
|
for l:win in range(1, winnr('$'))
|
||||||
|
if getwinvar(l:win, '&buftype') ==# 'quickfix'
|
||||||
|
return winheight(l:win)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
After:
|
After:
|
||||||
|
Restore
|
||||||
|
|
||||||
|
unlet! g:loclist
|
||||||
|
unlet! b:ale_list_window_size
|
||||||
|
delfunction GetQuickfixHeight
|
||||||
|
|
||||||
" Close quickfix window after every execute block
|
" Close quickfix window after every execute block
|
||||||
lcl
|
lcl
|
||||||
ccl
|
ccl
|
||||||
unlet g:loclist
|
|
||||||
call setloclist(0, [])
|
call setloclist(0, [])
|
||||||
call setqflist([])
|
call setqflist([])
|
||||||
" Reset options to their default values.
|
|
||||||
let g:ale_set_loclist = 1
|
|
||||||
let g:ale_set_quickfix = 0
|
|
||||||
let g:ale_open_list = 0
|
|
||||||
let g:ale_keep_list_window_open = 0
|
|
||||||
|
|
||||||
Execute(IsQuickfixOpen should return the right output):
|
Execute(IsQuickfixOpen should return the right output):
|
||||||
AssertEqual 0, ale#list#IsQuickfixOpen()
|
AssertEqual 0, ale#list#IsQuickfixOpen()
|
||||||
@ -53,6 +74,22 @@ Execute(The quickfix window should open for just the loclist):
|
|||||||
call ale#list#SetLists(bufnr('%'), [])
|
call ale#list#SetLists(bufnr('%'), [])
|
||||||
Assert !ale#list#IsQuickfixOpen()
|
Assert !ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
|
Execute(The quickfix window height should be correct for the loclist):
|
||||||
|
let g:ale_open_list = 1
|
||||||
|
let g:ale_list_window_size = 7
|
||||||
|
|
||||||
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
|
|
||||||
|
AssertEqual 7, GetQuickfixHeight()
|
||||||
|
|
||||||
|
Execute(The quickfix window height should be correct for the loclist with buffer variables):
|
||||||
|
let g:ale_open_list = 1
|
||||||
|
let b:ale_list_window_size = 8
|
||||||
|
|
||||||
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
|
|
||||||
|
AssertEqual 8, GetQuickfixHeight()
|
||||||
|
|
||||||
Execute(The quickfix window should stay open for just the loclist):
|
Execute(The quickfix window should stay open for just the loclist):
|
||||||
let g:ale_open_list = 1
|
let g:ale_open_list = 1
|
||||||
let g:ale_keep_list_window_open = 1
|
let g:ale_keep_list_window_open = 1
|
||||||
@ -93,3 +130,21 @@ Execute(The quickfix window should stay open for the quickfix list):
|
|||||||
call ale#list#SetLists(bufnr('%'), g:loclist)
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
call ale#list#SetLists(bufnr('%'), [])
|
call ale#list#SetLists(bufnr('%'), [])
|
||||||
Assert ale#list#IsQuickfixOpen()
|
Assert ale#list#IsQuickfixOpen()
|
||||||
|
|
||||||
|
Execute(The quickfix window height should be correct for the quickfix list):
|
||||||
|
let g:ale_set_quickfix = 1
|
||||||
|
let g:ale_open_list = 1
|
||||||
|
let g:ale_list_window_size = 7
|
||||||
|
|
||||||
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
|
|
||||||
|
AssertEqual 7, GetQuickfixHeight()
|
||||||
|
|
||||||
|
Execute(The quickfix window height should be correct for the quickfix list with buffer variables):
|
||||||
|
let g:ale_set_quickfix = 1
|
||||||
|
let g:ale_open_list = 1
|
||||||
|
let b:ale_list_window_size = 8
|
||||||
|
|
||||||
|
call ale#list#SetLists(bufnr('%'), g:loclist)
|
||||||
|
|
||||||
|
AssertEqual 8, GetQuickfixHeight()
|
||||||
|
Loading…
Reference in New Issue
Block a user