To avoid blocking build tools, suspend ALE when suspending vim

This commit is contained in:
Felipe Sere 2018-09-16 15:57:13 +01:00
parent 0948dcc435
commit fba4cfeae9
3 changed files with 23 additions and 17 deletions

View File

@ -18,6 +18,22 @@ if !has_key(s:, 'executable_cache_map')
let s:executable_cache_map = {} let s:executable_cache_map = {}
endif endif
function! ale#engine#CleanupEveryBuffer() abort
for l:key in keys(g:ale_buffer_info)
" The key could be a filename or a buffer number, so try and
" convert it to a number. We need a number for the other
" functions.
let l:buffer = str2nr(l:key)
if l:buffer > 0
" Stop all jobs and clear the results for everything, and delete
" all of the data we stored for the buffer.
call ale#engine#Cleanup(l:buffer)
endif
endfor
endfunction
function! ale#engine#ResetExecutableCache() abort function! ale#engine#ResetExecutableCache() abort
let s:executable_cache_map = {} let s:executable_cache_map = {}
endfunction endfunction

View File

@ -15,21 +15,6 @@ function! s:DisablePostamble() abort
endif endif
endfunction endfunction
function! s:CleanupEveryBuffer() abort
for l:key in keys(g:ale_buffer_info)
" The key could be a filename or a buffer number, so try and
" convert it to a number. We need a number for the other
" functions.
let l:buffer = str2nr(l:key)
if l:buffer > 0
" Stop all jobs and clear the results for everything, and delete
" all of the data we stored for the buffer.
call ale#engine#Cleanup(l:buffer)
endif
endfor
endfunction
function! ale#toggle#Toggle() abort function! ale#toggle#Toggle() abort
let g:ale_enabled = !get(g:, 'ale_enabled') let g:ale_enabled = !get(g:, 'ale_enabled')
@ -40,7 +25,7 @@ function! ale#toggle#Toggle() abort
call ale#balloon#Enable() call ale#balloon#Enable()
endif endif
else else
call s:CleanupEveryBuffer() call ale#engine#CleanupEveryBuffer()
call s:DisablePostamble() call s:DisablePostamble()
if exists('*ale#balloon#Disable') if exists('*ale#balloon#Disable')
@ -64,7 +49,7 @@ function! ale#toggle#Disable() abort
endfunction endfunction
function! ale#toggle#Reset() abort function! ale#toggle#Reset() abort
call s:CleanupEveryBuffer() call ale#engine#CleanupEveryBuffer()
call ale#highlight#UpdateHighlights() call ale#highlight#UpdateHighlights()
endfunction endfunction

View File

@ -218,3 +218,8 @@ augroup ALECleanupGroup
autocmd BufDelete * if exists('*ale#engine#Cleanup') | call ale#engine#Cleanup(str2nr(expand('<abuf>'))) | endif autocmd BufDelete * if exists('*ale#engine#Cleanup') | call ale#engine#Cleanup(str2nr(expand('<abuf>'))) | endif
autocmd QuitPre * call ale#events#QuitEvent(str2nr(expand('<abuf>'))) autocmd QuitPre * call ale#events#QuitEvent(str2nr(expand('<abuf>')))
augroup END augroup END
if exists('##VimSuspend')
autocmd VimSuspend * call ale#engine#CleanupEveryBuffer()
end