Close #1379 - Increment b:ale_linted when a buffer is checked

This commit is contained in:
w0rp 2018-03-03 16:22:56 +00:00
parent 565ffa0dc5
commit 08cfd5f90c
No known key found for this signature in database
GPG Key ID: 0FC1ECAA8C81CD83
3 changed files with 38 additions and 2 deletions

View File

@ -321,6 +321,12 @@ function! ale#engine#SetResults(buffer, loclist) abort
" Reset the save event marker, used for opening windows, etc.
call setbufvar(a:buffer, 'ale_save_event_fired', 0)
" Set a marker showing how many times a buffer has been checked.
call setbufvar(
\ a:buffer,
\ 'ale_linted',
\ getbufvar(a:buffer, 'ale_linted', 0) + 1
\)
" Automatically remove all managed temporary files and directories
" now that all jobs have completed.

View File

@ -2280,6 +2280,19 @@ ale#statusline#Count(buffer) *ale#statusline#Count()*
`total` -> The total number of problems.
b:ale_linted *b:ale_linted*
`b:ale_linted` is set to the number of times a buffer has been checked by
ALE after all linters for one lint cycle have finished checking a buffer.
This variable may not be defined until ALE first checks a buffer, so it
should be accessed with |get()| or |getbufvar()|. For example: >
" Print a message indicating how many times ALE has checked this buffer.
echo 'ALE has checked this buffer ' . get(b:, 'ale_linted') . ' time(s).'
" Print 'checked' using getbufvar() if a buffer has been checked.
echo getbufvar(bufnr(''), 'ale_linted', 0) > 0 ? 'checked' : 'not checked'
<
ALELintPre *ALELintPre-autocmd*
ALELintPost *ALELintPost-autocmd*

View File

@ -3,12 +3,18 @@ Before:
let g:post_success = 0
let g:ale_run_synchronously = 1
unlet! b:ale_linted
After:
let g:ale_run_synchronously = 0
let g:ale_buffer_info = {}
augroup! VaderTest
Execute (Run a lint cycle, and check that a variable is set in the autocmd):
try
augroup! VaderTest
catch
endtry
Execute(Run a lint cycle, and check that a variable is set in the autocmd):
augroup VaderTest
autocmd!
autocmd User ALELintPre let g:pre_success = 1
@ -19,3 +25,14 @@ Execute (Run a lint cycle, and check that a variable is set in the autocmd):
AssertEqual g:pre_success, 1
AssertEqual g:post_success, 1
Execute(b:ale_linted should be increased after each lint cycle):
AssertEqual get(b:, 'ale_linted'), 0
call ale#Lint()
AssertEqual get(b:, 'ale_linted'), 1
call ale#Lint()
AssertEqual get(b:, 'ale_linted'), 2