#505 - Do not lint files on enter if the option for linting when the filetype changed is on
This commit is contained in:
parent
52eff3bd83
commit
f9b43a566c
@ -33,7 +33,13 @@ endfunction
|
|||||||
function! ale#events#FileTypeEvent(buffer, new_filetype) abort
|
function! ale#events#FileTypeEvent(buffer, new_filetype) abort
|
||||||
let l:filetype = getbufvar(a:buffer, 'ale_original_filetype', '')
|
let l:filetype = getbufvar(a:buffer, 'ale_original_filetype', '')
|
||||||
|
|
||||||
if a:new_filetype isnot# l:filetype
|
" If we're setting the filetype for the first time after it was blank,
|
||||||
|
" and the option for linting on enter is off, then we should set this
|
||||||
|
" filetype as the original filetype. Otherwise ALE will still appear to
|
||||||
|
" lint files because of the BufEnter event, etc.
|
||||||
|
if empty(l:filetype) && !ale#Var(a:buffer, 'lint_on_enter')
|
||||||
|
call setbufvar(a:buffer, 'ale_original_filetype', a:new_filetype)
|
||||||
|
elseif a:new_filetype isnot# l:filetype
|
||||||
call ale#Queue(300, 'lint_file', a:buffer)
|
call ale#Queue(300, 'lint_file', a:buffer)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -683,6 +683,10 @@ g:ale_lint_on_filetype_changed *g:ale_lint_on_filetype_changed*
|
|||||||
changed quickly several times in a row, but resulting in only one lint
|
changed quickly several times in a row, but resulting in only one lint
|
||||||
cycle.
|
cycle.
|
||||||
|
|
||||||
|
If |g:ale_lint_on_enter| is set to `0`, then ALE will not lint a file when
|
||||||
|
the filetype is initially set. Otherwise ALE would still lint files when
|
||||||
|
buffers are opened, and the option for doing so is turned off.
|
||||||
|
|
||||||
|
|
||||||
g:ale_lint_on_save *g:ale_lint_on_save*
|
g:ale_lint_on_save *g:ale_lint_on_save*
|
||||||
|
|
||||||
|
@ -3,6 +3,9 @@ Before:
|
|||||||
|
|
||||||
let g:ale_set_signs = 1
|
let g:ale_set_signs = 1
|
||||||
|
|
||||||
|
call ale#linter#Reset()
|
||||||
|
sign unplace *
|
||||||
|
|
||||||
function! GenerateResults(buffer, output)
|
function! GenerateResults(buffer, output)
|
||||||
return [
|
return [
|
||||||
\ {
|
\ {
|
||||||
|
@ -3,6 +3,8 @@ Before:
|
|||||||
|
|
||||||
let g:queue_calls = []
|
let g:queue_calls = []
|
||||||
|
|
||||||
|
unlet! b:ale_lint_on_enter
|
||||||
|
|
||||||
function! ale#Queue(...)
|
function! ale#Queue(...)
|
||||||
call add(g:queue_calls, a:000)
|
call add(g:queue_calls, a:000)
|
||||||
endfunction
|
endfunction
|
||||||
@ -10,6 +12,7 @@ Before:
|
|||||||
After:
|
After:
|
||||||
Restore
|
Restore
|
||||||
|
|
||||||
|
unlet! b:ale_lint_on_enter
|
||||||
unlet! g:queue_calls
|
unlet! g:queue_calls
|
||||||
|
|
||||||
" Reload the ALE code to load the real function again.
|
" Reload the ALE code to load the real function again.
|
||||||
@ -45,3 +48,27 @@ Execute(Linting should be queued when the filetype changes):
|
|||||||
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
||||||
|
|
||||||
AssertEqual [[300, 'lint_file', bufnr('')]], g:queue_calls
|
AssertEqual [[300, 'lint_file', bufnr('')]], g:queue_calls
|
||||||
|
|
||||||
|
Execute(Linting shouldn't be done when the original filetype was blank and linting on enter is off):
|
||||||
|
let b:ale_lint_on_enter = 0
|
||||||
|
let b:ale_original_filetype = ''
|
||||||
|
|
||||||
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
||||||
|
|
||||||
|
AssertEqual [], g:queue_calls
|
||||||
|
|
||||||
|
Execute(Linting should be done when the original filetype was blank and linting on enter is on):
|
||||||
|
let b:ale_lint_on_enter = 1
|
||||||
|
let b:ale_original_filetype = ''
|
||||||
|
|
||||||
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
||||||
|
|
||||||
|
AssertEqual [[300, 'lint_file', bufnr('')]], g:queue_calls
|
||||||
|
|
||||||
|
Execute(The new filetype should become the "original" one if the original was blank and linting on enter is off):
|
||||||
|
let b:ale_lint_on_enter = 0
|
||||||
|
let b:ale_original_filetype = ''
|
||||||
|
|
||||||
|
call ale#events#FileTypeEvent(bufnr(''), 'bazboz')
|
||||||
|
|
||||||
|
AssertEqual 'bazboz', b:ale_original_filetype
|
||||||
|
Loading…
Reference in New Issue
Block a user