summaryrefslogtreecommitdiff
path: root/autoload/ale/list.vim
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-06-07 23:12:45 +0100
committerw0rp <devw0rp@gmail.com>2017-06-08 17:30:21 +0100
commit62862c334776e3138f5a5456ed41bb146969b2c2 (patch)
treef016f7d18db2f1dc6d6a864152b1221af7a86eee /autoload/ale/list.vim
parent8ce6d47ef6f2153b702f3f774910ad7747ced185 (diff)
downloadale-62862c334776e3138f5a5456ed41bb146969b2c2.zip
Experimental code for showing results as soon as each linter completes
Diffstat (limited to 'autoload/ale/list.vim')
-rw-r--r--autoload/ale/list.vim27
1 files changed, 15 insertions, 12 deletions
diff --git a/autoload/ale/list.vim b/autoload/ale/list.vim
index f446bbac..75b4ef38 100644
--- a/autoload/ale/list.vim
+++ b/autoload/ale/list.vim
@@ -35,13 +35,8 @@ function! ale#list#SetLists(buffer, loclist) abort
endif
endif
- " If we don't auto-open lists, bail out here.
- if !g:ale_open_list && !g:ale_keep_list_window_open
- return
- endif
-
" If we have errors in our list, open the list. Only if it isn't already open
- if len(a:loclist) > 0 || g:ale_keep_list_window_open
+ if (g:ale_open_list && !empty(a:loclist)) || g:ale_keep_list_window_open
let l:winnr = winnr()
if g:ale_set_quickfix
@@ -56,13 +51,21 @@ function! ale#list#SetLists(buffer, loclist) abort
if l:winnr !=# winnr()
wincmd p
endif
+ endif
+endfunction
- " Only close if the list is totally empty (relying on Vim's state, not our
- " own). This keeps us from closing the window when other plugins have
- " populated it.
- elseif !g:ale_keep_list_window_open && g:ale_set_quickfix && len(getqflist()) == 0
- cclose
- elseif !g:ale_keep_list_window_open && len(getloclist(0)) == 0
+function! ale#list#CloseWindowIfNeeded(buffer) abort
+ if g:ale_keep_list_window_open || !g:ale_open_list
+ return
+ endif
+
+ " Only close windows if the quickfix list or loclist is completely empty,
+ " including errors set through other means.
+ if g:ale_set_quickfix
+ if empty(getqflist())
+ cclose
+ endif
+ elseif g:ale_set_loclist && empty(getloclist(0))
lclose
endif
endfunction